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 하위 클래스 생성하기
이 책 구매한지 몇 달이 되었는데 이제 봅니다 제일 좋은 내용은 인앱에 대한 내용이 있어서 참 좋네요
초보 및 개인 개발자한테 정말 필요한 내용인데 다음에 ios8 또는 초보자가 따라 만들 수 있는 책도 출간해주시면 안될까요? 예전에 도전 아이폰 프로그래밍이라는 책이 있었는데 이런 기초 또는 초보자가 따라하는 책이랑 위의 작가 또는 좋은 내용의 번역서 하나 출간해주시면 감사하겠습니다 정말 책 감사합니다 물론 돈 가치 그 이상을 하는 책이라서 너무 좋네요 ^^
문의 드립니다 프로젝트명을 생성하면 파일이 전부 [AppDelegate.h][ViewController.h]로 만들어집니다
하지만 예제를 보면[프로젝트명AppDelegate.h][프로젝트명ViewController.h]로 되어 있습니다
예를 들어 프로젝트명이 PageApp이면 예제는 [PageAppAppDelegate.h][PageAppViewController.h]로 나와있지만 실제로는 프로젝트명 없이 [AppDelegate.h][ViewController.h]로 생성되는데 예제데로 할려면 어떻게 하면되는지요? 가끔 상속 때문에 걸리는 경우가 많네요 답변 부탁드립니다
==============
아마도 독자분께서 Xcode 6 환경에서 이 책의 예제를 따라 하고 있는 것으로 보입니다.
“핵심만 골라 배우는 iOS 7 프로그래밍” 책은 Xcode 5 환경을 바탕으로 쓰여진 책입니다.
Xcode 5에서는 독자의 문의 사항처럼 표시됩니다.
그런데, Xcode 6부터 이 부분이 바뀌었네요. ^^;;
==============
소스코드를 egg 보다는 zip 이나 rar 로 압축해주시는게 좋을거 같은데요.
네. 티스토리에 한 번에 올릴 수 있는 용량이 10MB로 제한되어 있어서 분할압축하여 올렸었는데요, 구글드라이브를 통해서도 받을 수 있도록 수정해두었습니다.
감사합니다.
이 책 구매한지 몇 달이 되었는데 이제 봅니다 제일 좋은 내용은 인앱에 대한 내용이 있어서 참 좋네요
초보 및 개인 개발자한테 정말 필요한 내용인데 다음에 ios8 또는 초보자가 따라 만들 수 있는 책도 출간해주시면 안될까요? 예전에 도전 아이폰 프로그래밍이라는 책이 있었는데 이런 기초 또는 초보자가 따라하는 책이랑 위의 작가 또는 좋은 내용의 번역서 하나 출간해주시면 감사하겠습니다 정말 책 감사합니다 물론 돈 가치 그 이상을 하는 책이라서 너무 좋네요 ^^
좋은 말씀 남겨주셔서 고맙습니다. ^^;
이런 말씀에 책 만드는 보람을 느낍니다.
iOS 8도 준비할 예정입니다만, 번역과 편집에 드는 시간이 있어서
내년 이른 봄쯤이나 가능할 것 같네요.
문의 드립니다 프로젝트명을 생성하면 파일이 전부 [AppDelegate.h][ViewController.h]로 만들어집니다
하지만 예제를 보면[프로젝트명AppDelegate.h][프로젝트명ViewController.h]로 되어 있습니다
예를 들어 프로젝트명이 PageApp이면 예제는 [PageAppAppDelegate.h][PageAppViewController.h]로 나와있지만 실제로는 프로젝트명 없이 [AppDelegate.h][ViewController.h]로 생성되는데 예제데로 할려면 어떻게 하면되는지요? 가끔 상속 때문에 걸리는 경우가 많네요 답변 부탁드립니다
안녕하세요? 변용준 독자님.
문의하신 내용을 역자분께 전달하여 답변을 받아 옮겨 드립니다.
==============
아마도 독자분께서 Xcode 6 환경에서 이 책의 예제를 따라 하고 있는 것으로 보입니다.
“핵심만 골라 배우는 iOS 7 프로그래밍” 책은 Xcode 5 환경을 바탕으로 쓰여진 책입니다.
Xcode 5에서는 독자의 문의 사항처럼 표시됩니다.
그런데, Xcode 6부터 이 부분이 바뀌었네요. ^^;;
==============
그리고 상속 때문에 걸린다는 말씀에 구체적인 설명이 없어 답변하기가 어렵다고 하시네요.
안녕하세요!
혹시 IOS8 버전은 언제쯤 출간될지 조심스레 여쭤봅니다~~
안녕하세요?
조심스럽지 않게 여쭤봐도 됩니다. ^^
iOS 8은 현재 번역 중에 있는데, 2월 중에는 국내 독자들에게 선보일 수 있을 것 같습니다. 부지런히 준비하도록 하겠습니다.
감사합니다.
iOS8은 언제쯤 출간될까요?ㅠㅠ
번역하시느라 수고 많으십니다~
문의 고맙습니다.
작업이 좀 늦어져서 출간일이 미뤄지고 있는데, 현재로는 4월 20일 즈음에는 나올 것 같습니다.
감사합니다!!