Top

The iOS 5 Developer's Cookbook (Third Edition) 한국어판

  • 원서명The iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS Programmers (3rd Edition) (ISBN 9780321832078)
  • 지은이에리카 세든
  • 옮긴이동준상, 송용근
  • ISBN : 9788960772977
  • 45,000원
  • 2012년 04월 30일 펴냄 (절판)
  • 페이퍼백 | 1,064쪽 | 188*250mm
  • 시리즈 : 모바일 프로그래밍

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

iOS 5는 알림센터 기능, 아이클라우드(iCloud)와 PC 연결, 발전한 카메라와 사진, 트위터 대응, 에어플레이(AirPlay) 미러링까지 더욱 강력해졌다. 이 책은 최신 iOS 5 SDK, 엑스코드 4.2, 오브젝티브C 2.0를 기반으로 iOS 5의 사용자 인터페이스 디자인에서부터 뷰 컨트롤러, 제스처와 터치, 네트워크와 보안에 이르기까지 iOS 개발에 대한 모든 주요 주제를 샅샅이 다룸으로써, 아이폰과 아이패드 애플리케이션을 개발하는 모든 사람이 참고해야 할 전방위의 레퍼런스를 실전 예제로 풀어낸 iOS 프로그래밍 완벽 가이드다.


[ 소개 ]

- 최신 iOS 5 SDK, 엑스코드 4.2, 오브젝티브C 2.0를 기반으로 설명하는 아이폰 프로그래밍 완벽 가이드
- 아이폰/아이패드 프로그래머가 꼭 알아야 할 핵심 개념과 주요 예제로 가득한 iOS 개발 바이블

베스트셀러 저자이자 iOS 개발의 구루인 에리카 세든이 아이폰, 아이패드, 아이팟 터치용 iOS 앱 개발에 필요한 모든 정보를 이 책 속에 담았다. 세든은 새롭게 추가된 강력한 기능의 iOS 5와 최신 버전의 오브젝티브C, 엑스코드 4 개발 도구에 초점을 맞춰 이 책을 재구성했다.

『The iOS 5 Developer's Cookbook 한국어판』은 개발자가 가장 자주 마주치게 되는 iOS 5에 대한 개발 문제를 미리 만들어진 코드로 제공하므로, 시행착오 없이 초보 개발자라도 신뢰할 수 있는 앱을 만들 수 있게 해준다. 세든은 견고한 코드를 통해 각 주제에 대한 새로운 개념과 기술을 소개하며, 개발자는 이 코드를 쉽게 재사용하거나 확장할 수 있다. 세든은 iOS 5 개발을 위한 각 주제에 대해 항상 ‘어떤 방식으로’, ‘왜 그래야만 하는지’를 설명하므로, 단순히 예제 코드 나열만으로 구성된 기술서와는 다르다.

세든의 검증된 예제는 사용자 인터페이스 디자인에서부터 뷰 컨트롤러, 제스처와 터치, 네트워크와 보안에 이르기까지 iOS 개발에 대한 모든 주요 주제를 다룬다. 각 장은 관련성 높은 주제만을 엄선해 모아뒀으므로, 어떤 클래스나 어떤 프레임워크를 선택해야 할지 고민할 필요 없이 각자가 필요한 개발 전략에만 집중할 수 있다.


[ 이 책에서 다루는 내용 ]

■ iOS 5 SDK 주요 개념, 오브젝티브C 핵심 정리, iOS 개발 주기
■ 인터페이스 빌더와 오브젝티브C를 이용한 인터페이스 디자인과 커스터마이징
■ 최신 페이지 뷰 컨트롤러와 커스텀 컨테이너를 활용한 뷰 컨트롤러, 뷰, 애니메이션 기법
■ 커스텀 제스처 인식기를 포함해 터치와 제스처 활용 기법
■ 컨트롤 요소를 기초적인 부분부터 직접 만들고 활용하는 방법
■ 코어 이미지와 코어 텍스트를 이용한 작업
■ 특화된 테이블 뷰 편집 기능 구현과 테이블 셀의 순서 재배치, 커스텀 셀 제작 방법
■ 데이터베이스 저장 객체 생성과 추가, 삭제, 조회, 데이터 표시 기법
■ 대화상자, 프로그레스 바, 로컬과 푸시 노티피케이션, 팝오버, 핑을 활용한 사용자 알림
■ 피드백 요청과 사용 방법
■ 네트워크와 서비스의 연결, 본인 확인 처리와 다운로드 관리 기법
■ 기기, 베타 테스터, 앱스토어에 앱을 등록하고 배포하는 방법


[ 이 책의 구성 ]

이 책은 인터페이스 요소의 배치, 사용자와의 상호작용, 로컬 데이터 소스에 대한 접근, 인터넷 연결 등 새로운 iOS 개발자가 당면한 가장 일반적인 문제를 해결하기 위한 예제를 제공한다. 각 장은 이와 연관된 개발 예제를 묶어 당면한 문제의 해결을 위한 최적의 클래스나 프레임워크에 대한 고민 없이 바로 문제 해결 단계로 나아 갈 수 있게 구성했다.

『The iOS 5 Developer’s Cookbook 한국어판』은 ‘언제든지 가져다 쓸 수 있는 실전 코드’를 제공하므로 여러분의 애플리케이션에서 자유롭게 예제 코드를 재사용할 수 있으며, 이후 각자의 필요에 따라 코드를 수정해 사용할 수 있다.

이 책의 각 장에서 다루는 내용은 다음과 같다.

1장 ‘iOS SDK 소개’ 1장에서는 iOS SDK를 소개하고 배포 플랫폼으로서의 iOS에 대한 (제약 사항을 포함한) 모든 내용을 살펴본다. 여기서 표준 iOS 애플리케이션의 개요를 설명하고, iOS 개발자 포털을 통한 개발 준비도 소개한다.

2장 ‘오브젝티브C 사관학교’ iOS는 물론이고 오브젝티브C도 처음 접한다면 2장에서 기본기를 익힐 수 있다. 오브젝티브C는 iOS는 물론 맥 OS X의 표준 프로그래밍 언어로서 애플의 코코아, 코코아 터치 프레임워크를 이용한 애플리케이션 개발을 위한 강력한 객체지향 문법을 사용한다. 2장에서는 오브젝티브C 언어와 객체지향적인 특징의 개요, 메모리 관리 기술, 공통 클래스의 추가 방식 등 오브젝티브 C 프로그래밍을 시작하는 데 필요한 내용을 소개한다.

3장 ‘첫 번째 iOS 프로젝트’ 3장에서는 처음으로 Hello World 스타일의 애플리케이션을 만들기 위한 기본기를 다룬다. 이때 프로젝트 생성 과정에서 엑스코드와 인터페이스 빌더를 어떻게 사용하는지 알아본다. 기본적인 디버깅 도구와 사용 방식, 그리고 간편한 컴파일러 지시자 활용을 위한 팁도 소개한다. 프로비저닝 프로파일 생성 방법과 기기와 베타 테스터, 앱스토어에 애플리케이션을 배포할 때 이 프로파일을 사용하는 방법 등도 살펴본다.

4장 ‘인터페이스 디자인’ 4장은 iOS의 시각 요소를 담은 클래스 라이브러리를 소개한다. 여기서 이들 클래스의 개요와 각 요소의 지오메트리도 살펴본다. 이들 시각적인 클래스를 이용한 작업 방식과 기기 회전 같은 임무가 주어졌을 때 처리 방식도 다룬다. 인터페이스 요소의 배치와 커스터마이징 방법, 인터페이스 빌더와 오브젝티브C를 모두 활용한 하이브리드 기법 등도 함께 알아본다.

5장 ‘뷰 컨트롤러’ 화면 구현에 있어 iOS의 철학은 ‘작은 화면 크기, 커다란 가상의 세계’라고 할 수 있다. 5장에서는 사용자와 상호작용하기 위한 가상의 공간을 크게 만들거나 순서를 바꿀 수 있는 다양한 뷰 컨트롤러 클래스를 다룬다. iOS 애플리케이션 화면 간의 자연스러운 이동이나 스플릿 뷰로 구현된 아이패드 화면에서의 일관된 화면 이동이 가능하게 복잡한 업무를 처리하는 강력한 뷰 컨트롤러 객체를 살펴본다.

6장 ‘뷰와 애니메이션’ 6장에서는 화면에서 살아 움직이는 iOS의 뷰 요소와 객체를 소개한다. 뷰 요소의 배치와 생성, 순서 설정을 통해 애플리케이션의 기본 골격을 만든다. 뷰의 계층 구조와 지오메트리, 애니메이션과 iOS 애플리케이션에 생동감을 불어넣어줄 기능을 살펴본다.

7장 ‘이미지 작업’ 7장에서는 이미지, 구체적으로는 UIImage 클래스를 소개하고 iOS 이미지로 작업하기 위한 모든 기본 지식을 제공한다. 애플리케이션에 이미지를 불러오고, 저장하고, 수정하는 방법도 함께 알아본다. 뷰에 이미지를 추가하는 방법과 뷰를 이미지로 전환하는 방법도 소개한다. 또한 특수 효과 구현을 위한 이미지 처리 기법과 바이트 단위로 이미지 정보에 접근하는 방법, 기기 내장 카메라에서 사진을 가져오는 방법을 살펴본다.

8장 ‘제스처와 터치 인터페이스’ iOS에서 터치는 애플리케이션과 사용자가 소통할 수 있는 가장 중요한 방법이다. 터치는 버튼 누르기나 키보드 입력 같은 동작에만 한정되지 않는다. 8장에서는 직접 입력 인터페이스와 멀티터치 등을 소개한다. 사용자가 화면을 드래그할 수 있는 뷰 생성 방법을 알아보고, 제스처의 구분과 해석 방법, 커스텀 제스처 인식기를 생성하는 방법을 살펴본다.

9장 ‘컨트롤 생성과 사용’ 컨트롤 클래스는 버튼, 슬라이더, 스위치 같은 iOS의 다양한 상호작용 요소의 근본이 된다. 9장에서는 각 컨트롤 요소를 소개하고 그 사용법을 함께 알아본다. 표준 컨트롤 상호작용 방식과 각 애플리케이션의 필요에 따라 컨트롤 객체를 수정하는 방법도 소개한다. 커스텀 스위치나 별표 점수 컨트롤, 가상 터치 휠 같은 독특한 컨트롤 요소를 가장 기본적인 부분부터 만드는 방법도 살펴본다.

10장 ‘텍스트 작업’ 10장에서는 기존의 텍스트 필드와 텍스트 뷰에서부터 iOS에 새로 추가된 강력한 코어 텍스트의 기능과 철자 확인 기능까지 애플리케이션을 만들면서 알아야 할 iOS 텍스트에 대한 모든 것을 소개한다.

11장 ‘테이블 뷰 생성과 관리’ 테이블은 스크롤이 가능한 상호작용 요소로서 크기가 작은 기기에서 특히 중요한 역할을 한다. iOS의 설정 앱, 유튜브 앱, 그리고 주식 앱과 날씨 앱 등 상당히 많은 수의 아이폰, 아이팟 터치 앱이 테이블 뷰를 중심으로 만들어졌다. 11장에서는 아이폰 테이블의 작동 방식과 개발에서 사용할 수 있는 테이블의 종류, 애플리케이션에서 테이블 기능을 사용하는 방법 등을 알아본다.

12장 ‘코어 데이터 맛보기’ 코어 데이터는 애플리케이션을 통해 조회하고 갱신할 수 있는 체계적인 데이터 저장 기법을 제공한다. 코어 데이터는 SQL 쿼리 방식의 관계형 데이터 관리 기법을 아이폰 개발용 오브젝티브C에 이식한 코코아 터치 기반의 객체 인터페이스를 제공한다. 12장은 코어 데이터를 다루며, 이 기술을 충분히 이해할 수 있는 풍부한 예제를 제공하므로 향후 코어 데이터에 대한 좀 더 깊이 있는 학습이 가능하다. 데이터 저장 기법과 데이터의 추가와 삭제, 코드에서 해당 데이터를 조회하는 방법과 이 데이터를 다시 UIKit 테이블 뷰에 입력하는 방법 등을 알아본다.

13장 ‘사용자 알림’ iOS는 로컬 노티피케이션을 위한 팝업 대화상자와 프로그레스 바, 팝오버와 오디오 핑 같이 사용자에게 특정 상황이나 정보를 알릴 수 있는 많은 방법을 제공한다. 13장에서는 애플리케이션에서 알림을 생성하는 방법을 소개하고, 이를 기반으로 다양한 사용자 알림 기법을 알아본다. 이들 클래스로 작업하는 표준적인 방법을 소개하고, 명시적인 콜백 없이 프로그램이 처리할 수 있는 기법을 살펴본다.

14장 ‘하드웨어 장치 활용’ 각 iOS 기기는 유일하면서도 공유할 수 있고, 순간적이면서도 지속적인 속성을 제공한다. 이러한 속성에는 기기의 현재 회전 방향, 모델명, 배터리 상태, 기기에 탑재된 하드웨어에 대한 접근 등이 포함된다. 14장은 기기의 빌드 환경설정에서부터 사용 가능한 기기 내장 센서에 대해 알아본다. 사용 중인 기기에 관한 다양한 정보를 가져오는 방법을 소개하고, 런타임에서 하드웨어 요구 사항을 테스트하는 방법, 이런 요구 사항을 애플리케이션의 Info.plist 파일에 설정하는 방법을 알아본다. 센서의 피드백 정보와 코어 모션을 이용하는 방법과 센서가 변화를 감지했을 때 콜백을 생성하기 위한 알림 기법도 소개한다. 14장에서는 아이폰 기기에서 사용 가능한 하드웨어, 파일 시스템, 센서를 다루며, 이런 기능을 프로그래밍 기법으로 활용하는 방법을 소개한다.

15장 ‘네트워킹’ iOS는 기본적으로 인터넷 연결 기기이므로 웹 기반 서비스를 이용하는 데 특히 적합하다. 애플은 플랫폼을 만들면서 모든 형태의 네트워크 컴퓨팅 서비스를 제공하고, 이 기술을 지원하기 위한 굳건한 토대를 형성하는 데 모든 노력을 아끼지 않았다. 15장은 네트워크 컴퓨팅을 위한 일반적인 기술을 소개하고, 일상적인 임무를 단순화할 수 있는 예제를 제공한다. 여기서 네트워크 도달 성능, 동기적, 비동기적 다운로드 기법, 작업 큐의 사용 방법, 본인 인증 요청 시 아이폰의 암호 키체인 처리 방법, XML 파싱, JSON 객체의 활용, 새로운 트위터 API 등을 소개한다.

저자/역자 소개

[ 저자 서문 ]

이 책이 바로 여러분이 기다리던 iOS 개발 바이블이다!

지난 해 iOS 4가 처음으로 등장했을 때 담당 편집자와 나는 어려운 결정을 내렸다. iOS 4에 대한 책을 출간하되 애플이 엑스코드 4를 출시하기 전까지는 이에 대한 내용은 포함시키지 않는다는 결정이었다. 우린 결국 엑스코드 4를 반영하지 않았는데, 드디어 여러분이 보고 싶어 하던 그 내용이 바로 이 책에 실리게 된 것이다. 하지만 우리가 예상치 못한 일이 생겼는데, 애플의 NDA(비공개협약)가 2011년 봄까지 지속될 것이고, iOS 5 역시 이 무렵 공개된다는 것이었다.

NDA와 iOS 출시 일정 때문에 고민하던 중 우린 결국 iOS 4.3 버전으로 책을 개편하고 전자책으로만 출간하기로 결정했다. iOS 4.3을 전자책으로라도 출간한 이유는 이에 관한 정보를 알고 싶어 하는 개발자가 여전히 존재했기 때문이다. 개편이 끝났을 때 WWDC에서 iOS 5가 공개됐고, 나는 서둘러서 iOS 5를 반영한 개정증보판 작업에 착수했다. 지금 보고 있는 이 책이 바로 그 iOS 5 개정판이다.

이 책 『The iOS 5 Developer’s Cookbook』은 ‘iOS 프로그래머가 꼭 알아야 할 핵심 개념과 실용 예제’라는 원서의 부제목을 통해 이 책의 목적을 소개한다. 이 책이 iOS 5 프로그램 개발을 시작하는 사람이 알아야 할 내용을 담고 있다는 의미다. iOS 개발자로서 첫발을 내딛는 사람에게 이 책은 이상적인 선택이 될 수 있는데, 이 책에선 도구(엑스코드와 인터페이스 빌더)와 언어(오브젝티브C), 그리고 iOS 앱을 만들기 위한 모든 기본 요소(테이블 뷰, 커스텀 컨트롤, 스플릿 뷰 등)를 다루기 때문이다.

하지만 우린 거기에 만족할 수 없었다. 2011년 10월 중순은 2011년도 책 출간의 마지막 마감일이었다. 책은 이미 인쇄 중이었지만, 나는 『The iOS 5 Developer’s Cookbook』에 대한 좀 더 향상된 내용을 계속 쓰면서 덧붙이는 중이었고, 결국 일부 새로운 장은 인쇄되지 못했다.

이에 이 모든 내용을 엮어 전자책 버전(아이북스(iBooks)의 이펍(ePub), 킨들(Kindle), 그리고 데스크톱용 PDF 버전)으로만 『The iOS 5 Developer’s Cookbook: Expanded Electronic Edition』을 출간하기로 했다. 전자책 증보판에는 지금 이 책에 실린 수백 페이지와 동일한 내용이 실렸다. 인쇄판의 전자책 버전을 이미 구입한 독자를 위해서는 추가된 부분만을 따로 모아 『The iOS 5 Developer’s Cookbook: The Additional Recipes』로 출간했다. 전자책 증보판과 함께 추가 예제 역시 이펍, 킨들, 그리고 PDF 형태로 볼 수 있다.

예제 코드는 이전과 마찬가지로 깃허브(github)에 올려뒀다. 이 책의 예제 코드는 https://github.com/erica/iOS-5-Cookbook에 있고, WWDC 2011 이후의 내용과 애플이 iOS 5 베타 버전을 개발자에게 배포하던 시기의 자료가 모두 수록돼 있다.

앞으로 출간될 책에 대한 제안, 기존 책의 오류 수정, 오타 정정 요청 등 그 어떤 내용이든 erica@ericasadun.com로 알려주면 정말 감사하겠다. 여러분의 모든 의견은 좀 더 나은 책을 만드는 데 큰 힘이 된다.

에리카 세든


[ 저자 소개 ]

에리카 세든 (Erica Sadun)
『The iPhone Developer’s Cookbook』 2판뿐만 아니라, 프로그래밍, 디지털 비디오와 사진, 웹 디자인을 주제로 한 수십 권에 이르는 책을 집필하고 기여했다. 오라일리의 맥 데브센터(Mac DevCenter), 라이프해커(Lifehacker), 아르스 테크니카(Ars Technica)에서 블로그에 글을 기고해 왔으며, 지금은 TUAW.com 블로그에 글을 기고한다. 에리카는 십여 권의 iOS 애플리케이션 저자이자, 조지아 공대의 그래픽, 시각화, 사용성 센터(Graphics, Visualization and Usability Center)에서 컴퓨터 사이언스로 박사 학위를 받았다. 전형적인 긱(geek)이자 프로그래머이며 저술가로서 좋아하지 않는 기기가 없을 정도다. 글을 쓰지 않을 때는 긱인 남편과 긱 수업 중인 세 아이들과 함께 집안의 기기와 전선을 재배치하고, 세상을 지배할 기술에 대해 고민한다.


[ 옮긴이의 말 ]

지난 2년간 모바일 플랫폼 산업의 선두에 서기 위해 구글과 한 치의 양보도 없는 치열한 다툼을 벌였던 애플에게 있어 iOS 5는 스티브 잡스의 유작 이상의 의미가 있다. 2007년 데뷔 이래 폭풍 성장을 거듭해 온 청년기의 플랫폼이 이제는 자신의 부족함을 발견하고, 이를 채워나가며 다른 플랫폼의 모습, 장단점, 철학을 이해하고 스스로의 성장의 밑거름으로 받아들이게 된 것이다.

모바일 기술의 안정기, 시장의 성숙기에 대한 애플의 대답이라고 할 수 있는 iOS 5는 애플리케이션 개발에서 로직과 디자인을 분업해 관리할 수 있는 스토리보드 같은 체계를 제공하고, 개발자 커뮤니티의 목소리를 반영해 그간 다른 플랫폼에는 존재하지만 iOS에는 없었던 주요 기술과 UI 요소를 iOS의 문맥에 맞게 구현할 수 있는 방법을 추가했다.

iOS 개발서 분야의 대표적인 작가이자 개발자로 명성 높은 에리카 세든이 전작의 성공에 힘입어 새롭게 펴낸 이 책은 iOS가 기품 있는 성숙 단계에 이른 것처럼 다양한 예제 코드를 볼 수 있는 개발 예제 서적에서 iOS에 대한 통합적인 시각을 갖춘 개발자 라이브러리로 진화했다.

넥스트스텝(1987년) 이전부터 애플과 스티브 잡스의 팬이었던 에리카의 원숙미가 더해진 개발 지식과 경험, 그리고 그와 뜻을 같이 하는 개발자 커뮤니티의 혜안이 이번 3판에 그대로 녹아들었다. 전작의 장점을 살려 절차지향과 객체지향을 넘나들며, 가끔은 두 방법 모두를 사용해 좀 더 효율적이고 효과적이며, iOS에 능숙하지 않은 개발자도 이해하기 쉬운 예제로 구성됐다.

한국에 소개된 에리카의 iOS 관련 전작을 모두 읽어본 입장에서 이번 3판을 번역하며 에리카의 열정에 새삼 감탄한 점은 수백 개에 이르는 기존 코드 예제 대부분이 2판 이후에 소개된 iOS 5, 엑스코드 4.2, 오브젝티브C 2.0, ARC의 내용을 반영해서 수정 보완되고 이에 대한 주석이 빈틈없이 추가됐다는 사실이다. 또한 기존 예제 코드도 새로운 앱스토어의 트렌드와 문맥을 반영해 개선되거나 아예 새로운 코드로 대체되기도 했다. 이런 점에서 기존 판과 비슷한 제목을 지닌 에리카의 iOS 개발서지만 내용은 전작과 완전히 달라졌다고 해도 과언이 아니다.

- 동준상


[ 옮긴이 소개 ]

동준상
넥스트플랫폼의 애플리케이션 UI 개발자다. 모바일 UX 디자인으로 출발해 지금은 iOS와 안드로이드, 웹 애플리케이션 분야에서 개발과 UX 표준화, 현지화 업무를 맡고 있다. 삼성멀티캠퍼스(2010년)와 에코노베이션(2011년), T아카데미(2011년)에서 모바일 프로젝트를 위한 UX 디자인과 제이쿼리 UI를 활용한 프로토타입 개발 강의를 하고, 관련 교재를 집필했다. 번역서로는 에이콘출판사에서 펴낸 『HTML5 Multimedia Development Cookbook 한국어판』 (2012년), 『jQuery UI 1.8 한국어판』 (2012년)이 있다.

송용근
포항공과대학교 컴퓨터공학과를 다니다가, (주)사이람에서 SNA 연구와 소프트웨어 개발을 했다. 주로 복잡한 시스템을 관계의 입장으로 풀어보길 좋아한다. 사람 간의 소통과 관계 또한 주요 탐구대상이다. 전 TEDxSeoul 오거나이저, 현재 일본 히로시마 대학 의학대학원 석사과정 연구생, 마가진(magazyn.co.kr) 엔지니어를 겸직하고 있다. 에이콘출판사의 『프리젠테이션 젠 DVD Edition』(2011), 『플래시 멀티플레이 게임 개발』(2011), 『Flash Mobile 한국어판』(2011), 『Visualize This 비주얼라이즈 디스』 (2012년)를 번역 출간했다.

목차

목차
  • 1장 iOS SDK 소개
    • iOS 개발자 프로그램
      • 온라인 개발자 프로그램
      • 표준 개발자 프로그램
      • 기업용 개발자 프로그램
      • 대학 개발자 프로그램
      • 개발자 등록
    • 앱 개발 시작
      • SDK 다운로드
      • 개발 기기
      • 시뮬레이터의 제약 사항
      • 개발을 위한 기기 연결
    • 모델별 차이
      • 화면 크기
      • 카메라
      • 오디오
      • 통화 기능
      • 코어 로케이션과 코어 모션
      • 진동 지원과 근접 센서
      • 프로세서의 속도
      • OpenGL ES
    • 플랫폼의 제약 사항
      • 저장 공간의 한계
      • 데이터 접근의 한계
      • 메모리의 한계
      • 상호작용의 한계
      • 배터리의 한계
      • 애플리케이션의 한계
      • 사용자 행동에 따른 제약
    • SDK의 제약 사항
    • 프로비저닝 포털
      • 팀 구성
      • 인증서 요청
      • 기기 등록
      • 애플리케이션 식별자 등록
      • 프로비저닝
    • 아이폰 프로젝트 구성
      • 아이폰 애플리케이션의 기본 골격
      • main.m
      • 애플리케이션 델리게이트
      • 뷰 컨트롤러
      • 이 책의 예제 코드 이용 안내
    • iOS 애플리케이션의 구성 요소
      • 애플리케이션 폴더의 계층 구조
      • 실행 파일
      • Info.plist 파일
      • 아이콘과 기본 이미지
      • 인터페이스 빌더 파일
      • 애플리케이션 번들에 없는 파일
      • IPA 아카이브
      • 샌드박스
    • 프로그램 패러다임
      • 객체지향 프로그래밍
      • 모델-뷰-커트롤러
    • 정리
  • 2장 오브젝티브C 사관학교
    • 오브젝티브C 프로그래밍 언어
    • 클래스와 객체
      • 객체 생성
      • 메모리 할당
      • 메모리 해제
      • MRR하에서의 리테인 카운트
    • 메소드, 메시지, 셀렉터
      • 선언되지 않은 메소드
      • 객체를 가리키는 방법
      • 메소드 상속
      • 메소드 선언
      • 메소드 구현
      • 클래스 메소드
      • 빠른 열거
    • 클래스 계층
    • 로그 출력
    • 기본적인 메모리 관리
      • MRR을 이용한 메모리 관리
      • ARC에서 메모리 관리
    • 프로퍼티
      • 캡슐화
      • 점 표기법
      • 프로퍼티와 메모리 관리
      • 프로퍼티 생성
      • 커스텀 게터와 세터 생성
      • 프로퍼티 수식자
      • 키-값 코딩
      • 키-값 관찰
      • MRR과 높은 리테인 카운트
      • 객체를 생성하는 다른 방법
      • 객체의 반환
    • 블록 사용
      • 코드에 블록 정의
      • 블록 참조 할당
      • 블록과 지역 변수
      • 블록과 typedef
      • 블록과 MRR에서의 메모리 관리
      • 블록의 다른 용도
    • 자동화된 메모리 관리 기법
      • 프로퍼티와 변수 수식자
      • 참조 사이클
      • 오토릴리즈 풀
    • ARC 코드 작성의 필요성
      • ARC로의 변환
      • 타겟별로 ARC 변환 기능 적용
      • 파일별로 ARC 변환 기능 적용
      • 엑스코드 템플릿으로 ARC를 배제한 프로젝트 만들기
    • ARC 규칙
    • 코어 파운데이션과 톨 프리 브리징에서 ARC 사용
      • 오브젝티브C와 코어 파운데이션 간의 변환
      • 브리징 방식의 선택
      • 브리징에서 런타임의 작동 방식
      • ARC 컴파일 환경을 위한 조언
    • 싱글턴 생성
    • 카테고리(클래스의 확장)
    • 프로토콜
      • 프로토콜 정의
      • 프로토콜 사용
      • 콜백 추가
      • 선택적인 콜백 선언
      • 선택적인 콜백 구현
      • 프로토콜 준수
    • 파운데이션 클래스
      • 문자열
      • 숫자와 날짜
      • 컬렉션
    • 한 가지 더: 메시지 포워딩
      • 메시지 포워딩 구현
      • 마무리 작업
      • 간단한 포워딩
    • 정리
  • 3장 첫 번째 iOS 프로젝트
    • 새 프로젝트 생성
    • 템플릿을 이용한 Hello World 작성
      • 새 프로젝트 생성
      • 엑스코드 작업 공간 소개
      • 프로젝트 리뷰
      • 아이폰 스토리보드 열기
      • 뷰의 편집
      • 애플리케이션 실행
    • 시뮬레이터 사용
    • 시뮬레이터의 구현 방식
    • 시뮬레이터 애플리케이션의 공유
    • 가장 간단하게 만드는 Hello World
      • SDK API 불러오기
    • 인터페이스 빌더 파일을 오브젝티브C 코드로 변환
    • 디버거 사용
      • 중단점 설정
      • 디버거 창 열기
      • 라벨 검사
      • 또 다른 중단점 설정
      • 백 트레이스
      • 콘솔
      • 간단한 디버그 트레이스 추가
    • 메모리 관리
    • 예제: 누수 감지를 위한 인스트루먼트 사용
    • 예제: 임시로 할당된 객체를 관찰하기 위한 인스트루먼트 사용
      • 메모리 부족 상황의 재현
    • 코드 분석
      • 엑스코드에서 기기로: 오거나이저의 인터페이스
      • 디바이스
      • 요약
      • 프로비저닝 프로파일
      • 디바이스 로그
      • 애플리케이션
      • 콘솔
      • 스크린샷
    • iOS 기기를 위한 개발
      • 개발 프로비전 사용
      • 프로비저닝 포털에 기기 추가
      • 애플리케이션 식별자 검사
      • 기기와 코드 서명 신분 설정
      • 기본 SDK와 배포 SDK 타겟 설정
      • Hello World 애플리케이션의 컴파일과 실행
      • 컴파일된 애플리케이션에 대한 서명
    • 컴파일 시간 체크를 이용한 시뮬레이터 빌드 감지
    • 런타임 호환성 체크
    • 프래그마 마크
      • 메소드 축약 표시
    • 배포 준비
      • 빌드 위치 결정과 정돈
      • 스킴과 액션 사용
      • 빌드 환경설정 추가
      • 애드 혹 배포
      • 애드 혹 패키지 작성
    • 무선 애드 혹 배포
      • 매니페스트 작성
    • 앱스토어에 제출
    • 정리
  • 4장 인터페이스 디자인
    • UIView와 UIWindow
      • 데이터를 표시하기 위한 뷰
      • 선택을 위한 뷰
      • 컨트롤
      • 테이블과 피커
      • 프로그레스와 액티비티
    • 뷰 컨트롤러
      • UIViewController
      • UINavigationController
      • UITabBarController
      • 스플릿 뷰 컨트롤러
      • 페이지 뷰 컨트롤러
      • 팝오버 컨트롤러
      • 테이블 컨트롤러
      • 주소록 컨트롤러
      • 이미지 피커
      • 메일 작성 컨트롤러
      • 문서 상호작용 컨트롤러
      • 게임킷 피어 피커
      • 미디어 플레이어 컨트롤러
    • 뷰 디자인의 구조
      • 상태 바
      • 내비게이션 바, 툴바, 탭 바
      • 키보드와 피커
      • 텍스트 필드
      • UIScreen 클래스
    • 인터페이스 작성
    • 살펴보기: 스토리보드 인터페이스 작성
      • 새 프로젝트 생성
      • 뷰 컨트롤러 추가
      • 뷰 위치 조정
      • 클래스 갱신
      • 장면에 이름 붙이기
      • 뷰 속성 편집
      • 내비게이션 버튼 추가
      • 또 다른 내비게이션 컨트롤러 추가
      • 컨트롤러 이름 붙이기
      • 내비게이션 바 꾸미기
      • 버튼 추가
      • 진입점 변경
      • 해제 코드 추가
      • 앱 실행
    • 팝오버 구현 살펴보기
      • 내비게이션 컨트롤러 추가
      • 뷰 컨트롤러 클래스 변경
      • 팝오버 뷰 수정
      • 장면 연결
      • 코드 편집
    • 살펴보기: IB로 iOS 기반의 온도 변환기 작성
      • 새 프로젝트 생성
      • 미디어 추가
      • 인터페이스 빌더
      • 라벨과 뷰 추가
      • 기기 회전 지원
      • 인터페이스 테스트
      • 아웃렛과 액션 추가
      • Conversion 메소드 추가
      • 키보드 타입 업데이트
      • 아이패드 인터페이스 연결
    • 살펴보기: 코드로 온도 변환기 인터페이스 구현
      • 프로젝트 코드 조립
    • 살펴보기: 하이브리드 방식으로 인터페이스 생성과 활용
      • 새 XIB 인터페이스 파일 생성
      • 뷰 추가와 내용 추가
      • 뷰에 태그 달기
      • 코드 편집
    • 기기 회전을 고려한 디자인
    • 기기 회전 가능 설정
    • 자동 크기 변환
      • 자동 크기 조절 사례
      • 자동 크기 조절 옵션 분석
    • 뷰 이동
    • 예제: 템플릿을 활용한 뷰 이동
    • 한 가지 더: 인터페이스 빌더에 대한 몇 가지 팁
    • 정리
  • 5장 뷰 컨트롤러
    • 내비게이션 컨트롤러와 스플릿 뷰를 이용한 개발
      • 내비게이션 컨트롤러와 스택의 사용
      • 뷰 컨트롤러를 스택에 넣고 꺼내기
      • 내비게이션 아이템 클래스
      • 모달 프레젠테이션
    • 예제: 두 개의 아이템이 있는 간단한 메뉴 생성
    • 예제: 세그먼트 컨트롤러 추가
    • 예제: 뷰 컨트롤러 간의 내비게이션
    • 예제: 화면에 커스텀 모달 뷰 나타내기
    • 예제: 페이지 뷰 컨트롤러
      • 북 프로퍼티
      • 구현 아이템을 하나로 묶기
    • 예제 살펴보기
    • 예제: 페이지 뷰 컨트롤러에 페이지 이동 기능 추가
    • 예제: 탭 바
    • 예제: 탭 상태 유지
    • 예제: 스플릿 뷰 컨트롤러 만들기
    • 예제: 아이폰, 아이패드 통합 스플릿 뷰/내비게이션 앱 만들기
    • 예제: 커스텀 컨테이너와 세그웨이
      • 뷰 컨트롤러 간의 장면 전환
    • 한 가지 더: 인터페이스 빌더와 탭 바 컨트롤러
    • 정리
  • 6장 뷰와 애니메이션
    • 뷰의 계층
    • 예제: 뷰 계층 트리 확인
    • 예제: 서브뷰 조회
    • 서브뷰 관리
      • 서브뷰 추가
      • 서브뷰의 순서 변경과 삭제
      • 뷰 콜백
    • 예제: 뷰에 태그를 추가하고 이를 통해 뷰 가져오기
      • 태그 값을 이용한 뷰 검색
    • 예제: 뷰에 이름 붙이기
      • 연관 객체
      • 태그 이름 딕셔너리 사용
    • 뷰 지오메트리
      • 프레임
      • 변환
      • 체계
    • 예제: 뷰 프레임의 활용
      • 크기 조정
      • CGRect와 뷰의 중앙
      • 기타 유틸리티 메소드
    • 예제: 경계 영역 내에서 뷰를 임의의 위치로 이동
    • 예제: 뷰 변환
    • 디스플레이와 상호작용 속성
    • UIView 애니메이션
      • UIView 애니메이션 만들기
      • 블록을 이용해 애니메이션 만들기
      • 조건에 따라 작동하는 애니메이션
    • 예제: 뷰를 서서히 드러내고 감추기
    • 예제: 뷰 교환
    • 예제: 뷰 뒤집기
    • 예제: 코어 애니메이션 전환 효과의 사용
    • 예제: 뷰에 반동 효과 부여
    • 예제: 이미지 뷰 애니메이션
    • 한 가지 더: 뷰에 반사 효과 추가
    • 정리
  • 7장 이미지 작업
    • 이미지를 찾고 불러오기
      • 이미지 데이터 읽기
    • 예제: iOS 사진 앨범에서 사진 가져오기
      • 이미지 피커로 작업
      • 이미지 편집 정보 복원
    • 예제: Asset URL에서 이미지 가져오기
    • 예제: 사진 촬영 후 사진 앨범에 저장
      • 카메라 선택
    • Documents 폴더에 사진 저장
    • 예제: 사진을 이메일로 전송
      • 이메일 메시지 내용 작성
      • 이메일 작성 컨트롤러 나타내기
    • 카메라 촬영 자동화
    • 커스텀 카메라 오버레이 사용
    • 예제: AVFoundation 카메라 사용
      • 카메라 기능 요청
      • 카메라 조회하고 가져오기
      • 카메라 세션 생성
      • 촬영 카메라 교체
      • 카메라 미리 보기
      • 카메라 미리 보기 배치
      • EXIF
      • 이미지 지오메트리
      • 카메라 도우미 생성
    • 예제: 코어 이미지 필터 추가
    • 예제: 코어 이미지의 얼굴 인식 기능 구현
    • 얼굴 이미지 추출
    • 비트맵 이미지 처리
      • 비트맵 컨텍스트로 이미지 생성
      • 이미지 처리 적용
      • 이미지 처리 실무
    • 예제: 실시간 동영상에서 샘플링
      • HSB로 전환
    • 예제: 썸네일 이미지 만들기
    • 뷰 기반의 스크린샷 기록
    • PDF 파일에 그림 그리기
    • 빈 화면에서 새로운 이미지 생성
    • 예제: 스크롤 뷰에 이미지 표시
      • 여러 개의 이미지가 있는 페이지 스크롤 뷰 생성
    • 정리
  • 8장 제스처와 터치 인터페이스
    • 터치
      • 터치 인터페이스 생명주기
      • 터치와 반응자 메소드
      • 뷰 터치
      • 멀티터치
      • 제스처 인식
    • 예제: 간단한 직접 조작 인터페이스
    • 예제: 팬 제스처 인식
    • 예제: 한 번에 여러 제스처 인식
    • 제스처 충돌
    • 예제: 이동 범위의 제한
    • 예제: 터치 테스트
    • 예제: 비트맵에서의 테스트
    • 예제: 지속성 있는 터치 처리 인터페이스
      • 상태 저장
      • 상태 복원
    • 예제: 아카이브를 통한 지속성 부여
    • 예제: 되돌리기 기능 추가
      • Undo 매니저
      • 서브뷰의 Undo 기능 추가
      • 내비게이션 바에서의 처리
      • Undo 등록
      • 흔들기 동작을 통한 Undo 기능 추가
      • Undo와 Redo의 동작 이름 추가(옵션)
      • 흔들어서 편집하기 기능 지원
      • 최초 반응자 역할 부여
    • 예제: 화면에 터치 흔적 그리기
    • 예제: 그림을 부드럽게 만들기
    • 예제: 원 감지
      • 사용자 제스처 인식기 만들기
    • 예제: 멀티터치
    • 터치 궤적 유지
    • 한 가지 더: 스크롤 뷰의 드래그
    • 정리
  • 9장 컨트롤 생성과 사용
    • UIControl 클래스
      • 컨트롤의 종류
      • 컨트롤 이벤트
    • 버튼
    • 인터페이스 빌더에서 버튼 추가
      • 이미지
      • 버튼에 액션 연결
      • 버튼이 아닌 버튼
    • 엑스코드에서 커스텀 버튼 만들기
    • 여러 줄의 버튼 텍스트
    • 버튼에 애니메이션 요소 추가
    • 예제: 버튼 반응 애니메이션
    • 예제: 커스텀 핸들이 있는 슬라이더
      • UISlider 커스터마이징
      • 효율성 추가
      • 외양을 위한 장치
    • 예제: 두 번 탭할 수 있는 세그먼트 컨트롤 만들기
    • 예제: UIControl의 하위 클래스 생성
      • UIControl 생성
      • 터치 동작 추적
      • 타겟에 이벤트 전달
    • 스위치와 스테퍼로 작업
    • 예제: 별점 슬라이더 만들기
    • 예제: 터치 휠 만들기
    • 페이지 표시 컨트롤 추가
    • 예제: 페이지 스크롤러 만들기
    • 툴바 만들기
      • 코드를 통한 툴바 생성
      • iOS 5의 툴바를 위한 팁
    • 정리
  • 10장 텍스트 작업
    • 예제: UITextField 키보드 해제
      • 텍스트 속성 프로퍼티
      • 다른 텍스트 필드 프로퍼티
    • 예제: 키보드에 따른 뷰 크기 조절
    • 예제: 커스텀 액세서리 뷰를 이용한 텍스트 뷰 해제
    • 예제: 하드웨어 키보드를 이용한 뷰 크기 조정
    • 예제: 커스텀 입력 뷰 만들기
    • 예제: 텍스트 입력 인식 뷰 만들기
    • 예제: 텍스트 뷰가 아닌 뷰에 커스텀 입력 뷰 추가
      • 입력 클릭 추가
    • 예제: 좀 더 좋은 텍스트 에디터 제작
    • 예제: 입력된 텍스트 필터링
    • 예제: 텍스트 패턴 검출
      • 나만의 정규표현식 생성
      • 정규표현식으로 표현
      • 데이터 검출
      • 내장된 데이터 타입 검출 기능 추가
    • 예제: UITextView에서 철자 오류 검출
      • 텍스트 문자열 검색
    • 예제: 텍스트에 폰트 스타일 적용
    • 예제: 앱에 커스텀 폰트 추가
    • 예제: 코어 텍스트와 속성이 부여된 문자열
    • 의사 HTML로 속성 텍스트 생성
    • 예제: 코어 텍스트를 페이지로 나누기
    • 예제: PDF 파일에 코어 텍스트 저장
    • 예제: 사각형이 아닌 도형에 코어 텍스트 나타내기
  • 예제: 경로 위에 텍스트 나타내기
    • 베지어 경로 위에 텍스트 나타내기
    • 비율에 맞춰 텍스트 나타내기
    • 그림 문자 나타내기
  • 한 가지 더: 커다란 폰 텍스트
  • 정리
  • 11장 테이블 뷰 생성과 관리
    • UITableView와 UITableViewController 소개
      • 테이블 생성
    • 예제: 기본 테이블 구현
      • 테이블 구성
      • 데이터 소스 메소드
      • 셀 재사용
      • 사용자 터치에 대한 반응
      • 선택한 셀의 색상 지정
      • 테이블의 배경색 변경
      • 셀 타입
    • 예제: 인터페이스 빌더로 커스텀 셀 작성
      • 커스텀 선택 속성 추가
      • 줄무늬 셀 배경
      • 셀 선택 시 하이라이트 기능 없애기
      • 그룹 테이블 생성
    • 예제: 커스텀 셀에서 컨트롤 상태 기억
      • 셀의 재사용 시각화
      • 체크 표시된 테이블 셀 생성
      • 상세 보기 액세서리로 작업
    • 예제: 테이블 편집
      • 제거 컨트롤 표시
      • 제거 컨트롤 해제
      • 삭제 요청의 처리
      • Undo 지원
      • 셀 스와이프
      • 셀 추가
      • 셀 순서 변경
      • 알고리즘에 따른 테이블 정렬
    • 예제: 섹션 활용
      • 섹션 만들기
      • 섹션과 열의 숫자 세기
      • 셀 반환
      • 헤더 제목 생성
      • 섹션 인덱스 생성
      • 섹션과 델리게이션
    • 예제: 테이블에서 데이터 검색
      • 검색 디스플레이 컨트롤러 생성
      • 검색 가능한 데이터 소스 메소드 작성
      • 델리게이트 메소드
      • 검색 인덱스 사용
      • 헤더와 푸터 커스터마이징
    • 예제: 테이블에 ‘끌어서 새로 고침’ 기능 추가
    • 커스텀 그룹 테이블의 코드 작성
      • 그룹화된 환경설정 테이블 생성
    • 예제: 멀티 휠 테이블 만들기
      • UIPickerView 생성
    • 예제: 뷰 기반의 피커 사용
    • 예제: UIDatePicker 사용
    • 날짜 피커 생성
    • 한 가지 더: 날짜 형식
    • 정리
  • 12장 코어 데이터 맛보기
    • 코어 데이터 소개
      • 모델 파일 생성과 편집
      • 클래스 파일 만들기
      • 코어 데이터 컨텍스트 생성
      • 객체 추가
      • 데이터베이스 조회
      • 데이터 변경 감지
      • 객체 제거
    • 예제: 테이블 데이터 소스를 위한 코어 데이터 사용
    • 예제: 테이블 검색과 코어 데이터
    • 예제: 실시간 데이터 편집과 코어 데이터 테이블 뷰 연동
    • 예제: 코어 데이터에서 Undo/Redo 기능 구현
    • 정리
  • 13장 사용자 알림
    • 알림을 통해 사용자에게 직접 알리기
      • 간단한 알림 생성
      • 알림 델리게이트
      • 알림을 화면에 표시
      • 알림의 종류
    • 사용자에게 진행 상황 보여주기
      • UIActivityIndicatorView 사용
      • UIProgressView 사용
    • 예제: 버튼 없는 알림 창
      • 떠있는 진행 상황 모니터 생성
    • 예제: 실행 루프를 활용한 모달 알림 생성
    • 예제: 알림 뷰를 활용한 가변 인수 사용
      • 간단한 메뉴 표시
      • 메뉴 스크롤
      • 액션 시트에 텍스트 표시
    • 예제: 커스텀 알림 오버레이 생성
      • 탭 가능한 오버레이
    • 예제: 기본 팝오버
    • 예제: 로컬 알림
    • 알림 표시기
      • 애플리케이션 배지
    • 예제: 간단한 오디오 알림
      • 시스템 사운드
      • 진동
      • 알림
      • 지연
    • 한 가지 더: 볼륨 조절 알림 창
    • 정리
  • 14장 하드웨어 장치 활용
    • 기본적인 기기 정보 알아보기
    • 기기 기능 제한 설정
    • 예제: 기기 상세 정보 확인
    • 아이폰 배터리 상태 확인
    • 근접 센서 활성화/비활성화
    • 예제: 가속도계를 이용해 항상 위를 가리키게 하기
      • 동기적으로 실시간 가속도계 각도 데이터 가져오기
      • 기기 회전에 따른 연관 각도 계산
      • 기기의 기본 방향
    • 예제: 가속도계를 이용한 화면 위의 객체 이동
      • 나비 애니메이션에 반짝임 요소 추가
    • 예제: 코어 모션 기초
      • 코어 모션의 센서 테스트
      • 코어 모션의 핸들러 블록
    • 예제: 기기 상태 정보 획득과 사용
    • 모션 이벤트로 기기 흔들기 동작 감지
    • 예제: 가속도계로 기기 흔들기 동작 감지
    • 예제: 외부 화면 사용
      • 화면 감지
      • 화면 해상도 정보 가져오기
      • 비디오 출력 설정
      • 디스플레이 링크 추가
      • 손실된 화소 보정
      • VIDEOkit
    • 한 가지 더: 가용 디스크 공간 확인
    • 정리
  • 15장 네트워킹
    • 네트워크 상태 점검
    • 예제: 연결 확인을 위한 UIDevice 클래스 확장
    • 연결 변화 조회
    • IP와 호스트 정보 확인
    • 블록 호출에서 큐 사용
    • 사이트 상태 확인
    • 동기식 다운로드
    • 이론적인 비동기식 다운로드
    • 예제: 비동기식 다운로드
    • 본인 인증 요청에 대한 처리
      • 본인 확인 정보의 저장
    • 예제: 키체인 정보의 저장과 인출
    • 예제: 데이터 업로드
      • NSOperationQueue
    • 트위터
    • 예제: XML 데이터를 트리 구조로 변환
      • 트리 구조
      • XMLParser를 이용한 트리 구조 생성
      • TreeNode를 이용한 트리 구조 사용
    • 예제: 간단한 웹 기반 서버 만들기
    • 한 가지 더: JSON 직렬화 활용
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안