이미 소장하고 있다면 판매해 보세요.
|
1장 아이폰과 아이패드
___1.1 짤막한 역사 이야기 ___1.2 하나를 위한 모든 것, 모든 것을 위한 하나: iOS 플랫폼 ___1.3 주요 하드웨어 사양 ______1.3.1 아이폰 ______1.3.2 아이패드 ______1.3.3 아이팟 터치 ______1.3.4 아이폰과 아이패드 입출력 사양 ______1.3.5 아이폰과 아이패드 네트워크 사양 ______1.3.6 iOS 브라우저 사양 ______1.3.7 모바일 웹 표준 ______1.3.8 기타 하드웨어 특징 ___1.4 아이폰과 아이패드의 특징 ___1.5 아이폰과 아이패드 터치의 상호작용 이해 ___1.6 요약 2장 오브젝티브C와 iOS SDK ___2.1 SDK를 위한 준비 ______2.1.1 SDK 설치 ______2.1.2 SDK 분석 ___2.2 오브젝티브C 소개 ______2.2.1 개요 ______2.2.2 메시지 ______2.2.3 클래스 정의 ______2.2.4 프로퍼티 ______2.2.5 기타 컴파일러 지시어 ______2.2.6 카테고리와 프로토콜 ______2.2.7 오브젝티브C 마무리 ___2.3 iOS 소개 ______2.3.1 iOS 분석 ______2.3.2 iOS 계층구조 ______2.3.3 윈도우와 뷰 ___2.4 iOS 메소드 ______2.4.1 객체 생성 ______2.4.2 메모리 관리 ______2.4.3 이벤트 처리 ______2.4.4 생명주기 관리 ___2.5 요약 3장 엑스코드 ___3.1 엑스코드 소개 ______3.1.1 엑스코드 분석 ______3.1.2 엑스코드에서 컴파일하고 실행하기 ___3.2 엑스코드의 첫 번째 아이폰 프로젝트: Hello, World! ______3.2.1 main.m 이해 ______3.2.2 애플리케이션 델리게이트 이해 ______3.2.3 Hello, World! 작성 ___3.3 엑스코드의 첫 번째 아이패드 프로젝트: Hello, World! ______3.3.1 Hello, World! 작성 ___3.4 엑스코드에서 신규 클래스 생성 ______3.4.1 신규 클래스 만드는 방법 ______3.4.2 헤더 파일 ______3.4.3 소스 파일 ______3.4.4 연결하기 ___3.5 기타 엑스코드 기능 ______3.5.1 엑스코드로 프레임워크 추가 ______3.5.2 엑스코드로 다른 템플릿 사용 ______3.5.3 엑스코드 팁과 요령 ___3.6 요약 4장 인터페이스 빌더 ___4.1 인터페이스 빌더 소개 ______4.1.1 인터페이스 빌더 분석 ______4.1.2 인터페이스 빌더에서의 시뮬레이션 ___4.2 인터페이스 빌더의 첫 번째 프로젝트: 이미지와 웹 ______4.2.1 신규 객체 만들기 ______4.2.2 그래픽적으로 객체 다루기 ______4.2.3 인스펙터 윈도우 사용 ______4.2.4 이미지로 작업하기 ___4.3 인터페이스 연결 생성 ______4.3.1 IBOutlet 선언 ______4.3.2 객체 연결 ______4.3.3 IBOutlet로 코딩하기 ___4.4 기타 인터페이스 빌드 기능 ______4.4.1 다른 연결 만들기 ______4.4.2 외부 객체 생성 ______4.4.3 인터페이스 빌더 객체 초기화 ______4.4.4 .xib 파일 액세스 ______4.4.5 신규 .xib 생성 ___4.5 요약 5장 기본 뷰 컨트롤러 ___5.1 뷰 컨트롤러 종류 ___5.2 표준 뷰 컨트롤러 ______5.2.1 뷰 컨트롤러 분석 ______5.2.2 뷰 컨트롤러 만들기 ______5.2.3 또 다른 뷰 컨트롤러 만들기 ______5.2.4 뷰 컨트롤러 인터페이스 만들기 ______5.2.5 뷰 컨트롤러 사용하기 ___5.3 테이블 뷰 컨트롤러 ______5.3.1 테이블 뷰 컨트롤러 분석 ______5.3.2 테이블 뷰 컨트롤러 만들기 ______5.3.3 테이블 인터페이스 만들기 ______5.3.4 테이블 뷰 컨트롤러 사용하기 ___5.4 요약 6장 이벤트와 액션 ___6.1 이벤트 소개 ______6.1.1 리스폰더 체인 ______6.1.2 터치와 이벤트 ___6.2 터치 예제: 이벤트 리포터 ______6.2.1 인터페이스 빌더에서 설정하기 ______6.2.2 터치를 위한 뷰 준비 ______6.2.3 이벤트 제어 ___6.3 기타 이벤트 기능 ______6.3.1 이벤트 규정 ______6.3.2 기타 이벤트 메소드와 프로퍼티 ___6.4 액션 소개 ______6.4.1 UIControl 객체 ______6.4.2 이벤트와 액션 제어 ______6.4.3 addTarget:action:forControlEvents: 사용 ___6.5 애플리케이션에 버튼 추가 ______6.5.1 버튼과 함께 addTarget:action:forControlEvents: 사용하기 ______6.5.2 IBAction 사용 ___6.6 기타 액션 기능 ______6.6.1 UITextField로 텍스트 입력받기 ______6.6.2 UISlider로 값 선택하기 ______6.6.3 TextField/Slider 매시업 ______6.6.4 액션 쉽게 만들기 ______6.6.5 사용중인 액션 ___6.7 노티피케이션 소개 ___6.8 요약 7장 고급 뷰 컨트롤러 ___7.1 탭바 뷰 컨트롤러 ______7.1.1 탭바 뷰 컨트롤러 분석 ______7.1.2 탭바 뷰 컨트롤러 만들기 ______7.1.3 탭바 인터페이스 구성 ______7.1.4 탭바 뷰 컨트롤러 사용법 ___7.2 내비게이션 컨트롤러 ______7.2.1 내비게이션 컨트롤러 분석 ______7.2.2 내비게이션 컨트롤러 만들기 ______7.2.3 내비게이션 컨트롤러 완료 ______7.2.4 내비게이션 컨트롤러 사용쿇기 ___7.3 플립사이드 컨트롤러 사용법 ___7.4 스플릿 뷰 컨트롤러 ______7.4.1 스플릿 뷰 컨트롤러 만들기 ______7.4.2 스플릿 뷰 컨트롤러 구성 ______7.4.3 스플릿 뷰 컨트롤러 사용 ______7.4.4 가로와 세로모드에 인터페이스 맞추기 ___7.5 팝오버와 모달 뷰 컨트롤러 ______7.5.1 팝오버 뷰 컨트롤러 만들기 ______7.5.2 모달 뷰 컨트롤러 만들기 ___7.6 요약 8장 데이터: 액션, 프리퍼런스, 파일 ___8.1 사용자 액션받기 ___8.2 사용자 프리퍼런스 다루기 ______8.2.1 자체 프리퍼런스 생성 ______8.2.2 시스템 설정 ___8.3 파일 열기 ______8.3.1 번들 액세스 ______8.3.2 다른 디렉터리 액세스 ______8.3.3 파일 처리 ______8.3.4 Filesaver: UITextView 예제 ___8.4 요약 9장 데이터: 고급 기술 ___9.1 SQLite ______9.1.1 SQLite 데이터베이스 설정 ______9.1.2 SQLite 액세스 ______9.1.3 SQLite 데이터베이스 액세스 ______9.1.4 데이터베이스로 내비게이션 메뉴 만들기 ______9.1.5 예제 확장 ___9.2 주소록 액세스 ______9.2.1 프레임워크 개요 ______9.2.2 주소록 프로퍼티 액세스 ______9.2.3 주소록 조회 ______9.2.4 주소록 UI 사용 ___9.3 코어 데이터 소개 ______9.3.1 코어 데이터의 배경정보 ______9.3.2 애플리케이션에 코어 데이터 설정 ______9.3.3 코어 데이터 객체 초기화 ______9.3.4 데이터베이스에 객체 추가 ______9.3.5 코어 데이터에서 패치, 업데이트, 삭제 ___9.4 요약 10장 위치 확인: 가속도계, 로케이션, 나침반 ___10.1 가속도계와 방향전환 ______10.1.1 orientation 프로퍼티 ______10.1.2 방향전환 노티피케이션 ___10.2 가속도계와 움직임 ______10.2.1 UIAccelerometer 액세스 ______10.2.2 UIAcceleration 파싱 ______10.2.3 중력 체크 ______10.2.4 움직임 체크 ______10.2.5 간단한 가속도계 움직임 인식 ___10.3 가속도계와 제스처 ___10.4 코어 로케이션에 대한 모든 것 ______10.4.1 위치관련 클래스 ______10.4.2 위치와 거리 이용 예제 ______10.4.3 고도 이용 예제 ______10.4.4 나침반 사용 ______10.4.5 코어 로케이션과 인터넷 ___10.5 요약 11장 미디어: 이미지와 카메라 ___11.1 이미지 소개 ______11.1.1 UIImage 로드 ______11.1.2 UIImageView 드로잉 ______11.1.3 UIKit에서 이미지 수정 ___11.2 코어 그랙픽스로 이미지 드로우하기 ___11.3 사진 액세스 ______11.3.1 이미지 피커 사용 ______11.3.2 사진 찍기 ______11.3.3 사진앨범에 저장하기 ___11.4 콜라주: 이미지 예제 ______11.4.1 콜라주 뷰 컨트롤러 ______11.4.2 콜라주 임시 이미지 뷰 ______11.4.3 콜라주 뷰 ______11.4.4 상세검토 ___11.5 요약 12장 미디어: 오디오와 녹음 ___12.1 아이팟 라이브러리에서 오디오 재생 ______12.1.1 아이팟 라이브러리에서 오디오 아이템 조회 ______12.1.2 MPMediaItem 정보 가져오기 ______12.1.3 MPMusicPlayerController을 사용한 미디어 아이템 재생 ______12.1.4 예제: 간단한 미디어 플레이어 애플리케이션 제작 ___12.2 오디오 녹음 ______12.2.1 오디오 레코더 초기화 ______12.2.2 오디오 레코더 제어 ______12.2.3 AVAudioRecorder 이벤트 처리하기 ___12.3 수동으로 사운드 재생 ______12.3.1 AVAudioPlayer 초기화 ______12.3.2 AVAudioPlayerDelegate ______12.3.3 AVAudioPlayer 제어 ___12.4 예제: 간단한 오디오 녹음/재생 애플리케이션 제작 ______12.4.1 view-based application 만들기 ______12.4.2 필요한 프레임워크 추가 ______12.4.3 IBAction 설정 ______12.4.4 인터페이스 만들기 ______12.4.5 오디오 레코더 설정과 IBAction 구현 ___12.5 녹화, 재생, 비디오 액세스 ___12.6 요약 13장 그래픽스: 쿼츠, 코어 애니메이션, Open GL ___13.1 쿼츠 2D 소개 ___13.2 쿼츠 컨텍스트 ______13.2.1 UIView에 드로잉 ______13.2.2 비트맵에 드로잉 ___13.3 패스 드로잉 ______13.3.1 패스 종료 ______13.3.2 재사용 패스 생성 ______13.3.3 사각형 드로잉 ___13.4 그래픽 스테이트 설정 ______13.4.1 색상 설정 ______13.4.2 변환 ______13.4.3 클리핑 패스 설정 ______13.4.4 기타 설정 ______13.4.5 스테이트 관리 ___13.5 쿼츠의 고급 드로잉 ______13.5.1 그래디언트 드로잉 ______13.5.2 이미지 드로잉 ______13.5.3 글자 드로잉 ______13.5.4 다루지 않은 내용 ___13.6 예제: 사진에 드로우하기 ______13.6.1 PhotoDraw 뷰 컨트롤러 ______13.6.2 Photodraw 뷰 ______13.6.3 예제 확장 ___13.7 코어 애니메이션 소개 ______13.7.1 코어 애니메이션의 기초 ______13.7.2 코어 애니메이션으로 시작하기 ______13.7.3 간단한 암시적 애니메이션 드로잉 ______13.7.4 간단한 명시적 애니메이션 드로우쿇기 ___13.8 OpenGL 소개 ___13.9 요약 14장 웹: 웹 뷰와 인터넷 프로토콜 ___14.1 인터넷 계층구조 ___14.2 로우레벨 네트워킹 ______14.2.1 CFHost 클래스 ___14.3 URL로 작업하기 ______14.3.1 NSURL 생성 ______14.3.2 NSURLRequest 구성 ______14.3.3 HTML 데이터 직접 처리하기 ___14.4 UIWebView 사용 ______14.4.1 웹 뷰 호출 ______14.4.2 웹 뷰 델리게이트 관리 ______14.4.3 썸네일: 웹 뷰 예제 ___14.5 XML 파싱 ______14.5.1 NSXMLParser 시작 ______14.5.2 델리게이트의 역할 ______14.5.3 간단한 RSS 리더 제작 ______14.5.4 돌아온 고도: 코어 로케이션 예제 ___14.6 웹에 포스팅하기 ______14.6.1 직접 포스팅하기 ______14.6.2 폼 전송 ___14.7 소셜 웹 액세스 ______14.7.1 웹 프로토콜 사용 ______14.7.2 TouchJSON 사용 ___14.8 요약 15장 게임 킷을 이용한 P2P 연결 ___15.1 게임 킷 개요 ___15.2 피어 피커를 이용한 P2P 애플리케이션 만들기 ______15.2.1 애플의 내장 피어 피커 사용 ______15.2.2 GKSessionDelegage 메소드 구현 ______15.2.3 피어간 데이터 송수신 ___15.3 예제: 멀티플레이어 탁구 게임 만들기 ______15.3.1 GKTennis 프로젝트의 시작 ______15.3.2 헤더 파일 생성 ______15.3.3 탁구 인터페이스 만들기 ______15.3.4 게임 초기화 ______15.3.5 피어 피커 설정과 네트워크 연결 ______15.3.6 send와 receive 메소드 구현 ______15.3.7 게임 루프 ______15.3.8 사용자 상호작용 ___15.4 요약 16장 푸시 노티피케이션 서비스 ___16.1 푸시 노티피케이션 정의 ___16.2 애플의 푸시 노티피케이션 시스템 개요 ___16.3 푸시 노티피케이션 사용을 위한 애플리케이션 준비 ______16.3.1 애플리케이션 인증서 설정 ______16.3.2 프로비저닝 프로파일 설정 ______16.3.3. 푸시 노티피케이션 처리 코드 ______16.3.4 오디오 파일 준비 ___16.4 PHP를 이용한 푸시 노티피케이션 프로바이더 제작 ______16.4.1 SSL 인증서 만들기 ______16.4.2 PHP 푸시 노티피케이션 프로바이더 구현 ___16.5 요약 17장 맵킷 프레임워크 ___17.1 맵킷 개요 ___17.2 애플리케이션에 지도 추가 ______17.2.1 인터페이스 빌더를 사용한 지도 추가 ______17.2.2 프로그램 방식으로 지도 추가 ______17.2.3 지도 제어 ___17.3 리버스 지오코딩 ___17.4 지도에 어노테이션 표시 ______17.4.1 기본 지도 어노테이션 추가 ______17.4.2 커스텀 지도 어노테이션 추가 ___17.5 요약 18장 스토어킷을 이용한 인앱퍼처스 ___18.1 샌드박스 테스트환경 설정 ______18.1.1 아이튠즈 테스트 사용자 생성 ______18.1.2 상품 추가 ___18.2 간단한 스토어 인터페이스 제작 ___18.3 요약 19장 iOS SDK 개선사항 ___19.1 커스텀 키보드 액세서리 ______19.1.1 UITextField 확장 ______19.1.2 커스텀 UITextField 구현 ______19.1.3 커스텀 키보드 ___19.2 향후 전망: iOS SDK 4.x ______19.2.1 멀티태스킹 ______19.2.2 사용자 경험 개선사항 ______19.2.3 멀티미디어 프레임워크 개선사항 ______19.2.4 게임 센터 ___19.3 요약 부록 A iOS 클래스 참조문서 부록 B 참고 사이트 부록 C SDK 프로그램 배포 부록 D 아이패드용 애플리케이션으로 업데이트 |
|
이 책의 전판 『아이폰 인 액션』의 개정판 작성 시점이 다가왔을 때 섀넌과 크리스토퍼는 진행 중이던 프로젝트에 매여 있었다. 이때 매닝은 다른 저자를 찾아 책 내용을 보강하기로 결정했고, 우연히 트위터에서 나를 찾아냈다.
나는 고등학교 1학년 때부터 프로그래밍을 시작했다. 이 당시에는 웹 애플리케이션과 단순한 자바 게임을 개발하는 데 많은 시간을 보냈다. 고등학교 졸업 후 뉴멕시코 대학교(University of New Mexico)에 진학해 컴퓨터 과학 학사 학위를 받았다. 애플이 처음 아이폰을 발표했을 때 디바이스에 감동을 받고 열광했다. 애플이 아이폰 3G가 출시되자 아이폰용 소프트웨어 개발에 흥미를 느끼고 있다는 사실을 깨닫고 본격적으로 프로그램을 배우기 시작했다. 그리고 아이폰을 갖기도 전에 지금은 잘 알려진 iCodeBlog.com이라는 개발 블로그를 시작했다. 대학에서 Javadoc을 참조하는 데 익숙했고 애플 API 문서에서 많은 정보를 배웠기 때문이다. 내가 이 책을 작업하기 시작했을 때 초판에서 많은 단원을 수정해야 한다는 사실을 깨달았다. 비록 웹 애플리케이션이 아이폰 앱 시작의 결정적인 부분을 차지하고는 있지만 더 이상 기본 앱으로 경쟁할 수는 없다. 그래서 초판에 있던 웹 단원을 삭제하고, iOS SDK 기능을 바탕으로 새로운 장을 추가했다. 책을 완료할 시점에 애플은 또 하나의 대형 발표를 했다. 바로 아이패드의 출시다. 따라서 책 집필에 별도로 몇 달의 시간을 더 들일지, 아니면 인기 코너에서 잠시 머물다 사라질(공룡시대처럼) 책을 발표할지 출판사와 함께 결정해야 했다. 우리는 결국 전자를 택했고, 그 결과는 나쁘지 않아 보인다. ---저자 서문 중에서 Think Different! 여섯 가지 색상으로 구성된 애플의 사과 그림 아래에 있던 이 슬로건이 결국 세상을 변화시켰다. 2007년 애플은 인터넷과 아이팟과 전화기를 하나의 디바이스로 결합시킨 아이폰을 시장에 내 놓았다. 사람들은 열광했고, 그 영향력은 대단했다. 일부 마니아의 전유물로만 여겼던 애플 제품은 어느덧 일반 대중의 삶 속에 세상 어느 제품보다도 빠르게 자리잡았다. 아이폰을 접한 대중은 모두 갇혀 있던 매트릭스에서 빠져나온 네오가 되어 새로운 세계를 경험하고 있다. 2010년 애플은 또 하나의 혁신을 발표한다. 바로 아이패드다. 아이패드로 인해 태블릿PC와 넷북 시장을 완전히 바꿔놨으며, 애플은 '맥, 아이패드, 아이폰'의 삼각편대를 완성하게 된다. 아이폰을 경험한 사용자는 아이패드를 거부할 수 없었으며 이제는 놀라움을 넘어 애플 제품에 열광하고 있다. 더 이상 사용자 경험 같은 개념을 어렵게 설명할 필요가 없다. 아이폰과 아이패드를 사용하고 느껴보면 된다. 또한 우아하고 매력적인 개발을 하고 싶다면 iOS SDK를 경험해보라고 말하고 싶다. 이때 오브젝티브C의 우아함은 덤으로 배우게 된다. iOS는 놀라운 속도로 진화한다. 지금 이 순간에도 애플은 새로운 버전을 개발 중이다. 다른 분야도 마찬가지겠지만 이렇게 변화의 속도가 빠를수록 SDK의 기본 개념과 원리의 이해가 더욱 절실하다. 그것도 신속하고 명확하게 말이다. 바로 이런 점이 이 책이 가진 장점이자 아이폰과 아이패드의 개발자에게 도움을 주는 방법이다. 이 책은 총 19장에 걸쳐 아이폰과 아이패드의 거의 모든 분야를 다룬다. 각 장마다 예제 위주로 간결한 설명을 통해 해당 주제를 살펴보며 앞으로 응용할 수 있게 구성했다. 참고로 이 책은 2008년에 출시된 『아이폰 인 액션』의 개정보증판이다. 이는 이미 한 차례 검증을 마쳤으며 더욱 유익하고 알차게 구성돼 있다는 사실을 의미한다. 이 책의 iOS SDK 버전은 3.2에서 4.2에 걸쳐 있다. 하지만 현재 최신 버전인 4.3에서도 수행 가능하다. 알다시피 하위 버전에서 개발하더라도 상위 버전으로 간단히 변환할 수 있다. 그리고 유념해야 하는 사실은 상위 버전에서 개발하더라도 하위 버전을 사용하는 디바이스에 대한 배려도 필요하다. 실제 앱 개발 시 아이팟 등의 지원을 고려해 iOS 버전을 3.1.x 대 버전에 맞춰서 개발하기도 한다. 다시 말하지만 중요한 사실은 버전의 차이가 아니라 바로 기본 개념과 원리다! SDK의 최신버전을 알고 싶은가? 그럼 애플의 개발자 사이트에 있는 클래스 참조문서를 살펴보라. SDK 개발을 알고 싶은가? 그럼 이 책을 열어보라. 물론 이 책이 모든 내용을 알려주지는 못하겠지만 훌륭한 등대가 되어 더 많은 내용을 알 수 있게 도와줄 것이다. 지금부터 필요한 것은 열정과 즐거움이다. 나머지는 이 책이 벗이 되어 함께 동행해 줄 것이다. 즐길 준비가 됐는가? 그럼 『아이폰&아이패드 인 액션』과 함께 아이폰과 아이패드의 세계에 빠져보자! ---옮긴이의 말 중에서 |
|
★ 이 책에서 다루는 내용 ★
■ iOS SDK 전반 ■ 스토어킷을 이용한 앱내 구매 ■ 오디오와 녹음 ■ 코어 데이터, 코어 로케이션, 게임킷, 맵킷 아이폰과 아이패드 개발을 처음 접해도 상관없다. C, 코코아, 오브젝티브C에 익숙하면 좋겠지만 잘 몰라도 읽을 수 있도록 쉽게 설명한 책이다. ★ 이 책의 대상 독자 ★ 이 책은 아이폰과 아이패드 프로그램 작성에 관심 있는 모든 사람이 접할 수 있게 최선을 다했다. 특히, 본격적으로 아이폰과 아이패드의 개발에 뛰어들 독자에게 유용하다. 이 책을 통해 모든 애플의 i시리즈 모바일 기기(아이폰, 아이패드, 아이팟)에 쓰일 애플리케이션 개발이 가능하기 때문이다. iOS SDK 프로그래밍을 배울 때 일반적인 프로그램 경험이 있으면 도움이 된다. C언어로 개발한 경험이 있으면 가장 좋겠지만 필수사항은 아니다. 경험이 없다면 2장의 오브젝티브C의 소개 부분을 반드시 읽어보고 명확한 개념파악을 위해 좀 더 연구해보기 바란다. 오브젝티브C, 코코아, 일반적인 애플 프로그래밍에 능숙하지 않아도 된다. 이 책에서 애플의 고유한 스타일에 익숙해질 수 있게 필요한 내용은 모두 제공하기 때문이다. 객체지향 개념을 이해한다면 큰 도움이 되겠지만 이것도 필수사항은 아니다(다시 말하지만, 2장에 소개돼 있다). ★ 이 책의 구성 ★ 1장은 아이폰과 아이패드를 자세히 설명한 후 아이폰 이전의 모바일폰과의 차이점도 알아본다. 프로그래머에게도 중요한 아이폰과 아이패드의 고유한 기능의 주요 개념을 살펴본다. 2장은 iOS SDK에서 사용하는 프로그램 언어인 오브젝트C를 시작한다. iOS는 프레임워크의 거대한 집합으로 수많은 복잡한 작업을 쉽게 처리할 수 있게 해준다. 3장은 SDK의 첫 번째 주요 도구인 엑스코드를 살펴본다. 엑스코드는 통합개발환경으로 컴파일 외에도 여러 가지 기능이 있다. 입력한 글자의 오류를 수정하고, 빠른 검색기능도 있으며 모든 아이폰 프로그래밍 문서의 통합 액세스도 가능하다. 4장은 인터페이스 빌더를 살펴본다. 인터페이스 빌더는 그래픽 디자인 환경으로 코드 한 줄 없이도 인터페이스 객체를 배치하고 생성할 수 있다. 프로그래머의 개발 시간을 혁신적으로 단축해 주며, 이 책의 전반에 걸쳐 사용된다. 5장은 간단한 뷰 컨트롤러를 다룬다. 기본 뷰 컨트롤러는 MVC 개념의 중요한 구성요소로 뷰에서 제어기능을 분리시킨다. 그리고 테이블 뷰 컨트롤러는 표준 iOS 모양과 느낌을 일치시키면서 정보를 조직화하고 쉽게 구성할 수 있는 방법을 제공한다. 6장은 사용자 상호작용을 다룬다. 사용자가 손가락으로 화면을 터치할 때 발생하는 이벤트와 사용자가 버튼이나 슬라이더 같은 컨트롤 객체와 상호작용할 때 발생하는 액션을 살펴본다. 7장은 두 가지 고급 뷰 컨트롤러를 살펴본다. 탭바 뷰 컨트롤러는 여러 컨텐츠 페이지를 모달 형태로 선택할 수 있게 하며, 내비게이션뷰 컨트롤러는 테이블에 계층구조를 추가한다. 8장은 데이터 관련 내용으로 SDK 툴킷을 시작한다. 사용자 입력(액션이나 프리퍼런스), 데이터 저장(파일), 저장과 입력을 결합하는 도구(디바이스의 주소록)를 살펴본다. 9장은 고급 데이터 정책에 관한 내용을 다룬다. 9장에서는 코어 데이터를 사용하는 방법과 SQLite 데이터베이스에 복잡한 데이터 보관 방법을 살펴본다. 10장은 아이폰과 아이패드의 가장 고유한 두 가지 특징인 가속도계와 GPS에 초점을 맞춘다. 공간에서 움직임을 추적하는 방법을 살펴본다. 11장은 또 하나의 강점인 미디어를 다룬다. 사진, 영화, 사운드로 작업하는 기본적인 방법을 살펴본다. 12장은 오디오 작업을 다룬다. 디바이스의 마이크와 스피커를 이용해 오디오를 기록하고 재생하는 방법을 살펴본다. 13장은 아이폰과 아이패드의 벡터 그래픽 언어인 쿼츠 2D를 중심으로 그래픽을 폭넓게 알아본다. 또한 코어 애니메이션을 간략히 살펴보고 iOS용 OpenGL도 살펴본다. 14장은 아이폰과 아이패드를 사용해 인터넷으로 상호작용하는 방법을 다룬다. 인터넷 프로토콜의 전체 계층구조를 알아보고, 로우레벨 호스트 연결에서부터 웹뷰를 거쳐 XML과 JSON 같은 소셜 언어도 살펴본다. 15장은 아이폰과 아이패드에서 멀티플레이어 탁구 게임에 대한 전체 개발 프로세스를 다룬다. 게임 킷 프레임워크를 이용한 P2P 연결에 대한 모든 내용을 살펴본다. 16장은 애플리케이션에서 푸시 노티피케이션을 처리하는 방법을 다룬다. PHP를 이용한 자체 푸시 노티피케이션 서버를 제작하는 간단한 예제를 제공한다. 17장은 맵킷 프레임워크를 심층적으로 다룬다. 구글 맵을 애플리케이션에 완벽히 통합하는 데 필요한 모든 사항을 살펴본다. 18장은 애플리케이션에 가상 스토어를 만드는 주요 방법 중 하나를 알아본다. 스토어킷 프레임워크를 이용해 상품 제작부터 구매 처리까지 처리 단계의 모든 내용을 살펴본다. 19장은 iOS SDK에 추가된 몇 가지 신규 라이브러리를 알아본다. 또한 iOS SDK 4.x의 로드맵을 알아보고 앞으로 전망을 살펴본다. 부록에는 본문 내용 이외의 부가적인 정보가 들어 있다. 부록 A에는 SDK 객체 목록과 설명, 부록 B에는 iOS SDK를 이용해 프로그램을 개발할 때 도움될 만한 다양한 웹 사이트 정보가 있다. 부록 C에는 SDK 프로그램을 실제 디바이스에 배포하는 방법이 있으며, 부록 D에서는 아이폰 애플리케이션을 아이패드 애플리케이션으로 변환하는 데 사용할 수 있는 다양한 기술을 다룬다. |