목차

01장  아이폰 SDK 소개  ● 31
    애플 아이폰 SDK  ● 31
    아이폰 프로젝트  ● 33
    아이폰 애플리케이션 컴포넌트  ● 35
        애플리케이션 폴더 구조  ● 35
        실행파일  ● 35
        Info.plist 파일  ● 36
        아이콘과 기본 이미지  ● 38
        XIB 파일  ● 39
        애플리케이션 번들에 포함되지 않은 파일  ● 39
        샌드박스  ● 39
    플랫폼의 제약사항  ● 40
        저장공간  ● 41
        데이터 접근  ● 41
        메모리  ● 41
        상호작용  ● 42
        배터리  ● 43
        애플리케이션  ● 43
        사용자 행동  ● 44
    SDK의 제약사항  ● 44
    프로그래밍 패러다임  ● 45
        객체 지향 프로그래밍  ● 45
        모델-뷰-컨트롤러  ● 46
    아이폰 애플리케이션 골격 만들기  ● 56
    Hello World 애플리케이션  ● 57
        클래스  ● 57
        코드  ● 59
        예제 코드와 메모리 관리에 대한 주의점  ● 60
    Hello World 만들기  ● 62
        아이폰 프로젝트 생성  ● 63
        골격만 실행해보기  ● 64
        아이폰 프로젝트 커스터마이즈  ● 65
        식별자 정보 수정  ● 66
        디버거 사용  ● 67
    애플 아이폰 개발자 프로그램  ● 69
        개발용 폰  ● 70
        애플리케이션 식별자  ● 71
    엑스코드에서 아이폰으로: 오거나이저 인터페이스  ● 72
        프로젝트와 소스 리스트  ● 73
        디바이스 리스트  ● 73
        써머리 탭  ● 74
        콘솔 탭  ● 74
        크래쉬 로그 탭  ● 75
        스크린샷 탭  ● 75
        케이블 연결  ● 75
        아이폰상에서 애플리케이션 테스트하기  ● 76
        배포용 컴파일  ● 77
    문서에 없는 API 호출 사용하기  ● 79
    애드혹 배포  ● 80
    정리  ● 81

02장  뷰  ● 83
    UIView와 UIWindow  ● 83
        계층구조  ● 84
        형태와 특성  ● 86
        제스처  ● 90
    예제: 단계적 하위뷰 붙이기  ● 90
        방향전환  ● 92
    예제: 뷰 드래깅  ● 94
        UITouch  ● 95
        지속성 추가  ● 98
    예제: 뷰 오려내기  ● 103
        잘라내기와 터치 맞추기  ● 104
        픽셀단위 값에 접근하기  ● 105
    예제: 멀티터치 감지  ● 108
    UIView 애니메이션  ● 111
        UIView 애니메이션 블록 만들기  ● 112
    예제: 뷰를 페이드 인/아웃하기  ● 113
    예제: 뷰 간 전환하기  ● 115
    예제: 뷰 뒤집기  ● 118
    예제: CATransition을 레이어에 적용하기  ● 120
        문서에 나오지 않는 애니메이션 타입  ● 121
        일반 코어 애니메이션 호출  ● 123
    예제: 뷰 스와이프하기  ● 124
    예제: 뷰 변형하기  ● 128
        가로보기 뷰를 가운데로 맞추기  ● 131
    정리  ● 132

03장  뷰 컨트롤러  ● 135
    뷰 관리  ● 135
        코어 클래스  ● 136
        스페셜 클래스  ● 136
        UIViewController 만들기  ● 138
    인터페이스 빌더를 사용한 뷰 만들기  ● 140
        온도 변환기 예제  ● 140
        직접 XIB 파일을 로딩하기  ● 152
    내비게이션 컨트롤러  ● 152
        내비게이션 컨트롤러 설정  ● 153
        뷰 컨트롤러를 스택에 넣고 꺼내기  ● 154
        내비게이션 아이템 클래스  ● 155
    예제: 아이템 둘 있는 메뉴 만들기  ● 156
    예제: 세그먼트 컨트롤 추가하기  ● 158
    예제: 내비게이션바에 UIToolbar 추가하기  ● 160
    예제: 뷰 컨트롤러 간의 내비게이션  ● 164
        루트로 바로 가기  ● 166
        뷰 컨트롤러 배열 읽어들이기  ● 166
    탭바  ● 167
    정리  ● 171

04장  알림  ● 173
    알림창을 통해 사용자에게 직접 알리기  ● 173
        결과 로깅  ● 174
        알림창 만들기  ● 175
        화면에 알림창 띄우기  ● 177
    예제: 여러 줄짜리 버튼 만들기  ● 177
    예제: 버튼 없는 알림창  ● 180
    예제: 사용자에게 텍스트 입력 요청하기  ● 181
    예제: 간단한 메뉴  ● 184
    ‘대기 중’: 사용자에게 진행 상황 보여주기  ● 186
    예제: 문서화되지 않은 UIProgressHUD 사용  ● 187
    예제: UIActivityIndicatorView 사용  ● 189
    예제: UIProgressView 만들기  ● 191
    예제: 선택 가능한 커스텀 오버레이 만들기  ● 194
    예제: 스크롤다운 알림창 만들기  ● 199
    예제: 상태바에 이미지 추가하기  ● 203
    애플리케이션 뱃지 달기  ● 204
    예제: 간단한 소리 알림  ● 207
        진동  ● 209
    정리  ● 210

05장  기본 테이블  ● 211
    UITableView와 UITableViewController 소개  ● 211
        테이블 만들기  ● 212
        UITableViewController가 하는 일  ● 214
    예제: 단순 리스트 테이블 만들기  ● 215
        데이터 소스 메소드  ● 215
        셀의 재사용  ● 216
        폰트 테이블 예제  ● 216
    예제: 테이블 기반 선택 시트 만들기  ● 219
    예제: 테이블 셀에 이미지 추가하기  ● 224
    예제: 셀의 텍스트 속성  ● 226
    셀 선택 제거  ● 228
    예제: 복잡한 셀 만들기  ● 229
    예제: 셀 선택 표시 만들기  ● 232
    예제: 셀 삭제  ● 233
        삭제 컨트롤 추가  ● 234
        삭제 컨트롤 제거  ● 235
        삭제 요청 처리  ● 235
        스와이핑 셀  ● 236
        셀 추가  ● 236
    예제: 셀 순서 변경하기  ● 239
    예제: 디스클로저의 사용  ● 240
    정리  ● 243

06장  고급 테이블  ● 245
    예제: 테이블 섹션 그룹화  ● 245
        섹션을 지원하는 데이터 소스  ● 247
        섹션 헤더 추가하기  ● 251
    예제: 인덱스 섹션 테이블  ● 253
    예제: 셀 배경색 바꾸기  ● 254
        테이블 뷰 꾸미기  ● 258
    예제: 두 배경색이 반복되는 셀  ● 260
    예제: 프레임을 사용한 테이블  ● 262
    예제: 셀에 컨트롤 추가하기  ● 264
    예제: 멀티 휠 테이블  ● 266
        UIPickerView 생성  ● 268
    예제: UIDatePicker 사용하기  ● 271
        날짜 피커 만들기  ● 271
    예제: 풀 커스터마이징된 그룹 테이블 만들기  ● 274
        설정 테이블 만들기  ● 274
    정리  ● 281

07장  미디어  ● 283
    예제: 파일 형식에 따라 문서 폴더의 내용 보기  ● 283
        문서의 위치 찾기  ● 285
    이미지를 읽고 보여주기  ● 287
    예제: 작은 이미지 보여주기  ● 288
    예제: UIWebView를 사용해 이미지 보여주기  ● 291
        UIWebView를 이용해 웹 페이지 보여주기  ● 293
    예제: 이미지 라이브러리 브라우징  ● 294
    예제: 카메라 롤에서 이미지를 선택하고 커스터마이징  ● 298
    예제: 아이폰 카메라로 사진 찍기  ● 302
    아이폰 오디오 다루기  ● 305
    예제: 셀레스티얼을 이용한 오디오 재생  ● 306
    예제: 미디어 플레이어를 이용한 오디오와 비디오 재생  ● 309
    예제: 오디오 녹음  ● 311
    텍스트 데이터 읽기  ● 319
        속성 리스트 출력하기  ● 320
    백업 파일에서 미디어 복원하기  ● 321
    정리  ● 323

08장  컨트롤  ● 325
    예제: 간단한 버튼  ● 325
        UIButton 클래스  ● 326
        커스텀 버튼  ● 328
        글래스 버튼  ● 331
    예제: 애니메이션 요소로 버튼 꾸미기  ● 332
    예제: 버튼에 애니메이션 추가하기  ● 333
    예제: 스위치 커스터마이징  ● 335
        UIAlertView 버튼 꾸미기  ● 339
    예제: 커스텀 슬라이더 썸 이미지 추가  ● 340
        슬라이더에 텍스트 추가  ● 344
    예제: UITextField 키보드 사라지게 하기  ● 345
    예제: UITextView 키보드 사라지게 하기  ● 347
    예제: 텍스트 뷰에 취소 버튼 추가  ● 349
    예제: 텍스트 기반 HTML 편집기  ● 352
    예제: 검색바  ● 356
    예제: 콜아웃뷰 추가  ● 358
    페이지 표시 컨트롤 추가  ● 361
    예제: 툴바 커스터마이징  ● 365
        툴바 팁  ● 369
    정리  ● 370

09장  사람, 위치, 변화  ● 371
    연락처 프레임워크 종류  ● 371
        연락처 UI 프레임워크  ● 372
        연락처 프레임워크  ● 372
    예제: 연락처 이미지 데이터 접근  ● 374
    예제: 개인 연락처 정보 보이기  ● 377
    예제: 연락처 브라우징  ● 378
        이메일 주소만 브라우징하기  ● 381
        연락처 추가  ● 381
    코어 로케이션  ● 382
        코어 로케이션 동작 원리  ● 383
    예제: 코어 로케이션  ● 385
    예제: 위치 정보를 주소로 변환  ● 390
    예제: 코어 로케이션 데이터를 사용한 지도 찾기  ● 393
    예제: 코어 디바이스 정보 접근  ● 396
    예제: 근접 센서 켜고 끄기  ● 397
    예제: 가속도를 사용해 위아래 구별  ● 398
    예제: 가속도 센서를 이용해 화면 상 오브젝트 움직이기  ● 400
    정리  ● 404

10장  서비스 연결  ● 405
    예제: 애플리케이션 설정 추가  ● 405
        애플리케이션 설정  ● 406
    예제: 커스텀 URL 스킴 등록  ● 411
    예제: 네트워크 상태 확인  ● 414
        네트워크 연결 상태 확인  ● 414
        아이폰 로컬 IP 주소 조회  ● 415
        사이트 IP 주소 조회  ● 417
        사이트 사용 가능 여부 확인  ● 417
    예제: 아이폰 데이터베이스 사용  ● 419
    예제: XML을 트리 데이터 구조로 변환  ● 422
    예제: 키체인 아이템 저장과 조회  ● 425
        키체인에 여러 값 저장  ● 431
        키체인 지속성  ● 433
    파일 전송과 수신  ● 433
    예제: 간단한 웹 서버 만들기  ● 435
    푸시 알림 서비스  ● 440
    정리  ● 441

11장  커버플로우 만들기  ● 443
    UICoverFlowLayer 클래스  ● 443
    커버플로우 뷰 만들기  ● 445
    커버플로우 뷰 컨트롤러 만들기  ● 448
        커버플로우 데이터소스 메소드  ● 450
        커버플로우 델리게이트 메소드  ● 450
    정리  ● 455

부록  아이폰 개발에 꼭 필요한 오브젝티브C 기초와 메모리 관리  ● 457