추천의 글 ... 3 저자 서문 ... 4 CHAPTER 01 iPhone 개발 환경 1-1 가장 진화한 전화 ... 16 1-2 스마트폰으로 할 수 있는 것 ... 17 1-3 스마트폰의 진화 ... 18 1-4 iPhone의 등장 ... 20 1-5 iPhone은 애플리케이션 중심이다 ... 22 1-6 스마트폰과 iPhone의 차이 ... 23 1-7 iPhone과 iPod Touch ... 25 1-8 iPhone 스펙과 디자인 ... 26 iPhone 통신 장치 ... 28 메모리 ... 28 GPS ... 29 디스플레이 ... 29 오디오/비디오 ... 29 카메라 ... 29 센서 ... 30 iPhone 전원과 배터리 ... 31 1-9 iPhone 개발에 필요한 것 ... 31 Mac 시스템 ... 31 iPhone SDK ... 32 iPhone이나 iPod Touch ... 32 개발자 라이센스 ... 32 1-10 iPhone SDK 설치 ... 36 1-11 iPhone SDK에 포함되어 있는 것 ... 38 Xcode ... 38 인터페이스 빌더 ... 39 시뮬레이터 ... 39 인스트루먼트 ... 40 1-12 Cocoa와 Cocoa Touch ... 41 1-13 Objective-C ... 42 1-14 이 장을 마치며... ... 43 CHAPTER 02 iPhone 애플리케이션 2-1 처음 만드는 iPhone 애플리케이션 ... 46 어떻게 시작할 것인가? ... 46 프로젝트 생성 ... 47 뷰 추가 ... 52 컨트롤 추가 ... 56 연결 설정 ... 58 뷰 클래스 생성 ... 59 코드 구현 ... 61 2-2 iPhone 애플리케이션 실행 흐름 ... 64 어디에서 실행이 시작되는가? ... 64 nib(.xib) 파일 로딩 ... 67 File's Owner ... 72 File's Owner와 애플리케이션 델리게이트 ... 72 애플리케이션 객체와 델리게이트 ... 74 애플리케이션 델리게이트 이벤트 ... 78 나머지 흐름 ... 79 2-3 iPhone 디자인패턴 ... 79 2-4 Xcode 디버깅 ... 81 코드의 흐름 ... 82 실행 상태 ... 85 중단점 ... 87 2-5 이 장을 마치며... ... 89 CHAPTER 03 Objective-C 3-1 Objective-C ... 92 Objective-C 환경 ... 92 Xcode 환경 ... 95 C와 Objective-C ... 97 3-2 클래스와 객체 그리고 메시징 ... 98 클래스 정의 ... 98 메소드 인자 ... 103 선언과 구현 ... 105 헤더 파일과 구현 소스 ... 106 @class ... 107 메소드 호출 ... 108 메소드 바인딩 ... 110 3-3 Class(objc_class) 사용 ... 113 inside 메소드 호출 ... 114 Class(objc_class) ... 117 SEL과 IMP 사용하기 ... 118 3-4 접근자 ... 120 접근 지정자 ... 120 접근자 ... 123 프로퍼티 ... 124 프로퍼티 속성 ... 128 세터 프로퍼티 속성 ... 129 nonatomic 프로퍼티 속성 ... 134 3-5 메모리 관리 ... 134 레퍼런스 카운트 ... 135 dealloc 메소드 ... 137 자동 해제 풀 ... 138 nil 사용 ... 141 3-6 Objective-C 문자열 ... 142 3-7 프로토콜과 카테고리 ... 143 재정의 ... 144 카테고리 ... 145 3-8 이 장을 마치며... ... 147 CHAPTER 04 뷰 4-1 뷰와 뷰 컨트롤러 ... 150 뷰 기반 프로젝트 생성 ... 151 뷰 기반 애플리케이션 시작 구조 ... 153 이벤트 흐름 ... 154 커스텀 뷰 생성 ... 156 뷰 레이아웃과 좌표 ... 159 4-2 뷰 이벤트와 그리기 ... 162 터치 이벤트 구현 ... 164 iPhone 그래픽과 그리기 ... 165 iPhone 그래픽 컨텍스트 ... 169 비트맵 그래픽 컨텍스트 ... 173 색 공간과 알파 채널 ... 179 4-3 이미지 뷰와 스크롤 뷰 ... 183 이미지 뷰 ... 183 스크롤 뷰 ... 186 줌 ... 187 뷰 회전 ... 189 상태 바 제어 ... 191 이미지 뷰와 커스텀 뷰 ... 192 4-4 뷰 전환 ... 198 뷰 전환 ... 198 UIView 애니메이션 블록으로 뷰 전환 ... 203 CATransition을 이용한 뷰 전환 ... 206 4-5 이 장을 마치며... ... 209 CHAPTER 05 뷰 컨트롤러 5-1 유저 인터페이스 디자인패턴 ... 212 5-2 뷰 컨트롤러 ... 215 UINavigationController ... 217 내비게이션 기반 애플리케이션 ... 217 FingerDrawForImage의 내비게이션 컨트롤러 구현 ... 218 내비게이션 컨트롤러를 위한 새로운 뷰 추가 ... 223 내비게이션 컨트롤러에 뷰 추가 ... 229 내비게이션 컨트롤러 구조 ... 233 내비게이션 바 제어 ... 238 5-3 탭바 컨트롤러 ... 242 탭바 컨트롤러 생성 ... 242 한글화 ... 247 탭바 이미지 추가 ... 248 5-4 이 장을 마치며... ... 251 CHAPTER 06 컨트롤 6-1 컨트롤 ... 254 6-2 UILabel ... 256 프로젝트 생성 ... 256 UILabel 인스턴스 생성 ... 257 타이머 설정 ... 260 UILabel 기능 ... 263 6-3 UIButton과 UITextField ... 265 UIControl의 타겟과 액션 ... 265 날짜 입력과 바이오리듬 계산 ... 266 키패드 나타내기와 감추기 ... 272 UITextField와 UIButton 기타 기능 ... 274 6-4 UIDatePicker ... 278 UIDatePicker 기타 기능 ... 280 그래프 그리기 ... 281 6-5 UISlider ... 288 선 굵기 기능 ... 288 6-6 UICalloutView ... 291 6-7 이 장을 마치며... ... 296 CHAPTER 07 테이블 7-1 모달 인터페이스 ... 298 모달 뷰 ... 298 7-2 테이블 뷰 ... 301 데이터 소스와 테이블 델리게이트 ... 302 UITableViewCell ... 304 파일 읽기 ... 307 기본 데이터 소스와 델리게이트 구현 ... 310 셀 편집 ... 316 셀 편집 모드 ... 320 편집 동작 순서 ... 320 셀 추가와 수정 ... 323 셀 커스터마이징 ... 325 셀 순서 변경 ... 330 파일 저장 ... 332 7-3 테이블 뷰 섹션 ... 335 섹션 그룹 구현 ... 335 섹션 인덱스 ... 340 셀 이미지 ... 342 셀에 이미지 추가 ... 342 7-4 이 장을 마치며... ... 344 CHAPTER 08 데이터 입출력과 네트워크 8-1 파일 입출력 ... 346 일반적으로 사용되는 디렉토리 ... 346 경로 얻기 ... 348 단어집 애플리케이션 ... 349 파일에 데이터 저장하기와 읽기 ... 356 직렬화로 프리퍼티 리스트 저장과 읽기 ... 356 XML 저장을 위한 여러 가지 방법 ... 360 검색 ... 360 아카이버를 이용한 데이터 읽기와 쓰기 ... 362 기타 파일 입출력 ... 367 8-2 SQLite ... 369 테이블 생성 ... 369 데이터 추가 ... 372 데이터 검색 ... 373 데이터 삭제 ... 375 FMDB 클래스 패키지 ... 377 8-3 국제화와 지역화 ... 380 지역 리소스 생성 ... 381 코드의 문자열 지역화 ... 385 형식 문자열 지역화 ... 387 8-4 네트워크 ... 389 UIAlertView ... 390 FTP 파일 목록 ... 393 파일 다운로드 ... 402 8-5 이 장을 마치며... ... 404 CHAPTER 09 이미지와 센서 9-1 iPhone 이미지 ... 406 동적으로 이미지 생성 ... 407 이미지 퍼즐 ... 412 카메라로부터 이미지 생성 ... 417 9-2 iPhone 센서 이용 ... 422 가속 센서 ... 422 가속 센서를 이용한 만보계 ... 424 위치 ... 426 9-3 이 장을 마치며... ... 433 Appendix App Store 판매를 위한 개발자 프로그램 가입하는 방법 ... 436 찾아보기 ... 461