iOS 컴포넌트와 프레임워크 실전 프로그래밍 [iOS SDK 고급 기능의 이해와 활용]
- 원서명iOS Components and Frameworks (ISBN 9780321856715)
- 지은이카일 릭터, 조 킬리
- 옮긴이박영훈
- ISBN : 9788960775602
- 40,000원
- 2014년 05월 30일 펴냄 (절판)
- 페이퍼백 | 648쪽 | 188*250mm
- 시리즈 : 모바일 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
이 책은 iOS 개발 시 필요한 핵심 프레임워크에 대한 자세한 설명과 그 프레임워크를 이용해 실제 개발에 이용할 수 있는 예제들을 제공한다. 기존의 프레임워크는 물론 UIKit 다이내믹스나 텍스트키트, 패스북 등 iOS 6과 7에서 새롭게 도입된 프레임워크와 기능을 자세히 소개한다. 책에 있는 고급 예제를 따라 하다 보면, 실제 배포할 수 있는 수준의 앱을 개발하는 데 필요한 기술과 사용법을 자연스럽게 익힐 수 있다.
이 책에서 다루는 내용
■ 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)를 이용한 메모리 분석을 간단히 살펴본다. 이 장을 학습하고 나면 시뮬레이터와 실제 장치상에서 앱의 문제를 해결하고 디버깅하는 데 필요한 기반 지식을 갖추게 된다.
목차
목차
- 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 데이터를 서버로 전송
- 정리
- 연습문제
- 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장 디버깅과 인스트루먼트
- 디버깅 소개
- 최초의 컴퓨터 버그
- 엑스코드 디버깅 기초
- 브레이크 포인트
- 더 자세한 브레이크 포인트 설정
- 심볼릭 브레이크 포인트와 예외 브레이크 포인트
- 브레이크 포인트의 유효 범위
- 디버거로 작업하기
- 인스트루먼트
- 인스트루먼트의 인터페이스
- 인스트루먼트 탐구: 시간 프로파일러
- 인스트루먼트 탐구: 릭스
- 기타 인스트루먼트
- 정리
- 연습문제
- 디버깅 소개