이미 소장하고 있다면 판매해 보세요.
|
01장 UIKit 다이내믹스
____예제 앱 ____UIKit 다이내믹스 소개 ____UIKit 다이내믹스 구현 ________중력 ________충돌 ________붙이기 ________용수철 ________스냅 ________미는 힘 ________다이내믹 객체의 속성 ____UIDynamicAnimator와 UIDynamicAnimatorDelegate 추가 설명 ____요약 ____연습문제 02장 코어 로케이션, 맵키트, 지오펜싱 ____예제 앱 ____사용자의 위치 얻기 ________필요한 작업과 허가 ________위치 서비스 이용 가능 여부 확인 ________위치 정보 요청 시작 ________위치 데이터 이해와 파싱 ________위치 변화가 큰 경우 통보 ________특정 위치를 테스트하기 위한 GPX 파일 사용 ____지도 출력 ________좌표 시스템의 이해 ________MKMapKit 설정 ________사용자의 요구 처리 ____지도상의 주석과 오버레이 ________주석 추가 ________표준 주석 뷰와 커스텀 주석 뷰 출력 ________드래그 가능한 주석 뷰 ________오버레이 다루기 ____지오코딩과 역 지오코딩 ________주소 지오코딩 ________위치 역 지오코딩 ____지오펜싱 ________지역 감시 기능 가능 여부 확인 ________경계선 정의 ________감시 상태 변화 ____방향 정보 얻기 ____정리 ____연습문제 03장 순위표 ____선인장 때려 잡기 게임 ________선인장 생성 ________출력한 선인장 처리 ________생명과 점수 출력 ________중지와 재시작 ________참고사항 ____아이튠즈 커넥트 ____게임 센터 관리자 ____인증 ________인증 과정에서 흔하게 발생하는 에러 ________iOS 6 인증 ____점수 제출 ________선인장 때려 잡기 게임에 점수 기능 추가 ________순위표 출력 ________도전과제 ________순위표 직접 제작 ____정리 ____연습문제 04장 목표 달성 ____아이튠즈 커넥트 ____목표 달성 진행 상황 표시 ____게임 센터 관리자와 인증 ____목표 달성 캐시 ____목표 달성 보고 ____목표 달성 훅 추가 ____완료 배너 ____목표 달성 도전과제 ____선인장 때려 잡기 게임에 목표 달성 추가 ________완료한 목표 달성과 완료하지 못한 목표 달성 ________부분적으로 완료한 목표 달성 ________여러 세션에 걸쳐 완료하는 목표 달성 ________서로 연결된 목표 달성과 목표 달성의 정확도 저장 ________타이머 기반의 목표 달성 ____목표 달성 재시작 ____목표 달성 인터페이스 자체 제작 ____정리 ____연습문제 05장 주소록 ____주소록 지원 기능이 중요한 이유 ____주소록 프로그래밍의 제약사항 ____예제 앱 소개 ____주소록 시작 ________주소록으로부터 데이터 읽기 ________주소록으로부터 복수의 값을 읽기 ________주소록 레이블의 이해 ________주소 처리 ____주소록 사용자 인터페이스 ________피플 픽커 ________피플 픽커 상세 설정 ________rsonViewController를 이용한 기존 연락처 편집 및 출력 ________ABNewPersonViewController를 이용한 새로운 연락처 생성 ____코드상에서의 연락처 생성 ____정리 ____연습문제 06장 음악 라이브러리 ____예제 앱 소개 ____재생 엔진 구축 ________재생 알림 등록 ________사용자 인터페이스 컨트롤 ________상태 변화 처리 ________재생 시간과 타이머 ________뒤섞기와 반복 재생 ____미디어 픽커 ____프로그래밍 가능한 픽커 ________무작위로 노래를 선곡해 재생하기 ________검색 조건에 맞는 노래 찾기 ____정리 ____연습문제 07장 JSON 데이터 파싱과 처리 ____JSON ________JSON을 사용할 때의 이점 ________더 자세한 JSON 관련 문서 위치 ____예제 앱 소개 ____서버 접속 ____서버로부터 JSON 데이터 수신 ________HTTP 요청 생성 ________요청에 대한 응답 검사 ________JSON 데이터 파싱 ________데이터 출력 ____서버에 메시지 올리기 ________JSON 인코딩 ________JSON 데이터를 서버로 전송 ____정리 ____연습문제 08장 아이클라우드 ____예제 앱 ____아이클라우드 지원 기능 설정 ________계정 설정 ________아이클라우드 세부 기능 설정 ________아이클라우드 초기화 ____UIDocument 소개 ________UIDocument 하위 클래스 만들기 ________UIDocument로 작업하기 ____아이클라우드와 통신하기 ________아이클라우드에서 문서 리스트 보여주기 ________아이클라우드상에서의 충돌 탐지 ____충돌 해결 ____키-값 저장소 동기화 ____정리 ____연습문제 09장 알림 ____내부 알림과 푸시 알림의 차이점 ____예제 앱 ____앱 설정 ____개발용 푸시 SSL 인증서 생성 ____개발용 프로비저닝 프로파일 ____사운드 설정 ____원격 알림 등록 ____내부 알림 설정 ____알림 수신 ____푸시 알림 서버 ____레일스 기본 설정 ____접근 장치와 외침 수신 기능 추가 ____장치를 위한 컨트롤러 ____Shout 컨트롤러 ____모두 함께 동작시키기 ____푸시 알림 전송 ____APNs 피드백 처리 ____정리 ____연습문제 10장 게임 키트를 이용한 블루투스 네트워킹 ____게임 키트를 이용한 블루투스 네트워킹의 제약사항 ____게임 키트를 이용한 블루투스 네트워킹의 이점 ____예제 앱 ____피어 픽커 ____데이터 전송 ________데이터 모드 ________예제 앱에서 데이터 전송 ____데이터 수신 ________예제 앱에서 데이터 수신 ____상태 변화 ____고급 기능 ________상대방의 이름 ________피어 픽커 없이 연결 ________세션 모드 ____정리 ____연습문제 11장 에어 프린트 ____에어 프린트 프린터 ____에어 프린트 테스트하기 ____텍스트 프린트 ________프린트 정보 ________페이지 범위 설정 ________에러 처리 ________프린트 작업 시작 ________프린트 시뮬레이터 피드백 ____프린트 센터 ________UIPrintInteractionControllerDelegate ____출력한 HTML 화면 프린트 ____PDF 파일 프린트 ____정리 ____연습문제 12장 코어 데이터 기초 ____코어 데이터 사용 여부 결정 ____코어 데이터 관리 객체 ________관리 객체 ________관리 객체 모델 ________관리 객체 모델 마이그레이션 ________관리 객체 생성 ________객체 인출과 정렬 ________인출 결과 처리 컨트롤러 ____코어 데이터 실행 환경 ________영구 저장소 관리자 ________영구 저장소 ________관리 객체 컨텍스트 ____정리 13장 코어 데이터 다루기 ____예제 앱 ____코어 데이터 프로젝트 시작 ____코어 데이터 실행 환경 ____관리 객체 모델 생성 ________개체 생성 ________속성 추가 ________관계 설정 ________관계 객체 하위 클래스 ____초기 데이터 설정 ________새로운 관리 객체 삽입 ________기타 기본 데이터 설정 기술 ____관리 객체 출력 ________인출 요청 객체 생성 ________객체 아이디로 인출 ________관리 객체의 데이터 출력 ________속성 조건 사용 ____인출 요청의 결과를 처리하는 컨트롤러 ____인출 결과 처리 컨트롤러 준비 ________테이블 뷰와 인출 결과 처리 컨트롤러의 연동 ________코어 데이터 변경 이벤트 처리 ____관리 객체 추가, 편집, 제거 ________새로운 관리 객체 삽입 ________관리 객체 제거 ________기존의 관리 객체 편집 ________변경사항 저장/취소 ____정리 ____연습문제 14장 오브젝티브C의 고급 기능 ____리터럴 ________괄호 표현식 ____ARC ________새 프로젝트에서 ARC 사용 ________기존의 프로젝트에서 ARC를 사용하도록 변환 ________기본적인 ARC 사용법 ________ARC 수식어 ____블록 ________블록의 선언과 사용 ________블록에서 외부 상태 얻기 ________메소드의 매개변수로 사용하는 블록 ________메모리, 스레드, 블록 ____프로퍼티 ________프로퍼티 선언 ________synthesize 지시자로 접근자 메소드 생성 ________프로퍼티 접근 ________도트 표기 ________빠른 열거 ____메소드 대체 ____정리 ____연습문제 15장 소셜 프레임워크로 트위터, 페이스북 통합하기 ____소셜 네트워크 통합 ____예제 앱 ____로그인 ____SLComposeViewController 사용 ____자체 인터페이스를 이용한 포스팅 ________트위터에 포스팅하기 ________페이스북에 포스팅하기 ________페이스북 앱 생성 ____타임라인 정보 접근 ________트위터 ________페이스북 ____정리 ____연습문제 16장 백그라운드 태스크 ____예제 앱 ____백그라운드 작업 가능 여부 확인 ____백그라운드 모드에서의 태스크 완료 ________백그라운드 태스크 아이디 ________만료 처리자 ________백그라운드 태스크 완료 ____iOS가 지원하는 백그라운드 모드 구현 ________백그라운드 지원 타입 ________백그라운드에서의 음악 재생 ____정리 ____연습문제 17장 GCD를 이용한 성능 향상 ____예제 앱 ____큐 소개 ____주 스레드상에서의 태스크 실행 ____백그라운드에서의 실행 ____작업 큐에서의 태스크 실행 ________병렬 처리 작업 ________순차적인 작업 큐 ________작업 취소 ________커스텀 작업 큐 ____디스패치 큐에서의 태스크 실행 ________병렬 디스패치 큐 ________순차적인 디스패치 큐 ____정리 ____연습문제 18장 키체인을 이용한 데이터 보호 ____예제 앱 소개 ____키체인 설정과 사용 ________KeychainItemWrapper 객체 설정 ________핀 정보 저장과 인출 ________키체인 속성 키 ________딕셔너리 객체 저장 ________키체인 항목의 데이터 삭제 ________여러 앱에서 키체인 공유 ________키체인 에러 코드 ____정리 ____연습문제 19장 이미지와 필터 ____예제 앱 ____기본 이미지 데이터와 출력 ________이미지 객체 생성 ________이미지 출력 ________이미지 픽커 사용 ________이미지 크기 재조정 ____코어 이미지 필터 ________필터 카테고리와 필터 ________필터 속성 ________이미지 객체 초기화 ________필터링한 이미지 그리기 ________필터 연결 ____안면 인식 ________안면 인식기 설정 ________안면 특징 처리 ____정리 ____연습문제 20장 콜렉션 뷰 ____예제 앱 ____콜렉션 뷰 소개 ________콜렉션 뷰 설정 ________콜렉션 뷰 데이터 소스의 메소드 구현 ________콜렉션 뷰 델리게이트 메소드 구현 ____콜렉션 뷰와 플로우 레이아웃 커스터마이징 ________기본적인 커스터마이징 설정 ________데코레이션 뷰 ____커스텀 레이아웃 생성 ____콜렉션 뷰 애니메이션 ________콜렉션 뷰 레이아웃 변경 ________콜렉션 뷰 레이아웃 애니메이션 ________콜렉션 뷰 변경 애니메이션 ____정리 ____연습문제 21장 텍스트키트 소개 ____예제 앱 ____NSLayoutManager 소개 ________NSTextStorage 클래스 ____동적으로 링크 탐지 ____선택 탐지 ____배제 영역 ____특정 텍스트에 다양한 속성 부여 ____유동적 글자 크기 조절 기능으로 폰트 설정 변경 ____정리 ____연습문제 22장 터치 동작 인식기 ____터치 동작 인식기 타입 ____내장 터치 동작 인식기 사용법 ____예제 앱 소개 ________탭 동작 인식기 ________핀치 동작 인식기 ____한 뷰에 다수의 인식기 설치 ________터치 동작 인식기: 내부 구조 ________한 뷰에서 다수의 인식기 실행: 다른 방법 ____터치 동작 인식기 클래스(UIGestureRecognizer)의 하위 클래스 구현 ____정리 ____연습문제 23장 사진 라이브러리 접근 ____예제 앱 ____에셋 라이브러리 ____에셋 그룹과 에셋 열거 ________접근 허가 ________에셋 그룹 ________에셋 ____에셋을 화면에 출력하기 ____카메라 롤 앨범에 저장하기 ____사진 스트림 이용 ____정리 ____연습문제 24장 패스북 앱과 패스키트 ____예제 앱 ____패스 설계 ________패스의 타입 ________패스 레이아웃: 탑승권 ________패스 레이아웃: 쿠폰 ________패스 레이아웃: 이벤트 ________패스 레이아웃: 제네릭 ________패스 레이아웃: 스토어 카드 ________패스 출력 ____패스 생성 ________패스의 아이디 ________패스 관련 정보 ________바코드 아이디 ________패스의 화면 출력에 관한 정보 ________패스의 각 필드 ____패스 서명과 패키지화 ________패스 타입 아이디 생성 ________패스 서명 인증서 생성 ________매니페스트 생성 ________패스 서명과 패키지화 ________패스 테스트 ________앱에서 패스로 작업하기 ____패스 자동 업데이트 ____정리 ____연습문제 25장 디버깅과 인스트루먼트 ____디버깅 소개 ________최초의 컴퓨터 버그 ________엑스코드 디버깅 기초 ____브레이크 포인트 ________더 자세한 브레이크 포인트 설정 ________심볼릭 브레이크 포인트와 예외 브레이크 포인트 ________브레이크 포인트의 유효 범위 ____디버거로 작업하기 ____인스트루먼트 ________인스트루먼트의 인터페이스 ________인스트루먼트 탐구: 시간 프로파일러 ________인스트루먼트 탐구: 릭스 ________기타 인스트루먼트 ____정리 ____연습문제 |
|
★ 이 책에서 다루는 내용 ★
■ UIKit 다이내믹스가 제공하는 새로운 물리적인 애니메이션 효과 ■ 코어 로케이션, 맵키트(MapKit), 지오펜싱(Geofencing) 활용 ■ 게임 센터의 순위표, 목표 달성 기능 활용 ■ 앱에서 사용자의 주소록과 미디어 라이브러리에 접근하는 방법 ■ JSON을 이용해 서버, 앱, 웹사이트 간에 데이터 주고받기 ■ 아이클라우드(iCloud)의 UIDocument와 키-값 저장소 동기화 기능을 앱에 통합하기 ■ 키체인(Keychain)을 이용한 사용자 데이터 보호 ■ 앱 관련 이벤트를 사용자에게 전달하기 위한 알림 기능 사용 ■ 코어 데이터로 지속적인 데이터를 장치상에 저장, 인출하기 ■ 간결하면서도 효율적인 메모리 관리를 위한 오브젝티브C 고급 기능 사용 ■ GCD를 병렬 처리에 적용해 앱의 성능을 향상시키는 방법 ■ 텍스트키트(TextKit)를 이용한 고급 텍스트 처리 기능 구현 ■ 화면상에서 발생하는 복잡한 터치 동작을 자연스럽게 처리하는 방법 ■ 엑스코드(Xcode) 5의 디버거와 인스트루먼트(Instrument)를 이용한 효과적인 디버깅 기술 ■ 패스북(Passbook)과 패스키트(PassKit)를 이용한 패스 시스템 구축 ★ 이 책의 대상 독자★ 책의 모든 예제와 설명을 최대한 간단하고 이해하기 쉽도록 노력을 기울였다. 하지만 이 책은 중급에서 고급 수준 사이에 있는 책이다. 이 책을 제대로 이해하고 사용하기 위해서는 iOS 개발 과정, 오브젝티브C와 C 언어에 대한 기본적인 지식이 있어야 한다. 또한 엑스코드, 애플 개발자 포탈, 아이튠즈 커넥트(iTunes Connect), 인스트루먼트(Instruments)와 친숙해야 한다. ★ 이 책의 구성 ★ 1장 UIKit 다이내믹스: iOS 7에서는 UIView 객체에 실제 물리적인 효과와 동작을 줄 수 있도록 UIKit Dynamics를 도입했다. 표준 객체에 동적인 애니메이션, 물리적인 속성과 동작을 추가하는 방법을 배운다. 중력 효과부터 프로퍼티(property)까지 모두 7가지 타입의 동작을 설명한다. 2장 코어 로케이션, 맵키트, 지오펜싱: 애플은 iOS 6에서 자체적인 지도와 지도 데이터를 제공하기 시작했다. 이 장에서는 장치의 위치를 결정하고, 앱상에서 지도를 표시하며, 지도와 함께 주석(annotation), 오버레이(overlay), 말풍선(callout)을 표시하기 위해 코어 로케이션을 사용하는 방법을 배운다. 또한 앱이 특정 지역에 진입하거나 떠날 경우 사용자에게 알릴 수 있도록 지역을 모니터링(지오펜싱(Geofencing))을 하는 방법도 다룬다. 3장 순위표: 게임 센터의 순위표는 iOS용 게임이나 앱에 다른 사용자와 교류할 수 있는 기능을 제공한다. 이 장에서는 선인장 때려 잡기(Whack-a-Cac)라는 아이패드용 게임을 통해 어떻게 순위표 지원 기능을 추가할 수 있는지 설명한다. 게임 센터 순위표 구현에 필요한 모든 절차를 배우며, 또한 자신만의 별도의 인터페이스상에서 순위표를 구현하는 기본적인 방법도 배운다. 4장 목표 달성: 이 장에서는 3장의 선인장 때려 잡기 게임을 계속 이용한다. 이 아이패드용 게임에서 어떻게 게임 센터의 달성 목표를 구현하는지를 배운다. 아이튠즈 커넥트(iTunes Connect) 작업부터 달성 목표 진행 현황을 표시하는 방법까지 달성 목표를 구현하는 데 필요한 모든 정보를 제공한다. 5장 주소록: 사용자 연락 정보를 통합하는 작업은 최근 프로젝트에서 필수적인 부분이 됐다. 주소록(AddressBook) 프레임워크는 iOS상에서 가장 오래된 프레임워크 중 하나다. 이 장에서는 이 프레임워크를 사용하는 방법을 배운다. 피플 픽커(people picker)를 사용하는 방법, 주소록 데이터 접근 방법, 주소록 데이터를 수정, 저장하는 방법 등을 배운다. 6장 음악 라이브러리: 이 장에서는 앱상에서 사용자가 보유한 음악 정보에 접근하는 방법을 다룬다. 또한 이 음악 정보를 보는 방법과 이 음악 리스트에서 음악을 선택해 실행하는 방법을 배운다. 7장 JSON 데이터 파싱과 처리: JSON(JavaScript Object Notation)은 각기 다른 플랫폼 사이에 간편하게 데이터를 주고받을 수 있는 데이터 포맷을 제공한다. 이런 이유로 iOS 클라이언트 앱과 서버 간에 복잡한 데이터를 주고받을 때도 많이 사용하고 있다. 이 장에서는 기존의 객체로부터 JSON 데이터를 생성하는 방법과 JSON 데이터를 파싱해 iOS 객체에 넣는 방법을 설명한다. 8장 아이클라우드: 이 장은 아이클라우드(iCloud) 사용 방법을 설명한다. 아이클라우드는 여러 iOS 장치 간에 키-값 저장소와 문서를 동기화하는 데 사용한다. 아이클라우드 사용을 위해 앱을 설정하는 방법을 설명하고 키-값 저장소와 문서 접근을 구현하는 방법, 충돌을 인지하고 해결하는 방법을 배운다. 9장 알림: iOS는 두 가지 타입의 알림을 지원한다. 내부 알림(local notification)은 네트워크 연결이 필요 없이 한 장치상에서 동작하고, 원격 알림(remote notification)은 특정 서버가 네트워크 연결을 통해 애플의 푸시 알림 서비스(Push Notification Service)를 이용하여 장치에게 푸시 알림를 보내는 데 사용한다. 이 장에서는 이 두 가지 타입의 차이점을 설명하고 앱상에서 이 알림들을 설정하고 알림을 얻는 방법을 설명한다. 10장 게임 키트를 이용한 블루투스 네트워킹: 이 장에서는 블루투스 기반의 실시간 채팅 클라이언트를 생성하는 방법을 설명하고 블루투스 통신 가능 영역에 있는 친구를 연결해 문자를 주고받는 기능을 구현한다. 채팅 상대를 찾는 기능부터 데이터를 전송하는 기능까지 게임 키트에 있는 블루투스 기능을 사용하는 여러 방법을 배운다. 11장 에어 프린트: 에어프린트(AirPrint)는 실제보다 그 유용한 가치를 인정받지 못하는 기능 중 하나다. 에어프린트를 이용해 무선 통신이 가능한 에어프린트용 프린터로 문서와 미디어를 인쇄할 수 있다. 여러분의 앱에 에어프린트 지원 기능을 빠르고 손쉽게 추가하는 방법을 배운다. 이 장을 끝마칠 무렵이면 사용자로 하여금 여러분의 앱에서 뷰 화면, 이미지, PDF 파일, 심지어는 렌더링한 HTML 페이지 화면까지 프린트하게 할 수 있다. 12장 코어 데이터 기초: 코어 데이터(Core Data)는 매우 방대한 주제다. 이 장에서는 초심자에 맞추어 코어 데이터를 설명하고 언제 코어 데이터를 쓰는 게 적당하고 언제 쓰지 않아야 하는지 설명한다. 또한 단순한 용어를 사용해 코어 데이터의 기본 개념을 설명한다. 13장 코어 데이터 다루기: 이 장은 코어 데이터 사용을 위해 앱을 설정하는 방법과 코어 데이터 모델 설정 방법, 가장 흔하게 사용하는 코어 데이터의 기능을 구현하는 방법 등을 설명한다. 만약 여러분이 방대한 코어 데이터 서적을 펴들고 헤매고 싶지 않다면 이 장을 학습해야 한다. 14장 오브젝티브C의 고급 기능: iOS가 출시된 이후로 오브젝티브C는 계속 진화해왔다. 이 장은 언어와 컴파일러 수준에서 오브젝티브C에 일어난 변화를 설명한다. 또한 개발자가 왜 이런 변화를 사용해야 하는지 설명한다. 숫자, 배열, 딕셔너리 등에 적용할 새로운 문법을 설명하고, 또한 블록, ARC, 프로퍼티 선언 등에 대해 설명하며, 도트 표기법(dot notation), 빠른 열거(fast enumeration), 메소드 스위즐링(method swizzling)같이 새로운 기능은 아니지만 여전히 유용한 기능에 대해서도 다룬다. 15장 소셜 프레임워크로 트위터, 페이스북 통합하기: 소셜 네트워크 통합은 컴퓨팅의 미래로 수많은 앱이 이런 소셜 네트워크 기능을 기본으로 내장하고 있다. 이 장에서는 소셜(Social) 프레임워크를 사용해 페이스북과 트위터 지원 기능을 여러분의 앱에 추가하는 방법을 배운다. 트위터와 페이스북에 글을 올리기 위해 내장 컴포저(composer)를 사용하는 방법을 배우며, 두 서비스로부터 피드(feed) 정보를 가져오는 방법, 가져온 정보를 파싱해 처리하는 방법 등을 배운다. 마지막으로, 커스텀 인터페이스상에서 메시지를 보낼 때 프레임워크를 사용하는 방법을 배운다. 이 장을 끝낼 무렵이면 여러분의 앱에 트위터나 페이스북 같은 소셜 네트워크 지원 기능을 추가할 수 있을 뿐만 아니라 소셜 프레임워크에 대한 강력한 지식 기반을 갖추게 된다. 16장 백그라운드 태스크: iOS 4에서 도입한 새로고 강력한 기능 중 하나가 바로 앱이 전면부(foreground)에서 실행 중이 아닐 때도 작업을 수행할 수 있는 백그라운드 작업 기능이었다. 애플은 그 후로도 이에 더 많은 기능을 추가해왔다. 이 장에서는 앱이 전면부에서 백그라운드로 이동한 후 태스크를 수행하는 방법을 설명한다. 또한 iOS가 허용하는 백그라운드 타입을 실행하는 방법을 설명한다. 17장 GCD를 이용한 성능 향상: 리소스를 주 스레드에서만 집중적으로 사용하면 앱의 실행 속도가 느려지고 성능이 저하된다. 이 장에서는 GCD가 제공하는 여러 기술을 사용해 주 스레드의 성능 저하 없이 힘들고 복잡한 작업을 병렬적으로 처리하는 방법을 설명한다. 18장 키체인을 이용한 데이터 보호: 데이터 보호는 매우 중요하지만 앱 개발 시 자주 간과하는 부분이다. 큰 회사에서조차도 몇 년 동안 사용자의 신용카드 정보나 비밀번호를 평이한 텍스트 파일에 보관해 뉴스상에서 화제가 된 적이 있다. 이 장에서는 데이터 보호를 위해 키체인(Keychain)을 사용하는 방법과 개발 전체 과정과 관련한 보안 문제에 대한 기초적인 정보를 설명한다. 이 장을 끝내고 나면 키체인을 이용해 사용자가 자신의 데이터를 장치상에서 안심하고 사용하게 할 수 있다. 19장 이미지와 필터: 이 장에서는 기초적인 이미지 처리 기술을 배운다. 그런 후 이미지에 필터를 적용하기 위해 몇 가지 코어 이미지(Core Image) 관련 고급 기술을 살펴본다. 예제 앱은 코어 이미지의 기능을 이용해 실시간으로 필터를 연쇄적으로 연결할 수 있는 방법을 제공한다. 20장 콜렉션 뷰: 콜렉션 뷰는 iOS 6에서 새롭게 도입됐다. 이 콜렉션 뷰는 스크롤이 가능한 셀 기반의 컨텐츠를 배치하는 데 사용하는 강력한 API다. 콜렉션 뷰는 새로운 레이아웃 옵션 외에도 컨텐츠에 애니메이션 효과를 콜렉션 뷰의 내부, 외부에서 줄 수 있으며, 다른 컬렉션 뷰 레이아웃으로 전환할 수도 있다. 예제 앱은 콜렉션 뷰를 설정하는 기본적인 방법, 좀 더 특화된 레이아웃을 가진 콜렉션 뷰를 만드는 방법, 단선적인 틀에서 벗어난 콜렉션 뷰 레이아웃을 설정하는 방법을 보여준다. 21장 텍스트키트 소개: iOS 7에서는 기존의 코어 텍스트(Core Text)를 더욱 확장하면서도 더 사용하기 쉬운 텍스트키트(TextKit)를 도입했다. 텍스트키트는 개발자가 자신의 앱에 좀 더 풍부하고 다양한 텍스트 입력 양식을 사용할 수 있게 해준다. 텍스트키트는 굉장히 방대한 주제로, 이 장에서는 이미지상에서 텍스트 줄바꿈 기능 추가에서부터 커스텀 폰트 속성까지, 앱에서 흔히 필요로 하는 기능을 구현하는 데 필요한 기본 지식을 설명한다. 이 장을 끝내고 나면 독자는 텍스트키트에 대한 튼튼한 배경 지식을 갖추게 되며, 더 깊이 있는 학습과 작업을 위한 기초를 다질 수 있다. 22장 터치 동작 인식기: 이 장에서는 앱에서 터치 동작 인식기를 이용하는 방법을 설명한다. 터치 데이터를 직접 해석, 처리하는 대신 터치 동작 인식기를 이용해 간단하면서도 깔끔하게 동작을 인식하고 처리할 수 있다. 또한 자신만의 터치 동작을 정의해 이를 인식하는 터치 동작 인식기를 구현할 수도 있다. 23장 사진 라이브러리 접근: 아이폰은 이제 매우 인기 있는 카메라이기도 하다. 플리커(Flickr.com) 같은 사진 공유 사이트에 사람들이 아이폰으로 찍어서 업로드하는 사진의 숫자가 이를 증명한다. 이 장에서는 사용자의 포토 라이브러리에 접근해 사진과 비디오를 얻어 앱상에서 처리하는 방법을 설명한다. 예제 앱은 iOS 6의 사진 앱을 재구축하는 작업을 구현한다. 24장 패스북 앱과 패스키트: 애플은 iOS 6에서 패스북(Passbook) 앱을 도입했다. 패스북은 비행기 티켓, 쿠폰, 로열티 카드(loyalty card), 콘서트 티켓 같은 패스(pass)를 저장하는 앱이다. 이 장에서는 패스 설정 방법, 생성 방법, 배포 방법을 배우며 또한 어떻게 앱에서 패스를 다루는지 보여준다. 25장 디버깅과 인스트루먼트: 개발 시 가장 중요한 측면 중의 하나가 디버깅과 소프트웨어 프로파일링, 즉 성능 파악이다. 많은 책이 이 주제를 잘 다루지 않는다. 이 장에서는 엑스코드(Xcode)상의 디버깅에 대한 기본 지식과 인스트루먼트(Instrument)를 이용한 성능 분석 방법을 보여준다. 컴퓨터의 버그 출현에 관한 간단한 역사를 소개하고 난 후 공통적인 디버깅 요령과 방법을 보여준다. 또한 브레이크 포인트와 기타 디버거 명령어를 간단히 다룬 후 시간 프로파일러(Time Profiler)를 이용한 앱 성능 분석과 릭스(Leaks)를 이용한 메모리 분석을 간단히 살펴본다. 이 장을 학습하고 나면 시뮬레이터와 실제 장치상에서 앱의 문제를 해결하고 디버깅하는 데 필요한 기반 지식을 갖추게 된다. |