보통 번역서가 나오기까지는 6개월 안팎으로 걸리는데, 이번 책은 좀 늦게 나오게 되었습니다. (원서는 작년 9월말에 출간) 원서와 번역서 출간 사이에 많은 변화가 있었던 것은 모두들 아실 겁니다. iOS도, 안드로이드도 모두 업데이트되었고, Xcode 및 이 책에서 한 개의 장으로 할애하고 있는 모노터치(MonoTouch)도 많은 변화가 있었습니다. 이번에 저희 출판사와 처음 작업을 하게 된 배장열 님께서 틈틈이 앱 개발을 하면서도 변경된 사항들을 테스트하고 책에 적용하느라 정말 많은 고생을 하셨습니다. 이 자리를 빌어 다시 한번 감사드립니다.
이 책의 구성을 잠깐 살펴보자면, Bookmark Services란 애플리케이션을 안드로이드와 iOS에서 각각 어떻게 개발하는지를 보여줍니다. 그래서 세부 코드의 내용에 관심이 많은 독자는 4-7장까지 안드로이드 편과 8-11장까지의 iOS 편을 비교하며 살펴볼 수 있습니다. 하지만 앱 개발의 방향과 접근 방식을 이해하고 학습하고자 한다면 2장 'Six Bookmarks의 서버 서비스'와 3장 '애플리케이션 아키텍처와 기능 명세서'를 꼭 먼저 읽어보기를 권합니다.
2장 Six Bookmarks의 서버 서비스 7
API 계정 만들기 8
사용자 만들기 9
Users 서비스 11
RESTful 웹 서비스 12
호출 테스트하기 12
로그온 작업 검사하기 12
Bookmarks 서비스 16
테스트 데이터 추가하기 17
OData로 작업하기 18
OData 쿼리 22
OData를 사용하여 업데이트 알리기 23
로그온한 사용자에게 데이터를 제한하기 23
정리 23
3장 애플리케이션 아키텍처와 기능 명세서 25
태블릿? 슬레이트? 25
기능 명세서 26
로그온하기 26
동기화하기 27
내비게이터 28
즐겨찾기 구성하기 29
즐겨찾기 하나를 구성하기(“싱글턴 구성”) 30
구현하지 않는 기능들 31
애플리케이션 아키텍처와 기술 명세서 31
접근법 31
ORM 33
서버 통신 39
플랫폼별 기술적 접근 과정 40
정리 43
5장 안드로이드: 로그온 폼 만들기와 REST 서비스 소비하기 69
프로젝트 생성하기 69
코드 표현 규칙 71
RESTful 서비스 호출하기 71
웹 요청하기 72
API 계정 인증하기 77
UsersService를 통해 사용자 인증하기 89
인터넷 액세스 허용으로 권한 설정하기 90
로그온 폼 생성하기 91
모델/뷰/컨트롤러 95
로그온하기 103
“나를 기억해주세요”, 자동 로그인 106
정리 109
6장 안드로이드: SQLite의 ORM 레이어 111
안드로이드용 SQLite 111
엔터티 112
EntityType 112
Entity 기본 클래스 생성하기 119
엔터티에 값 설정하기 121
Bookmark 빌드하기 127
EntityType 등록하기 129
짝퉁 즐겨찾기 표시하기 131
폼 생성하기 131
즐겨찾기 표시하기 137
즐겨찾기 연결하기 142
Sync 클래스 빌드하기 144
서버의 Bookmarks OData 서비스 호출하기 145
데이터베이스 관리하기 153
SqlStatement 클래스와 ISqlStatementSource 인터페이스 156
테이블 생성하기 158
Sqliteman으로 데이터베이스 검사하기 161
데이터베이스에 즐겨찾기 쓰기 165
즐겨찾기 읽기와 내비게이터에 표시하기 171
정리 177
7장 안드로이드: 변경 내용을 서버로 푸시하기 179
로컬의 변경 내용 캡처하기 180
SQL 필터를 제한하기 180
삭제된 엔터티를 뷰에서 제외하기 186
즐겨찾기를 오디널별로 가져오기 187
구성 폼 빌드하기 188
싱글턴 구성하기 212
변경 내용을 서버로 푸시하기 221
로컬의 변경 내용 파악하기 221
삽입, 업데이트, 삭제를 서버에 요청하기 226
HTTP MERGE로 업데이트하기와 HTTP POST로 삽입하기 227
필드를 서버에서 사용할 수 있도록 표시하기 227
정리 238
8장 iOS: 툴셋 설치하기 239
아이패드 개발 239
Xcode 설치하기 239
닷넷 및 자바 개발자를 위한 오브젝티브-C 입문 과정 240
오브젝티브-C의 문제점들 241
메서드 호출하기(일명 “메시지 보내기”) 242
프로퍼티(그리고 간략히 언급하는 메모리 관리) 245
메서드 252
네임스페이스 254
오브젝티브-C에서 가장 골치 아픈 점 254
아이폰용 “Hello, World” 255
사용자 인터페이스 구성하기 257
윈도우 생성하기와 뷰 보여주기 264
정리 267
9장 iOS: 로그온 폼 작성하기와 REST 서비스 소비하기 269
프로젝트 생성하기 269
로그온 폼 270
로그온 폼 사용자 인터페이스 생성하기 271
로그온 폼 보여주기 275
그룹화 뷰에 관한 특강 278
코드 표현 규칙 279
서비스 호출하기 280
로그온 요청 캡처하기 280
API 서비스 호출하기 286
프록시 클래스 작성하기 287
Users 서비스 호출하기 318
진행 중임을 알리기 325
정리 327
10장 iOS: SQLite의 ORM 레이어 329
잠시 짚고 넘어가야 할 이야기 330
엔터티 330
SBEntityType 클래스 330
SBEntity 클래스 339
엔터티에 값 설정하기 342
SBBookmark 작성하기 347
SBEntityType 인스턴스 생성하기 350
짝퉁 즐겨찾기 표시하기 352
뷰 생성하기 352
뷰 엔진 빌드하기 357
즐겨찾기 표시하기 362
내비게이션 처리하기 365
Sync 클래스 빌드하기 367
서버의 Bookmarks OData 서비스 호출하기 367
데이터베이스 작업 384
SBDBHelper 빌드하기와 오류 처리 구현하기 386
데이터베이스에 즐겨찾기 쓰기 401
정리 421
11장 iOS: 변경 내용을 서버로 푸시하기 423 즐겨찾기 구성하기 423
데이터를 테이블에 넣기 426
즐겨찾기 정렬하기 430
싱글턴 뷰 431
즐겨찾기 편집하기 437
삭제 메서드 구현하기 444
즐겨찾기 추가하기 445
즐겨찾기 삭제하기 447
수동으로 동기화하기 451
변경 내용을 서버로 푸시하기 452
작업 항목 455
OData 변경 요청하기 460
“서버에 없음”으로 필드 지정하기 462
요청 생성하기 463
processWorkItems 수정하기 470
정리 472
12장 iOS: 모노터치 473
큰 틀에서 본 모노 474
이 장의 구성 475
모노터치 설치하기 475
“Hello, World” 476
코드 비하인드 검사하기 480
버튼 연결하기 481
프로젝트 실행하기 483
Six Bookmarks API의 RESTful 서비스 호출하기 484
프로젝트 생성하기 484
ServiceProxy 등등을 빌드하기 484
서비스 메서드 호출하기 490
정리 494