iOS 7과 Xcode 5를 설명하기 위하여 완전히 새로워진 89개의 장들로 구성된 이 책의 목표는 아이폰과 아이패드, 그리고 아이팟 터치용 iOS 7 앱을 만드는 데 필요한 기술들을 설명하는 것이다. 이 책과 함께 iOS 7 SDK와 Xcode를 다운로드할 준비가 되었고, 인텔 기반의 맥과 개발하고자 하는 앱에 대한 아이디어를 가지고 있다면 모든 준비는 끝난 것이다.
이 책의 저자인 닐 스미스는 아이폰과 아이패드 앱 개발에 대한 기초부터 오브젝티브-C로 iOS 7에 대한 기초를 쌓기 위한 유용한 팁과 정보를 제공한다. 그런 다음, 새로워진 최신 OS와 사용자 인터페이스의 아키텍처를 자세히 분석할 것이다. 기초부터 시작하는 이 책은 iOS 개발 환경 구축에 필요한 전 과정을 설명하며, iOS 애플리케이션과 사용자 인터페이스의 설계에 대해 자세히 살펴보면서 iOS 7의 아키텍처와 오브젝티브-C 프로그래밍에 대해서도 안내하고 있다.
그리고 이번 개정판에서는 스프라이트 킷을 이용한 게임 개발과 UIKit 다이나믹스를 이용한 애니메이션 기능들과 같은 iOS 7의 새로운 기능들을 설명하며, 데이터베이스 관리, 파일 핸들링, 앱 내 결제, 그래픽과 애니메이션, 터치 스크린 관리, 제스처 인식, 멀티태스킹, iAd 통합, 소셜 네트워크 통합, 위치 관리 카메라 접근, 비디오 및 오디오 재생 지원 등과 같은 좀 더 고급 주제들에 대해서도 이해하기 쉬운 예제들로 빠짐없이 설명하고 있다. 또한 자동 레이아웃, 트위터와 페이스북 통합, 이벤트 미리 알림, 앱 스토어가 호스팅하는 앱 내 결제 콘텐츠, 컬렉션 뷰 등도 다룬다.
저자 소개
닐 스미스(Neil Smyth)
닐 스미스는 20년 이상의 IT 개발 경력을 지녔다. 특히 프로그래밍 언어와 기업용 개발 도구, 그리고 사용자 인터페이스 디자인을 전문으로 해왔으며, 시스템 프로그래밍과 웹 개발, 그리고 마케팅을 담당하기도 했었다. 닐은 IT 학사 학위 외에 Network+, Project+, 그리고 자바와 마이크로소프트 MCP 자격증들을 가지고 있다. 또한 그는 12종의 기술 관련 서적을 집필하였으며, 현재는 미국에서 인터넷 출판과 모바일 애플리케이션 개발 회사인 Payload Media의 공동 창업자이자 CEO로 재직 중이다.
역자 소개
황반석
아이스하키와 전자 기타에 빠져 있는 그는 한양대학교에서 컴퓨터 공학을 전공한 이후 지금까지 줄곧 개발자의 길을 걷고 있다. 처음에는 C, Visual C++를 이용한 애플리케이션 개발을 했었고, 인터넷이 확산되면서 Java/JSP를 이용한 대규모 웹 프로젝트들을 수행하였다. 그 후 모바일 시대가 도래하면서 안드로이드, 아이폰(아이팟 터치), 아이패드 애플리케이션들을 개발하고 있으며, 현재는 ‘트렌디앱(http://www.trendyapp.co.kr)’의 공동창업자이자 Chief Operating Officer로서 모바일의 신세계를 개척하고 펼치겠다는 푸른 꿈을 꾸고 있다. 최근에는 윈도우 폰에 대한 준비를 하면서 다양한 플랫폼을 기반으로 하는 사업을 준비하고 있다. 옮긴 책으로는 《핵심만 골라 배우는 iOS 6 프로그래밍》, 《고급 개발자를 위한 iOS 프로그래밍(그 한계를 넘어서)》, 《핵심만 골라 배우는 iOS 5 프로그래밍》, 《핵심만 골라 배우는 오브젝티브-C 2.0》, 《렛츠 고! iOS 4 애플리케이션 개발》, 《입문자를 위한 아이폰 게임 개발》, 《맥과 아이폰 개발자를 위한 Xcode》 등이 있다.
차례
1장 이 책에 대하여 _ 1
1.1 처음 iOS 개발을 하는 개발자를 위하여
1.2 iOS 6 개발자를 위하여
1.3 예제 소스코드
1.4 피드백
1.5 오탈자
2장 Apple iOS 개발자 프로그램에 가입하기 _ 7
2.1 등록된 애플 개발자
2.2 Xcode와 iOS 7 SDK 다운로드하기
2.3 iOS 개발자 프로그램
2.4 언제 iOS 개발자 프로그램에 가입할까?
2.5 iOS 개발자 프로그램에 가입하기
2.6 요약
3장 Xcode 5와 iOS 7 SDK 설치하기 _ 13
3.1 여러분의 맥이 인텔 기반인지 PowerPC 기반인지 확인하기
3.2 Xcode 5와 iOS 7 SDK 설치하기
3.3 Xcode 시작하기
4장 간단한 iOS 7 앱 만들기 _ 17
4.1 Xcode 5 시작하기
4.2 iOS 앱 사용자 인터페이스 만들기
4.3 컴포넌트 속성 변경하기
4.4 사용자 인터페이스에 오브젝트 추가하기
4.5 Xcode 5에서 iOS 7 앱 빌드하고 실행하기
4.6 빌드 에러 처리하기
4.7 서로 다른 화면 크기 테스트하기
4.8 여러 iOS 버전에서 사용자 인터페이스 화면 테스트하기
4.9 애플리케이션 성능 모니터링하기
4.10 요약
5장 iOS 7 아키텍처와 SDK 프레임워크 _ 33
5.1 iPhone OS가 iOS로
5.2 iOS 7 아키텍처 개요
5.3 코코아 터치 계층
5.4 iOS 미디어 계층
5.5 iOS 코어 서비스 계층
5.6 파운데이션 프레임워크
5.7 iOS 코어 OS 계층
6장 Xcode 5로 iOS 7 기기에서 앱 테스트하기 _ 45
6.1 Apple ID로 Xcode 설정하기
6.2 인증서 서명 생성하기
6.3 개발자 포털에 기기 추가하기
6.4 등록된 기기에서 애플리케이션 실행하기
6.5 요약
7장 오브젝티브-C 프로그래밍 기초 _ 51
7.1 오브젝티브-C 데이터 타입 및 변수
7.2 오브젝티브-C 표현식
7.3 if와 else로 오브젝티브-C 흐름 제어하기
7.4 for 문을 이용한 반복
7.5 do와 while 을 이용한 반복
7.6 오브젝티브-C do ... while 반복
8장 오브젝티브 –C로 개발하는 객체지향 프로그래밍 기초 _ 61
8.1 객체란?
8.2 클래스란?
8.3 오브젝티브-C 클래스 인터페이스 선언
8.4 클래스에 인스턴스 변수 추가하기
8.5 클래스 메서드 정의하기
8.6 오브젝티브-C 클래스 구현 선언하기
8.7 클래스 인스턴스 선언 및 초기화하기
8.8 Automatic Reference Counting(ARC)
8.9 메서드 호출과 인스턴스 데이터 접근하기
8.10 오브젝티브-C 그리고 도트 표기법
8.11 변수가 저장되는 방법
8.12 인다이렉션의 개요
8.13 인다이렉션과 객체
8.14 인다이렉션과 객체 복사하기
8.15 프로그램 영역 만들기
8.16 하나로 합치기
8.17 객체지향 오브젝티브-C 코드 구조잡기
9장 최신 오브젝티브-C의 기초 _ 77
9.1 디폴트 프로퍼티 신서사이즈
9.2 메서드 순서
9.3 NSNumber 문자
9.4 배열 문자
9.5 딕셔너리 문자
9.6 요약
10장 iOS 7 애플리케이션 개발 아키텍처 개요 _ 83
10.1 Model View Controller(MVC)
10.2 타깃-액션 패턴, IBOutlet과 IBAction
10.3 서브클래싱
10.4 델리게이션
10.5 요약
11장 상호작용하는 iOS 7 앱 만들기 _ 87
11.1 새 프로젝트 만들기
11.2 사용자 인터페이스 만들기
11.3 예제 애플리케이션 빌드하고 실행하기
11.4 액션과 아웃렛 추가하기
11.5 완성된 애플리케이션을 빌드하고 실행하기
11.6 요약
12장 키보드를 감추는 iOS 7 코드 만들기 _ 99
12.1 예제 앱 만들기
12.2 사용자가 리턴키를 터치할 때 키보드 감추기
12.3 사용자가 백그라운드를 터치했을 때 키보드 감추기
12.4 요약
13장 iOS 7 뷰와 윈도우, 뷰 계층 이해하기 _ 105
13.1 뷰에 대해
13.2 UIWindow 클래스
13.3 뷰 계층구조
13.4 뷰 타입
13.5 요약
14장 iOS 7의 자동 레이아웃 소개 _ 111
14.1 자동 레이아웃의 개요
14.2 정렬
14.3 고유한 콘텐츠 사이즈
14.4 콘텐츠 허깅 우선순위와 압축 제한 우선순위
14.5 컨스트레인트를 만드는 세 가지 방법
14.6 컨스트레인트에 대한 상세 내용
14.7 요약
15장 인터페이스 빌더에서 iOS 7 자동 레이아웃 컨스트레인트로 작업하기 _ 119
15.1 자동 레이아웃의 간단한 예제
15.2 인터페이스 빌더에서 자동 레이아웃 켜고 끄기
15.3 인터페이스 빌더의 자동 레이아웃 기능들
15.4 인터페이스 빌더에서 새로운 컨스트레인트 생성하기
15.5 자동 레이아웃 문제 해결하기
15.6 요약
16장 iOS 7 자동 레이아웃 예제 _ 137
16.1 프로젝트 준비하기
16.2 사용자 인터페이스 설계하기
16.3 자동 레이아웃 컨스트레인트 추가하기
16.4 컨스트레인트 우선순위 조절하기
16.5 애플리케이션 테스트하기
16.6 요약
17장 코드에서 iOS 7 자동 레이아웃 컨스트레인트 구현하기 _ 145
17.1 코드에서 컨스트레인트 생성하기
17.2 컨스트레인트를 뷰에 추가하기
17.3 자동 리사이징 끄기
17.4 예제 애플리케이션
17.5 뷰 생성하기
17.6 컨스트레인트 생성하기와 추가하기
17.7 컨스트레인트 제거하기
17.8 요약
18장 iOS 7에서 교차 계층구조자동 레이아웃 컨스트레인트 구현하기 _ 153
18.1 예제 애플리케이션
18.2 아웃렛 구축하기
18.3 이전 컨스트레인트를 제거하는 코드 작성하기
18.4 교차 계층구조 컨스트레인트 추가하기
18.5 애플리케이션 테스트하기
18.6 요약
19장 iOS 7 자동 레이아웃 시각적 형식 언어 이해하기 _ 159
19.1 시각적 형식 언어 소개
19.2 시각적 형식 언어 예제
19.3 constraintsWithVisualFormat 메서드 이용하기
19.4 요약
20장 Xcode 5에서 스토리보드 사용하기 _ 165
20.1 스토리보드 예제 프로젝트 만들기
20.2 스토리보드 접근하기
20.3 스토리보드에 Scenes 추가하기
20.4 스토리보드 Segues 구성하기
20.5 스토리보드 전환 구성하기
20.6 Scene과 뷰 컨트롤러 연결하기
20.7 화면들 사이의 데이터 전달
20.8 스토리보드 Segue 되돌리기
20.9 프로그램으로 스토리보드 Segue 호출하기
20.10 요약
21장 Xcode 5의 스토리보드를 이용한 iOS 7 탭 바 애플리케이션 만들기 _ 177
21.1 탭 바 개요
21.2 멀티 뷰 애플리케이션의 뷰 컨트롤러 이해하기
21.3 탭 바 예제 애플리케이션 설정하기
21.4 프로젝트 파일 살펴보기
21.5 최초의 뷰 컨트롤러 이름 바꾸기
21.6 두 번째 콘텐츠 뷰를 위한 뷰 컨트롤러 추가하기
21.7 탭 바 컨트롤러를 스토리보드에 추가하기
21.8 두 번째 뷰 컨트롤러를 스토리보드에 추가하기
21.9 뷰 컨트롤러 사용자 인터페이스 설계하기
21.10 탭 바 아이템 설정하기
21.11 애플리케이션 빌드하고 실행하기
21.12 요약
22장 Xcode 5 스토리보드와 iOS 7 테이블 뷰의 개요 _ 187
22.1 테이블 뷰의 개요
22.2 정적 테이블 뷰 vs. 동적 테이블 뷰
22.3 테이블 뷰 델리게이트와 데이터소스
22.4 테이블 뷰 스타일
22.5 테이블 뷰 셀 스타일
22.6 테이블 뷰 셀 재사용
22.7 요약
23장 프로토타입 테이블 뷰 셀이 있는 동적 테이블 뷰를 만들기 위하여 Xcode 5 스토리보드 이용하기 _ 193
23.1 예제 프로젝트 생성하기
23.2 스토리보드에 테이블 뷰 컨트롤러 추가하기
23.3 UITableViewController와 UITableViewCell 하위 클래스 생성하기