목차
저자소개 ... 5
감사의 글 ... 6
옮긴이 소개 ... 7
옮긴이의 말 ... 8
들어가며 ... 20
1부 개요
   1장 개발 도구 둘러보기
      엑스코드 ... 26
      인터페이스 빌더 ... 28
      정리 ... 30
   2장 간단한 아이폰 애플리케이션 만들기
      템플릿을 이용한 프로젝트 생성 ... 32
      GUI 만들기 ... 34
      간단한 UIVIEWCONTROLLER ... 37
      아이폰에서 돌려보기 ... 41
      정리 ... 42
   3장 시뮬레이터
      시뮬레이터 UI ... 46
        멀티터치 시뮬레이션 ... 46
        코어 로케이션 시뮬레이션 ... 47
        시뮬레이터 회전 ... 49
        시뮬레이터 파일시스템 ... 49
      시뮬레이터와 실제 하드웨어의 차이 ... 51
        실제 하드웨어에서 동작하지 않는 API 사용 회피 ... 51
        시뮬레이터와 하드웨어의 성능 차이 ... 52
      정리 ... 54
2부 GUI
   4장 아이폰 UI 기초
      아이폰 홈 화면 ... 60
      시네마틱 UX ... 62
      아이폰 내장 애플리케이션 ... 63
      사용자와 UI 사이에 발생하는 상호 작용 ... 65
      정리 ... 66
   5장 UIViewController
      기본적인 모델, 뷰, 컨트롤러 디자인 패턴 ... 68
      UIVIEWCONTROLLER ... 70
      UIVIEWCONTROLLER의 메소드 오버라이딩 ... 70
        뷰 회전 관리 ... 72
        메모리 경고 처리 ... 74
      UIVIEWCONTROLLER 사용 ... 74
        코드 생성 ... 75
        UIViewController 헤더파일 작성 ... 77
        UIViewController 구현 ... 78
        인터페이스 빌더에 컨트롤러 추가 ... 82
        UIApplicationDelegate 개요 ... 84
        애플리케이션 델리게이트에서 모델 생성 ... 85
        윈도우에 뷰 추가 ... 87
      정리 ... 89
   6장 UITableView
      UITABLEVIEWDATASOURCE와 UITABLEVIEWDELEGATE ... 92
        UITableView와 NSIndexPath ... 93
        UITableViewDataSource ... 93
        UITableViewDelegate ... 98
      애플리케이션에 UITABLEVIEW 추가 ... 100
        UITableViewDataSource 작성 ... 101
        애플리케이션 동작 확인 ... 108
        행을 터치해 특정 동작을 수행하게 만들기 ... 109
      UITABLEVIEW를 그룹 단위로 구성 ... 114
        모델에 주 정보 추가 ... 114
        UITableViewDataSource 수정 ... 116
      UITABLEVIEW의 고급 설정 기능 ... 119
        테이블 가장자리에 알파벳 순으로 나열된 인덱스 추가 ... 120
        검색창 추가 ... 121
      정리 ... 122
   7장 UITableViewCell
      UITABLEVIEWCELL ... 124
      UITABLEVIEWCELL에 이미지 추가 ... 126
      UITABLEVIEWCELL에 대한 고급 커스터마이즈 ... 130
      커스텀 셀 제작 시 고려할 성능 문제 ... 134
      UITABLEVIEWCELL 재사용 ... 136
        재사용 식별자 ... 138
      정리 ... 140
   8장 UINavigationController 내비게이션 모델
      UINAVIGATIONCONTROLLER 모델 ... 141
      UINAVIGATIONCONTROLLER 제작 ... 143
      UINAVIGATIONCONTROLLER 설정 ... 145
      UIVIEWCONTROLLER 추가와 제거 ... 147
      UITOOLBAR 추가 ... 148
      행 편집 기능 ... 149
        UINavigationController로 MyView 이동 ... 149
        EditViewController 제작 ... 150
        행 편집 ... 154
        행 추가 ... 158
        행 삭제 ... 159
      정리 ... 159
   9장 UIApplicationDelegate
      UIAPPLICATIONDELEGATA 존재 이유 ... 161
      애플리케이션 시작과 종료 ... 162
        애플리케이션 구동 시 호출되는 메소드 ... 163
        applicationWillTerminate 메소드 ... 164
      애플리케이션 동작 중 메시지 수신 ... 165
        자원 경고 처리 ... 167
        전화 수신과 슬립 상태 처리 ... 168
        상태 변화 ... 168
        원격 알림 메시지 관리 ... 169
      정리 ... 170
   10장 커스텀 UIView
      코코아 터치 뷰 지오메트리 ... 172
      프로젝트에 커스텀 뷰 추가 ... 173
      커스텀 뷰 코드 작성 ... 173
        코어 그래픽스 ... 174
        drawRect 작성 ... 181
      정리 ... 184
   11장 터치 이벤트 처리
      커스텀 UIView에서 멀티터치 처리 ... 186
        touchesBegan:withEvent: 구현 ... 186
        터치정보 NSSet ... 188
        touchesMoved:withEvent: 구현 ... 188
        touchesEnded:withEvent: 구현 ... 189
        멀티터치 이벤트 처리 ... 189
      터치 이벤트를 처리하도록 커스텀 뷰 예제 업데이트 ... 189
        터치를 이용한 원 이동 ... 190
        원 크기 조절 기능 추가 ... 194
      정리 ... 197
   12장 코코아 터치에서 제공하는 컨트롤
      코코아 터치에서 제공하는 여러 가지 컨트롤 ... 200
      UISLIDER ... 201
        인터페이스 빌더에서 UISlider 설정 ... 201
        UISlider 상태 업데이트 ... 203
      UITabBar ... 204
        인터페이스 빌더에서 UITabBar 설정 ... 205
        UITabBar에 UITabBarItem 추가 ... 205
        UITabBar 고급 기능 설정 ... 207
        UIPickerView ... 208
        인터페이스 빌더에서 UIPickerView 설정 ... 208
        UIPickerViewDataSource 생성 ... 208
        UIPickerView 델리게이트 생성 ... 210
      정리 ... 211
   13장 텍스트 입력 처리
      인터페이스 빌더를 이용한 키보드 설정 ... 214
        대소문자 설정 ... 215
        자동 완성 기능 활성화와 해제 ... 216
        키보드 종류 설정 ... 217
        리턴 키 동작 설정 ... 218
        기타 설정 ... 218
      코드를 이용한 키보드 설정 ... 219
        키보드 표시 ... 219
        UITextInputTraits ... 220
      키보드 이벤트 처리 ... 221
        UITextFieldDelegate 생성 ... 221
        키보드 표시를 위한 뷰 이동 ... 223
      정리 ... 225
   14장 코어 애니메이션으로 시네마틱 UI 만들기
      UIVIEW 애니메이션 메소드 ... 228
      CALAYER를 이용한 코어 애니메이션 고급 기능 ... 235
      UIIMAGEVIEW를 이용한 애니메이션 ... 239
      정리 ... 240
   15장 OpenGL ES 사용
      아이폰의 OPENGL ES 기능 ... 242
      기본적인 OPENGL 뷰 생성 ... 243
      정리 ... 247
   16장 사파리 이용
      아이폰 웹 브라우저로 URL 열기 ... 250
      UIWEBVIEW ... 251
        애플리케이션에 UIWebView 추가 ... 252
        URL 열기 ... 252
        UIWebViewDelegate 구현 ... 253
        애플리케이션 번들에 있는 HTML 로딩 ... 254
      정리 ... 255
3부 데이터 다루기
   17장 사용자 데이터 저장
      NSUSERDEFAULTS 객체 접근 ... 260
      NSUSERDEFAULTS에서 데이터 읽고 쓰기 ... 261
      기본 사용자 데이터 설정 ... 263
      설정 애플리케이션 ... 266
        설정 번들 추가 ... 267
        설정 내용 추가 ... 267
      정리 ... 270
   18장 코어 데이터를 이용한 데이터베이스
      코어 데이터 기본 구성 ... 272
      좋아하는 도시 예제에 코어 데이터 지원 기능 추가 ... 274
        애플리케이션 델리게이트 변경 ... 275
        매지티드 오브젝트 모델 활용 ... 280
      CRUD ... 284
        생성 ... 284
        읽기 ... 285
        업데이트 ... 287
        삭제 ... 287
        좋아하는 도시s 예제 업데이트 ... 287
      코어 데이터 활용 분야 ... 297
      코어 데이터 활용에 부적합한 분야 ... 297
      정리 ... 298
   19장 네트워크로 외부와 통신
      웹 접근 ... 300
        파운데이션 클래스에서 URL 사용 ... 300
        NSURLRequest와 NSURLConnection 사용 ... 302
      메시지 UI 프레임워크를 이용해 애플리케이션에서 이메일 발송 ... 307
      코어 파운데이션 소켓 ... 311
        CFSocket ... 313
        CFHost를 이용한 호스트 정보 획득 ... 317
        CFStream ... 319
      봉주르 탐색 ... 323
        봉주르 서비스 탐색 ... 323
        NSNetService ... 326
      정리 ... 328
   20장 푸시 알림 서비스
      푸시 알림 서비스 구조 ... 331
        푸시 알림 커뮤니케이션 ... 331
        푸시 알림의 보안 ... 337
      푸시 알림 메시지용 인증서 ... 339
      서버단의 푸시 알림 서비스 개발 ... 342
        루비로 작성한 푸시 알림 제공자 ... 342
        푸시 알림 메시지 전송 ... 346
        피드백을 이용한 전송 확인 ... 346
      아이폰 클라이언트에서 푸시 알림 사용 ... 346
        알림 메시지 수신 등록 ... 347
        애플리케이션에서 알림 메시지 수신 ... 348
      정리 ... 349
   21장 게임킷 API
      P2P 연결 ... 352
        장치 검색 ... 352
        세션 작업 ... 356
      게임 내 음성 기능 ... 361
      정리 ... 365
   22장 잘라내기, 복사, 붙여넣기
      표준 컨트롤에서 복사와 붙여넣기 기능 ... 368
      페이스트보드의 종류 ... 368
      UIPAETEBOARD 사용 ... 369
      커스텀 뷰에서 잘라내기, 복사하기, 붙여넣기 ... 371
        메뉴 표시를 위한 touchesEnded:withEvent: 구현 ... 371
        copy: 메소드 구현 ... 372
paste: 메소드 구현 ... 373
        동작 방식 ... 374
      정리 ... 374
   23장 지도 API
      MKMAPVIEW를 이용한 내장 지도 표시 ... 375
        MKMapView 생성 ... 376
        지도 영역 지정 ... 377
      지도 상에 설명 추가 ... 380
        설명과 지도 성능과의 관계 ... 382
      좌표 변환 ... 382
      정리 ... 385
4부 미디어
   24장 아이폰에서 지원하는 미디어 타입
      아이폰에서 지원하는 오디오 포맷 ... 389
        압축 방식 오디오 포맷 ... 390
        비압축 방식 오디오 포맷 ... 390
      아이폰에서 지원하는 비디오 포맷 ... 391
      정리 ... 391
   25장 오디오 재생
      AV 파운데이션 프레임워크 ... 394
        AVAudioSession ... 394
        AVAudioSessionDelegate ... 397
        AVAudioPlayer로 오디오 재생 ... 398
        AVAudioPlayerDelegate ... 401
      OPENAL로 오디오 재생 ... 401
      정리 ... 402
   26장 아이팟 라이브러리 접근
      미디어 플레이어 프레임워크 작업 ... 404
      미디어 라이브러리 접근 ... 404
        MPMediaPickerController를 이용하는 방법 ... 405
        미디어 검색 ... 408
      플레이어 컨트롤러 ... 413
      미디어 표지 ... 415
      정리 ... 416
   27장 오디오 녹음
      AVAUDIONSESSION 설정 ... 417
      AVAudIORECORDER 생성 ... 419
      음성 녹음기 생성 ... 421
      정리 ... 426
   28장 애플리케이션에서 비디오 재생
      애플리케이션 번들에 포함된 비디오 파일 재생 ... 428
      인터넷을 통한 비디오 재생 ... 430
      정리 ... 431
5부 아이폰 하드웨어 다루기
   29장 디바이스 정보 가져오기
      배터리 상태 확인 ... 436
      접근 센서 ... 436
      디바이스 메타데이터 ... 437
      정리 ... 438
   30장 코어 로케이션
      현재 위치 알아내기 ... 442
        CLLocationManager 할당 ... 443
        델리게이트 설정 ... 444
        CLLocationManagerDelegate 프로토콜 구현 ... 445
        위치 업데이트 시작과 중단 ... 446
        구글 맵에 위치 표시 ... 446
      좌표 오차 줄이기 ... 448
      위치 정보 필터링 ... 449
      완성된 예제 코드 ... 450
      아이폰 3GS의 나침반 기능 ... 453
      정리 ... 454
   31장 가속도계
      현재 방향 알아내기 ... 456
        기포 수준기 만들기 ... 458
        UIAcceleration 오브젝트 ... 462
      쉐이크 이벤트 ... 462
        쉐이크 이벤트 검출 ... 463
        drawRect ... 463
        motionBegan과 motionEnded 작성 ... 465
        모션 이벤트 취소 ... 465
      정리 ... 466
   32장 아이폰 주변 장치
      아이폰에 연결할 주변장치 생성 ... 467
      EAACCESSORYMANAGER로 현재 연결된 주변장치 찾기 ... 468
      EAACCESSOR 클래스 ... 469
      EASESSION ... 470
      NSSTREAM으로 디바이스와 통신 ... 471
      정리 ... 472
6부 애플리케이션 배포
   33장 코드 서명
      개발 인증서 받기 ... 476
      프로비저닝 프로세스 ... 476
        개발, 배포, 애드혹 프로비저닝 ... 477
        프로비저닝 프로파일 설치 ... 478
        서명한 애플리케이션의 동작 ... 480
        서명할 애플리케이션 설정 ... 480
      애드혹 빌드 ... 482
        엑스코드에서 빌드 설정 ... 482
        사용자에게 배포 ... 484
      정리 ... 484
   34장 애플리케이션 확장
      판매할 수 있는 상품의 종류 ... 486
      잠금 해제 컨텐츠 ... 487
      아이튠즈 커넥트에 구매 가능한 컨텐츠 준비 ... 489
      스토어 킷 작업 ... 490
        컨텐츠 구매 기능 활성화 검사 ... 490
        스토어 표시 ... 491
        상품 구매 ... 493
        과금 처리 ... 493
        트랜잭션 유효성 검사 ... 496
        컨텐츠 잠금 해제 ... 496
        구매한 컨텐츠 복구 ... 497
        애플리케이션 내 구매 테스트 ... 498
      정리 ... 499
찾아보기 ... 501
닫기