이 책에 쏟아진 찬사 ... 4 저자 소개 ... 7 감사의 글 ... 8 옮긴이 소개 ... 9 옮긴이의 말 ... 10 들어가며 ... 26 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 오브젝티브 C ... 458 메소드 호출 ... 458 접근자 ... 460 객체 생성 ... 460 클래스 인터페이스 정의 ... 461 클래스 구현 ... 462 클래스 프로퍼티 ... 462 프로토콜 ... 463 카테고리 ... 464 메모리 관리 ... 465 메모리 관리 예제 ... 467 마치면서 ... 470 찾아보기 ... 472