책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 모바일/무선/임베디드 프로그래밍
· ISBN : 9788992939386
· 쪽수 : 750쪽
· 출판일 : 2009-10-29
책 소개
목차
1장 정글에 온 것을 환영한다
- 이 책은 어떤 종류의 책인가
- 시작하기 전에 준비해 두어야 하는 것들
- 시작하기 전에 알아두어야 할 것들
- 아이폰 코딩은 어떤 점이 다른가?
- 이 책의 구성
- 준비가 되었는가?
2장 티키신 달래기
- Xcode에서 프로젝트 설정하기
- 인터페이스 빌더 소개
- 아이폰을 빛낼 몇 가지 마무리 손질
- 마무리하며
3장 기본적인 상호작용 다루기
- 모델-뷰-컨트롤러 패러다임
- 프로젝트 생성하기
- 뷰 컨트롤러 생성하기
- 애플리케이션 델리게이트 사용하기
- MainWindow.xib 편집하기
- Button_FunViewController.xib 편집하기
- 마무리하며
4장 사용자 인터페이스, 좀 더 재미있게 만들기
- 컨트롤로 가득 찬 화면
- 능동, 정적, 수동 컨트롤
- 애플리케이션 만들기
- 빌드하고 실행하기
- 슬라이더와 레이블 구현하기
- 스위치, 버튼, 분할 컨트롤 구현하기
- 액션 시트와 경고창 구현하기
- 버튼 멋 내기
- 좋은 메모리 사용자 되기
- 결승점 통과하기
5장 자동회전과 자동크기조절
- AutoSize 속성으로 회전 처리하기
- 회전할 때 뷰 재구성하기
- 뷰 전환하기
- 회전 기능을 마치면서
6장 멀티뷰 애플리케이션
- 뷰 스위처 애플리케이션
- 멀티뷰 애플리케이션의 구조
- 뷰 스위처 만들기
- 전환 시 애니메이션 주기
- 끝내기
7장 탭바와 피커
- 피커 애플리케이션
- 델리게이트와 데이터소스
- 탭바 프레임워크 설정하기
- 날짜 피커 구현하기
- 단일 컴포넌트 피커 구현하기
- 멀티컴포넌트 피커 구현하기
- 의존적인 컴포넌트 구현하기
- 커스텀 피커로 간단한 게임 만들기
- 마지막 회전
8장 테이블 뷰 입문
- 테이블 뷰의 기초
- 간단한 테이블 구현하기
- 이미지 추가하기
- 추가적인 설정
- 맞춤형 테이블 뷰 셀 만들기
- 그룹으로 묶은 섹션과 인덱스로 구분한 섹션
- 검색창 구현하기
- 테이블에 모두 넣기
9장 내비게이션 컨트롤러와 테이블 뷰
- 내비게이션 컨트롤러
- 여섯 부분으로 구성된 계층구조 애플리케이션, Nav
- Nav 애플리케이션의 뼈대 구성하기
- 첫 번째 하위컨트롤러: 더보기 버튼 뷰
- 두 번째 하위컨트롤러: 체크리스트
- 세 번째 하위컨트롤러: 테이블 열 위에 컨트롤 추가하기
- 네 번째 하위컨트롤러: 이동 가능한 열
- 다섯 번째 하위컨트롤러: 삭제 가능한 열
- 여섯 번째 하위컨트롤러: 편집 가능한 상세 창
- 한 가지가 더 남아있다…
- 결승선 테이프 끊기
10장 애플리케이션 설정과 사용자 기본값
- 세팅 번들 이해하기
- AppSettings 애플리케이션
- 세팅 번들 다루기
- 애플리케이션에서 설정 읽기
- 애플리케이션에서 설정 바꾸기
- 스코티, 순간이동을 시작해 주게
11장 기본적인 데이터 저장 방법
- 애플리케이션 샌드박스
- 파일 저장 기법
- 애플리케이션 데이터 저장하기
- 퍼시스턴스 애플리케이션
- 아카이빙 애플리케이션
- 아이폰에 내장된 SQLite3 사용하기
- Core Data 사용하기
- 끈기에 대한 보상
12장 쿼츠와 OpenGL을 이용한 그리기
- 그래픽 세계의 두 뷰
- 드로잉 애플리케이션
- 드로잉을 위한 쿼츠 사용법
- QuartzFun 애플리케이션 만들기
- OpenGL의 기본
- 빈 화면 그리기
13장 탭, 터치 그리고 제스처
- 멀티터치 관련 용어
- 리스폰더 체인
- 멀티터치 아키텍처
- 터치 익스플로러 애플리케이션
- 스와이프 애플리케이션
- 멀티 스와이프 구현하기
- 멀티탭 인식하기
- 핀치 인식하기
- 커스텀 제스처 정의하기
- 웨이터? 확인 부탁해요!
14장 여기가 어디지? 코어 로케이션을 이용한 길 찾기
- 로케이션 매니저
- 로케이션 매니저 델리게이트
- 코어 로케이션 사용하기
- 여러분이 어디에 가더라도, 그곳에 여러분이 있다
15장 야호!
- 가속도 센서의 물리법칙
- 가속도 센서 사용하기
- 흔들어서 깨뜨리기
- 구슬 굴리기 프로그램
- 구르기
16장 아이폰의 카메라와 포토 라이브러리
- 이미지 피커와 UIImagePickerController 사용하기
- 이미지 피커 컨트롤러의 델리게이트 구현하기
- 카메라와 라이브러리 길거리 테스트
- 누워서 떡 먹기!
17장 애플리케이션 지역화
- 지역화 아키텍처
- 문자열 파일 사용하기
- 실생활에서의 아이폰: 애플리케이션 지역화하
- 안녕, 또 만나요
18장 다음은 어디로?
- 새로운 여행 준비
- 작별 인사
부록 아이폰 OS 3 및 SDK 3.1
A. 강력해진 UIKit 프레임워크
B. 코어 데이터
C. 자르기, 복사하기, 붙여넣기
D. External Accessory 프레임워크
E. MapKit 프레임워크
F. MessageUI 프레임워크
G. AV Foundation 프레임워크
H. Media Player 프레임워크
I. 애플 푸시 노티피케이션 서비스
J. Store Kit 프레임워크
K. Game Kit 프레임워크
L. Mac OS X 10.6 스노 레퍼드와 Xcode 3.2
M. 비디오 촬영과 편집
N. OpenGL ES 2.0
O. iOS 3.2 (아이패드)
P. 제스처 인식
Q. 드로잉
R. 유니버설 애플리케이션
S. iOS 4 (아이폰 4)
T. 멀티태스킹
U. 이미지 처리
V. 이벤트 킷(Event Kit)
W. 아이애드(iAd)
X. 아이폰 4 대응
저자소개
리뷰
책속에서
최근 신문 기사들과 화제들을 언급하면서 아이폰을 소개하는 것이 이제는 민망하게 느껴질 정도로 아이폰은 이미 모바일 시장에서 상당한 위치를 차지하고 있다. 아이폰 개발은 분야를 막론하고 많은 개발자들 사이에서 일상적인 대화의 소재로 사용되고 있으며 앱 스토어에 접속하여 국내 개발자들이 만든 애플리케이션을 찾는 것은 그리 어려운 일이 아니다. 이러한 아이폰의 인기에 힘입어 Mac OS X, 오브젝티브C, 코코아 프로그래밍에 대한 관심도 충분히 높아진 상태이다. 특히 아이폰의 UI는 기존의 모바일 기기에서는 찾아볼 수 없었던 혁신적인 기능이며 애플이었기 때문에 가능했던 결과라고 볼 수 있다.
애플이 이와 같은 혁신적인 UI를 만들 수 있었던 큰 이유 중 하나는 애플이 하드웨어와 소프트웨어 모두에 강한 기업이기 때문이다. 마이크로소프트의 경우 최고의 SW 회사라고 말할 수 있지만 Windows Mobile을 여러 제조회사에게 팔아야 했기 때문에 좀 더 범용적인 기능을 고려하여 설계할 수밖에 없었을 것이다. 하지만 아이폰의 경우 운영체제에서 필요하다면 하드웨어의 스펙을 변경하는 것이 가능했고, 하드웨어에서 제약을 가지는 부분은 운영체제의 설계를 변경하여 단점을 극복하는 것이 가능했다. 애플의 이러한 장점은 임베디드라는 제약조건이 심한 환경에서 아이폰과 같은 혁신적인 기기를 빠른 시간에 만드는 데 큰 도움이 될 수 있었다. 따라서 소프트웨어 개발자의 입장에서 본다면 아이폰은 배울 점이 많고 시도해 볼 만한 가치가 있는 플랫폼이다. 플랫폼 개발자의 경우 아이폰이 하드웨어적인 제약조건을 극복하기 위해 어떠한 아키텍처로 설계되었으며 모듈 간의 이벤트를 전달하기 위해 어떠한 정책을 도입하였는지에 대해 살펴볼 수 있다. 또한, 애플리케이션 개발자는 하드웨어 특성을 살린 API들을 사용하여 데스크톱 환경에서는 구현할 수 없었던 독창적인 애플리케이션들을 구현해 볼 수 있다.
아이폰의 성공에 촉매제 역할을 한 것은 앱 스토어라는 소프트웨어 판매 인프라이다. 이는 많은 개발자들의 관심을 아이폰으로 돌리는 데 중심점 역할을 하였으며, 지금도 수많은 국내 개발자들이 세계 시장을 대상으로 한 애플리케이션의 개발과 판매에 도전하고 있다. 어찌 보면 일확천금을 노리는 도전이 될 수도 있겠지만 애플은 자신들만의 방법으로 전 세계의 개발자에게 공평한 기회를 준 것이다.
이 책은 Windows API나 MFC 입문서처럼 아이폰에서 코코아 터치 프로그래밍을 하는 데 필요한 기본적인 내용들을 다루고 있다. 따라서, 이 책만을 마스터한다고 해서 아이폰 프로그래밍의 고수가 될 수 있는 것은 아니다. 하지만 아이폰과 코코아 터치에는 다른 GUI 프로그래밍에서는 볼 수 없었던 독특한 요소들이 많기 때문에 이 책에 나와있는 기본적인 내용과 원리들은 반드시 학습해야만 한다. 스스로가 MFC나 GTK 등을 이용한 프로그래밍의 고수라고 자신할 수 있을지라도 아이폰 프로그래밍을 처음 접하는 거라면 이 책에서 설명하는 기본기들을 반드시 익혀야 한다. 만일 이러한 기본기들을 무시한 채 덤벼든다면 아이폰 애플리케이션을 개발하는 데 상당한 어려움이 뒤따를 것이다.
이 책의 1장과 2장에서는 전반적인 배경 지식과 툴의 소개 및 사용법에 대해 설명하고 있다. 3장에서는 MVC와 같이 GUI 프로그래밍에서 사용되는 일반적인 패턴에 대해 소개하고 있으며 간단한 애플리케이션을 통해 이벤트 전달과 액션 메서드(일종의 콜백 함수)를 호출하는 방법을 설명한다. 4장부터 9장까지는 코코아 터치에서 제공하는 기본 컴포넌트들에 대한 사용법이 나와 있으며, 10장에서는 애플리케이션의 설정을 구현하는 방법에 대해 소개하고 있다.
11장부터는 다소 고급스러운 주제들을 다루고 있으며 각각의 기술에 대한 기본적인 개념과 활용방법을 제시하고 있다. 11장에서는 애플리케이션을 구현할 때 데이터를 저장하는 다양한 기법들에 소개하고 있으며 데이터베이스를 프로그래밍을 경험해 본 개발자라면 친근하게 느껴질 것이다. 12장에서는 그래픽스 프로그래밍을 위해 쿼츠와 OpenGL ES를 사용하는 법에 대해 소개하며 아이폰이 어떠한 과정을 거쳐서 드로잉 하는지에 대한 설명이 나와있다. 기본 개념에 대한 설명이 자세히 나와있기 때문에 그래픽스 프로그래밍을 경험해 보지 않았던 개발자라면 이 장의 내용이 큰 도움이 될 것이다.
13장에서는 오직 아이폰에서만 사용할 수 있는 독특한 기능인 아이폰의 터치와 제스처를 처리하는 방법을 다루고 있다. 이 책의 가장 재미있는 내용 중 하나가 아닐까 생각되며, 사용자의 제스처가 처리되는 원리와 커스텀 제스처를 구현하는 방법에 대해 설명하고 있다. 14장과 16장에서는 아이폰에만 제공되는 GPS와 카메라에 대해 설명하고 있으며 현재 아이폰의 출시가 기대되는 시점에서 이러한 기능들을 미리 공부해 두는 것도 좋다고 생각한다.
15장에서는 아이폰 애플리케이션 개발자라면 반드시 활용해야 할 가속도 센서를 다루는 법에 대해 설명하고 있으며, 17장에서는 애플리케이션의 앱 스토어 판매에 대비하여 애플리케이션을 지역화하는 법에 대해 다루고 있다. 마지막으로 18장에서는 아이폰 개발에 도움이 되는 다양한 정보들이 나와 있다.
물론, 이 책이 기본서라고 할지라도 오브젝티브C에 대한 기본적인 문법과 OOP 프로그래밍에 대한 어느 정도의 이해를 필요로 한다. 만일 이에 대한 사전지식이 없는 상태라면 어느 정도는 익혀둘 필요가 있다. 이와 관련하여 한글로 번역된 좋은 서적도 이미 나와있는 상태이며 인터넷에서도 오브젝티브C에 관련된 자료들을 쉽게 구할 수 있다.
변화는 항상 예고 없이 다가온다. 혁신적인 기술이 나타날 때마다 빠르게 익혀두지 않으면 도태될 수 있는 직업이 개발자이다. MS의 윈도는 오랜 기간 동안 PC 플랫폼의 독보적인 위치를 차지하고 있었으며, 인터넷의 보급으로 웹이라는 새로운 플랫폼 환경이 등장하면서 구글이 웹 플랫폼의 강자로 떠올랐다. 개인적인 생각으로 모바일 플랫폼 시장은 아직 춘추전국 시대라고 생각되며 애플은 이러한 혼란스러운 시기에 그들만의 강력한 무기를 내놓은 셈이다. 하지만 모뎀을 이용한 통신에서 전용선을 이용한 통신으로 생활 환경이 바뀐 것처럼 모바일 인터넷 인프라가 정착되고 내년 이맘때가 되면 소프트웨어 시장이 어떻게 바뀔지는 아무도 모르는 일이다. 여러분이 새로운 모바일 기술의 물결에 동참하고 싶다면 이 책의 제목처럼 아이폰 프로그래밍을 시작할 것을 권장한다. 아이폰이라는 플랫폼과 오브젝티브C 그리고 코코아의 매력에 충분히 빠져들 수 있을 것이며 이 책은 아이폰 개발에 대한 기본기를 익히는 데 큰 도움을 줄 것이다. (옮긴이의 글 중에서)