아이폰 서적을 집필했습니다.
Books 2009/07/23 18:12아이폰 서적을 집필했습니다. 8월 21일 부터 판매가 될 예정입니다.
아이폰 3.0을 기준으로 처음부터 책을 작성했습니다.
아이폰 개발에 관한 A-Z까지 모든 내용을 다 설명하고 있습니다.
그리고 풍부한 삽화를 이용해서 최대한 쉽게 접근할 수 있도록 했습니다.
예제는 여기서 다운받으시면 됩니다. 오른편 책 배너 아래에서도 받을 수 있습니다.
다음은 서문입니다.
| 서문 필자는 처음 아이폰이 발표되었을 때 상당한 충격을 받았습니다. 그리고 아이폰을 통해서 그동안 모르고 지냈던 새로운 세계를 발견하게 되었습니다. 아이폰 SDK로 애플리케이션을 개발하고, 앱 스토어를 통해서 제품을 판매하는 여러가지 과정을 경험하면서 앱스토어가 가지고 올 새로운 변화에 주목하게 되었습니다. 애플은 완전히 새로운 생태계(Ecosystem)인 앱스토어를 성공적으로 만들어냈습니다. 앱스토어를 통해서 개발자는 자기가 개발한 애플리케이션을 손쉽게 세상에 내 놓을 수 있게 되었습니다. 어제 개발한 애플리케이션이 내일이면 미국, 멕시코, 유럽 등 세계 모든 곳으로 퍼져 나갑니다. 지금껏 가지지 못한 배포의 자유를 얻게 된 것입니다. 필자는 이 책에서 아이폰 애플리케이션을 개발하기 위한 모든 내용을 설명할 것입니다. 그리고 모든 내용을 아이폰 SDK 3.0을 기준으로 작성했습니다. 이 책의 목적은 독자가 아이폰 애플리케이션을 쉽게 개발하고 세상에 내 놓을 수 있도록 하는 것입니다. 읽기 쉽고 재미있는 책을 만들기 위해서 그림과 삽화를 최대한 넣으려고 노력했습니다. 또한 모든 주제에 대해 예제를 이용해서 직접 개발할 수 있도록 했습니다. 예제는 (특별한 언급이 없는 한) 모두 필자가 개발하고 실제 장비에서 테스트를 진행한 것입니다. 특히 푸시 통보 서비스(Push Notification)를 제공하는 서버 구현 방법을 윈도우와 리눅스 플랫폼에 대해서도 설명했습니다. 그리고 스토어 킷을 통해서 직접 제품을 등록하고 판매할 수 있도록 한 지하철 노선도 예제도 자랑할 만한 예제 입니다. 그 외에도 인터넷 라디오, 게임킷을 활용한 예제, 멀티 터치와 OpenGL 예제 등 재미있는 예제가 많습니다. 이 책이 아이폰 애플리케이션을 개발하고자 하는 독자들에게 좋은 출발점이 될 수 있다면 더 이상 바랄것이 없을 것입니다. 감사의 글 먼저 책의 출판을 결정해 주신 인사이트 출판사의 한기성 사장님에게 감사 드립니다. 그리고 정말 놀라운 꼼꼼함으로 이 책의 수많은 오류를 잡아주신 김승호 편집자님에게 감사의 마음을 전합니다. 아직 이 책에 오류가 남아있다면 모두 필자의 탓입니다. 책의 4장을 리뷰해 주신 이창희(http://www.cocoadev.co.kr/)님, 3장과 13장을 리뷰해 주신 박종암(http://jongampark.wordpress.com/)님에게 감사의 마음을 전합니다. 7장의 MD2 예제의 주요 클래스를 구현하고 이 책에서 사용할 수 있도록 허락해 준 제임스 휘(James Hui)에게 감사의 마음을 전합니다. 그리고 8장의 스트림 예제에서 사용된 클래스를 작성해서 이 책에서 사용할 수 있도록 허락해 준 맷 갤래거(Matt Gallagher)에게도 감사의 말을 전합니다. 마지막으로 언제나 옆에서 든든한 지원군이 되어준 아내와 곧 태어날 딸에게도 사랑을 전합니다.
2009.7.18
강덕진
|
목차는 다음과 같습니다.
1장 안녕! 아이폰!
1.1 아이폰의 등장
1.2 아이폰/ 아이팟 터치 모델
1.3 아이폰 OS 3.0의 새로운 기능
1.4 이 책이 다루는 내용
1.5 새로운 도전
2장. 설치 및 개발 환경 구축
2.1. 개발에 필요한 시스템
2.1.1. 개발에 필요한 시스템 사양
2.2. 아이폰 SDK 설치
2.2.1 아이폰 SDK 설치하기
2.3. Xcode
2.3.1. 프로젝트 템플릿
2.3.2 Xcode 화면 구성
2.4 인터페이스 빌더
2.4.1 인스펙터
2.4.2 라이브러리
2.4.3 문서 창
2.4.4 연결 패널
2.5 도움말 접근하기
2.5.1. 조사 도우미
2.5.2. 도움말 창
2.5.3 고급 검색
2.5.4. 편집기의 문자열을 도움말 창에서 바로 검색하기
2.5.5 도움말 문서의 형태
2.6 아이폰 레퍼런스 프로젝트
2.6.1 프로젝트 생성
2.6.2 인터페이스 빌더로 화면 디자인하기
2.6.3 코드 입력하기
2.7. 아이폰 시뮬레이터
2.7.1 터치 조작
2.7.2 리셋하기
2.8 정리
2.8.1 참고 사이트
3장 동작 환경 이해하기
3.1 아이폰 동작 환경
3.2 애플리케이션 번들
3.3 Info.pList 파일
3.4 애플리케이션 델리게이트
3.5 핵심 디자인 패턴
3.5.1 델리게이트(delegate)
3.5.2 데이터 소스(Data Sources)
3.5.3 타깃-액션 (Target-Action)
3.5.4 통보(Notification)
3.5.5 키-값 감시(Key-Value Observing)
3.6 아이폰 링크
3.6.1 메일
3.6.2 전화 걸기
3.6.3 문자(SMS) 보내기
3.6.4 지도 보기
3.6.5 아이튠스
3.6.6 유튜브(U-Tube) 연결하기
3.7 커스텀 URL 스키마 만들기
3.8 정리
4장 화면을 이루는 기본 : 뷰
4.1 UIWindow
4.2 UIView와 UIViewController
4.3 뷰를 직접 만들어 보자
4.3.1 이미지 준비
4.3.2 코드 작성
4.3.3 직접 만든 뷰를 화면에 추가하기
4.4 UI 브로슈어 프로젝트
4.5 이미지 뷰(UIImageView)
4.5.1 인터페이스 빌더를 이용한 화면 디자인
4.5.2 코드 작성
4.5.3 이미지 선택하기
4.5.4 애니메이션 설정
4.6 웹 뷰(UIWebView)
4.6.1 디자인하기
4.6.2 코드 작성하기
4.6.3 PDF를 보여주자
4.7 텍스트 입력과 키보드
4.7.1 화면 구성
4.7.2 코드 작성
4.7.3 키보드 숨기기 팁
4.7.4 키보드 관련 통보(Notification) 이용하기
4.8 피커 뷰
4.8.1 코드 분석
4.8.2 슬롯머신 게임 만들어 보기
4.8.3 XIB에 객체 추가하기
4.8.4 로직 구현
4.9 알림, 경고창
4.9.1 인터페이스 빌더에서 클래스 내보내기
4.9.2 병합하기
4.9.3 UIAlertView 코드 작성
4.9.4 UIActionSheet 코드작성
4.10 스크롤 뷰
4.10.1 스크롤, 확대, 축소 구현하기
4.10.2 스크롤에 따른 지도확장
4.10.3 확대에 따른 지도 재설정
4.10.4 자바스크립트에서 Objective-C 객체에 이벤트 보내기
4.11 맵 뷰(MKMapView)
4.11.1 화면 디자인
4.11.2 코드 작성
4.11.3 직접 표시 추가하기
4.11.4 표시 직접 구현하기
4.12 정리
5장 뷰를 담는 그릇 : 뷰 컨트롤러
5.1 회전에 대비하기
5.1.1 자동 회전(AutoRotate)
5.1.2 자동 크기 조절
5.1.3 자동 크기조절의 한계
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 탭 바 컨트롤러
5.4.1. 구현하기
5.4.2 탭 바 아이콘
5.4.3 배지(Badge)
5.5 이미지 피커
5.6 이메일 뷰 컨트롤러
5.7 정리
6장. 이벤트 처리
6.1 UIResponder와 응답 체인
6.1.1 기본 메서드
6.1.2 아이폰 OS 3.0에 추가된 메서드
6.1.3 UIResponder 체인 메서드
6.1.4 이벤트 흐름
6.2 멀티 터치 동작 원리
6.2.1 첫 번째 손가락
6.2.2 손가락 움직이기
6.2.3 멀티 터치
6.2.4 손 때기
6.3 멀티 터치 구현하기
6.4 두드림(tap)
6.5 닦아내기(Swipe)와 집기(Pinch)
6.5.1 닦아내기
6.5.2 집기(Pinch) 동작
6.6 흔들기와 실행 취소, 실행 복귀
6.6.1 NSUndoManager
6.7 베껴두기와 붙이기
6.8 정리하기
7장. 그래픽과 애니메이션
7.1 쿼츠(Quartz)
7.1.1 직선 그리기
7.1.2 사각형
7.1.3 다각형 그리기
7.1.4 이미지/비트맵 그리기
7.1.5 PDF 그리기
7.1.6 그래디언트 (Gradient)
7.1.7 글꼴 (Font)
7.1.8 베지어(Bezier) 곡선
7.1.9 쿼츠 정리
7.2 코어 애니메이션
7.2.1 속성 변화 애니메이션
7.2.2 고급 속성 변화 애니메이션
7.2.3 전환 효과 (Transition)
7.3 UIView 애니메이션
7.4 OpenGL
7.4.1 프로젝트 생성
7.4.2 MD2 모델 뷰어
7.4.3 OpenGL 정리
7.5 정리
8장. 동영상과 사운드
8.1. 오디오 형식
8.2 오디오 재생
8.2.1 짧은 효과음과 진동
8.2.2 일반 오디오 재생하기
8.2.3 AVAudioPlayer로 재생하기
8.3 오디오 큐 서비스
8.3.1 녹음하기
8.3.2 녹음 시간 표시하기
8.3.3 재생하기
8.3.4 UI 업데이트를 위한 콜백
8.4 오디오 세션
8.4.1 AVAudioSession
8.5 네트워크 오디오 스트림
8.6. 동영상 재생
8.7 아이튠스 라이브러리 접근하기
8.8 정리
9장. 아이폰 자원 활용
9.1 장치 정보 얻기
9.2 가속도계 이용하기
9.3 주소록 프레임워크
9.3.1 검색하기
9.3.2 수정하기
9.3.3 주소록 UI (AddressbookUI)
9.4 파일에 저장하기
9.4.1 접근할 수 있는 디렉터리
9.4.2 프로퍼티 리스트
9.4.3 고급 프로퍼티 리스트
9.4.4 아카이브 (Archive)
9.5 SQLite
9.5.1 데이터베이스 열기
9.5.2 쿼리 하기
9.5.3 데이터 변경하기
9.5.4 데이터베이스 닫기
9.6 코어 데이터
9.6.1 관리 객체 컨텍스트 생성하기
9.6.2 관리 객체 컨텍스트에 객체 가져오기
9.6.3 관리 객체 추가, 삭제
9.6.4 저장소에 기록하기
9.6.5 코어 데이터 정리
9.7 코어 로케이션
9.8 정리하기
10장. 네트워크 프로그래밍
10.1 푸시 통보 서비스 (Push Notification Service)
10.1.1 인증서 준비하기
10.1.2 OpenSSL
10.1.3 프로바이더 구현
10.1.4 메시지 구조
10.1.5 애플리케이션 구현
10.1.6 피드백
10.2 피어 투 피어 연결
10.2.1 예제 프로젝트 생성
10.2.2 델리게이트
10.3 음성 대화 추가하기
10.3.1 오디오 세션 설정하기
10.3.2 GKVoiceChatClient 프로토콜 구현
10.3.3 받은 데이터 알려주기
10.3.4 client 연결
10.3.5 대화 시작
10.4 정리
11장 설정 번들(Settings.bundle)
11.1 설정 애플리케이션이 설정 번들을 찾는 방법
11.2 예제 작성
11.3 설정 번들 파일 디자인하기
11.3.1 문자열 입력 추가하기
11.3.2 참, 거짓 스위치
11.3.3 다중 값 선택
11.3.4 슬라이더 추가하기
11.3.5 자식 항목 추가하기
11.4 새로운 파일을 설정 번들에 추가하기
11.5 지역화
11.6 애플리케이션에서 설정 값 접근하기
11.7 정리
12장 디버깅 가이드
12.1 Xcode로 디버깅하기
12.1.1 Xcode 화면 구조 설정하기
12.1.2 브레이크 포인트 설정하기
12.1.3 코드 실행하기
12.1.4 Objective-C 메서드에 브레이크 걸기
12.1.5 브레이크 포인트를 소리로 알려주기
12.1.6 브레이크 포인트에 동작 지정하기
12.2.7 와치 포인트 설정하기
12.2.8 메모리 덤프하기
12.2.9 디버깅 중이 아닌 애플리케이션의 NSLog 보기
12.3 인스투르먼츠(Instruments)
12.3.1 Leaks (메모리 누수 감지하기)
12.3.2 OpenGL ES 성능 확인
12.3.3 Activity Monitor
12.3.4 정리
12.4 Clang 정적 분석기
12.4.1 프로젝트 설정하기
12.4.2 설치하기
12.4.3 분석 진행
12.5 정리하기
13장 프로그래밍 기법과 팁
13.1 통보 (Notification)
13.1.1 통보 큐
13.2 프로퍼티와 접근자(Accessor)
13.2.1 synthesize 팁
13.2.2 프로퍼티 선언
13.2.3 메모리 해제
13.3 키-값 코딩 (Key-Value Coding)
13.3.1 예외 상황
13.4 키-값 감시 (Key-Value Observing)
13.4.1 수동으로 알리기
13.5 객체를 비교하는 방법
13.6 문자열 다루기
13.6.1 C 문자열로 초기화하기
13.6.2 문자열을 형식 문자로 구성하기
13.7 타이머 (NSTimer)
13.7.1 지정한 시간에 타이머 시작하기
13.8 스레드 기초
13.8.1 스레드 생성하기
13.8.2 스레드 메서드 구현하기
13.8.3 런 루프
13.8.4 스레드의 대안
13.9 메모리 관리
13.9.1 규칙1
13.9.2 규칙2
13.9.3 규칙3
13.9.4 규칙4
13.9.5 규칙5
13.9.6 규칙6
13.9.7 규칙7
13.10 빌드 시에 시뮬레이터와 실제 장치 구분하기
13.11 빌드 시에 SDK 버전 구분하기
13.12 무료 버전 타깃 구성하기
13.13 정리
14. 다국어 지원
14.1 국제화
14.2 아이콘 및 리소스 지역화
14.3 문자열 지역화
14.4 XIB 지역화
14.5 Info.pList 지역화
14.6 정리
15장 배포와 스토어 킷
15.1 개발을 위한 준비
15.1.1 개발 인증서 발급
15.1.2 개발 장비 등록
15.1.3 애플리케이션 ID (AppID) 만들기
15.1.4 프로비전 만들기 (Provisioning)
15.1.5 프로젝트 설정
15.2 배포 준비
15.2.1 배포 인증서
15.2.2 배포 프로비전
15.2.3 프로젝트 설정
15.2.4 AdHoc 프로젝트 설정
15.2.5 빌드 및 배포
15.2.6 Ad hoc 배포 사용하기
15.3 애플리케이션 내 판매 (In-App Purchase)
15.3.1 스토어 킷을 위한 사전 준비
15.3.2 스토어 킷의 클래스
15.3.3 상품 정보 얻기
15.3.4 구매하기
15.3.5 과거에 구매한 내역
15.4 정리
15.4.1 마치며
부록1. Xcode 단축키
부록2. 아이폰 3.0 클래스 계층도
'Books' 카테고리의 다른 글
| Xcode 3.2의 인터페이스 빌더에서 Identity 탭의 클래스 편집 (100) | 2009/09/13 |
|---|---|
| 아이폰 서적을 집필했습니다. (43) | 2009/07/23 |
| BookReview : iPhone In Action (0) | 2009/04/08 |
| BookReview: iPhone SDK Application Development, 1st edition (0) | 2009/04/07 |
| Book Review : Beginning iPhone Development (Exploring the iPhone SDK) (1) | 2009/04/05 |
Trackback Address :: http://maclove.pe.kr/trackback/35
- Tracked from puzit's me2DAY 2009/07/24 10:04 DELETE
Subject: puzit의 생각
오늘 좋은 정보가 쏟아지는군요~ RT korea_iphone님: 아이폰의 대한 책도 나왔네요! http://bit.ly/4u29L2 - Tracked from 도서출판 인사이트 2009/07/31 15:40 DELETE
Subject: 이제는 아이폰 SDK 3.0으로 개발하세요~!
얼마 전까지만 해도 개발자 세상에서 아이폰 프로그래밍은 빠뜨릴 수 없는 이야깃거리였고, 조금 차분해지긴 했지만 여전히 많은 분들이 아이폰 프로그래밍에 관심을 가지고 계시리라 생각합니다. 특히, 지난 6월 애플에서 아이폰 SDK 3.0을 소개했을 때는, '바로 이거다!' 싶은 새롭고 재미있는 기능들이 여럿 소개되었는데요. 백그라운드 프로세스의 효과를 얻을 수 있는 '푸시 통보 서비스(push notification service)' 아이폰끼리 연결할..

