저자 소개 ... 6 기술 감수자 소개 ... 7 감사의 글 ... 8 역자 소개 ... 9 역자의 말 ... 10 머리말 ... 20 Part 1 새로워진 것들 Chapter 1 완전히 새로운 것 iOS의 역사 ... 31 새로운 것들 ... 32 요약 ... 37 참고 자료 ... 38 Chapter 2 Xcode 4와 친해지기 새로운 사용자 인터페이스 배우기 ... 40 All in One 윈도 ... 45 내비게이터 살펴보기 ... 45 보조 편집기의 도움 ... 49 통합된 인터페이스 빌더 ... 49 LLVM 컴파일러 3.0: 두뇌의 집합소 ... 51 Git: 소스 코드의 버전이 있는 곳 ... 52 스킴 ... 54 빌드 설정에 주석을 달 수 있어요 ... 56 Xcode 4 오거나이저 ... 59 요약 ... 61 참고 자료 ... 61 Part 2 자주 사용하는 도구 최대한 활용하기 Chapter 3 일반적인 오브젝티브-C 명명 규칙 ... 67 Automatic Reference Counting ... 70 프로퍼티 ... 75 접근자 ... 78 카테고리와 확장 ... 79 공식적인 프로토콜과 비공식적인 프로토콜 ... 86 요약 ... 88 참고 자료 ... 89 Chapter 4 느슨하게 유지하기: 코코아 디자인 패턴 Model-View-Controller 이해하기 ... 92 델리게이트와 데이터 소스 이해하기 ... 95 커맨드 패턴으로 작업하기 ... 96 옵서버 패턴으로 작업하기 ... 106 싱글턴 패턴으로 작업하기 ... 110 요약 ... 114 참고 자료 ... 114 Chapter 5 테이블 뷰, 바르게 이해하기 UITableView 클래스 계층 구조 ... 118 테이블 뷰 이해하기 ... 118 스토리보드 ... 144 스토리보드 시작하기 ... 145 UIAppearance 프로토콜을 이용하여 뷰를 커스터마이징 하기 ... 151 요약 ... 152 참고 자료 ... 153 Chapter 6 향상된 드로잉 iOS의 수많은 드로잉 시스템 ... 156 UIKit과 뷰 드로잉 주기 ... 156 뷰 드로잉 대 뷰 레이아웃 ... 159 커스텀 뷰 드로잉 ... 160 UIView 드로잉 최적화하기 ... 179 CGLayer ... 184 요약 ... 186 참고 자료 ... 186 Chapter 7 양파 같은 레이어: 코어 애니메이션 뷰 애니메이션 ... 190 사용자 인터랙션 관리하기 ... 192 레이어를 가지고 그리기 ... 193 움직이기 ... 199 3차원으로 가기 ... 206 레이어 꾸미기 ... 212 액션으로 자동 애니메이션 하기 ... 212 커스텀 프로퍼티를 애니메이션 하기 ... 214 코어 애니메이션과 스레드 ... 216 요약 ... 216 참고 자료 ... 216 Chapter 8 짜증나는 에러에 태클 걸기 에러 처리 패턴 ... 219 어서션 ... 221 예외 ... 223 충돌 캐칭과 리포팅 ... 224 에러와 NSError ... 225 로그 ... 231 요약 ... 234 참고 자료 ... 234 Part 3 작업에 적합한 도구 Chapter 9 멀티태스킹 제어하기 백그라운드 작업을 위한 모범사례: 큰 권한에는 그만큼의 책임이 따른다 ... 241 런 루프 이해하기 ... 242 스레드 ... 243 오퍼레이션 중심의 멀티태스킹 개발하기 ... 248 Grand Central Dispatch로 멀티태스킹 하기 ... 250 요약 ... 255 참고 자료 ... 256 Chapter 10 지친 사람들을 위한 REST REST 원리 ... 260 데이터 교환 형식 결정하기 ... 261 가상의 웹 서비스 ... 265 기억해야 할 중요한 것들 ... 267 RESTEngine 아키텍처(iHotelApp 샘플 코드) ... 267 요약 ... 286 참고 자료 ... 287 Chapter 11 보안 서비스로 위기에 대비하기 iOS 샌드박스 이해하기 ... 290 네트워크 통신 보호하기 ... 291 파일 보호 도입하기 ... 301 키체인 이용하기 ... 304 암호화 사용하기 ... 306 요약 ... 317 참고 자료 ... 317 Chapter 12 여러 플랫폼과 기기에서 실행하기 멀티 플랫폼용으로 개발하기 ... 320 디바이스 기능 감지하기 ... 325 앱 내 이메일과 문자 메시지 ... 332 멀티태스킹 확인하기 ... 333 UIRequiredDeviceCapablities ... 334 요약 ... 335 참고 자료 ... 335 Chapter 13 국제화와 지역화 지역화란 무엇인가? ... 337 문자열 지역화하기 ... 339 지역화되지 않은 문자열 감시하기 ... 340 숫자와 날짜 형식화하기 ... 342 Nib 파일 지역화하기 ... 345 요약 ... 350 참고 자료 ... 350 Chapter 14 앱 내 결제로 판매하기 시작하기 전에 ... 351 앱 내 결제 제품 ... 352 아이튠즈 커넥트에서 앱 설정하기 ... 355 앱 내 결제 구현하기 ... 360 MKStoreKit 소개 ... 362 결제 만들기 ... 367 여러분의 앱 내 결제 테스트하기 ... 368 문제 해결 ... 368 요약 ... 369 참고 자료 ... 370 Part 4 한계 밀어내기 Chapter 15 코코아 최고의 기술: 키-값 감시 키-값 코딩 ... 376 키-값 감시 ... 387 KVO의 장단점 ... 392 요약 ... 394 참고 자료 ... 394 Chapter 16 다르게 생각하기: 블록과 함수형 프로그래밍 블록이 무엇인가? ... 392 블록 선언하기 ... 401 블록 구현하기 ... 404 블록과 동시성 ... 409 블록 기반의 코코아 메소드 ... 411 지원되는 플랫폼 ... 414 요약 ... 414 참고 자료 ... 415 Chapter 17 오프라인에서 실행하기 오프라인에서 실행하는 이유 ... 418 캐싱에 대한 전략 ... 419 AppCache 아키텍처 ... 423 캐시 버전관리 ... 428 인메모리 캐시 만들기 ... 430 이미지 캐싱 하기 ... 434 iCloud 사용하기 ... 437 요약 ... 440 참고 자료 ... 440 Chapter 18 화려한 텍스트 레이아웃 일반적인 것: 필드, 뷰, 레이블 ... 441 서식 있는 텍스트를 위한 웹 뷰 ... 443 코어 텍스트 ... 446 서식 있는 텍스트 비교 ... 460 서드파티 방법 ... 461 요약 ... 462 참고 자료 ... 463 Chapter 19 코어 파운데이션 구축하기 코어 파운데이션 타입 ... 466 명명법과 메모리 관리 ... 467 할당자 ... 468 인트로스펙션 ... 469 문자열과 데이터 ... 470 컬렉션 ... 477 Toll-free Bridging ... 481 요약 ... 484 참고 자료 ... 485 Chapter 20 오브젝티브-C 심화학습 클래스와 객체 이해하기 ... 488 메소드와 프로퍼티로 작업하기 ... 490 메시지 전달이 실제로 동작하는 방법 ... 493 메소드 섞기 ... 502 ISA 섞기 ... 505 메소드 섞기 대 ISA 섞기 ... 507 요약 ... 507 참고 자료 ... 508 찾아보기 ... 510