이미 소장하고 있다면 판매해 보세요.
|
1부 개요
1장 개발 도구 둘러보기 엑스코드 인터페이스 빌더 정리 2장 간단한 아이폰 애플리케이션 만들기 템플릿을 이용한 프로젝트 생성 GUI 만들기 간단한 UIViewControlle 아이폰에서 돌려보기 정리 3장 시뮬레이터 시뮬레이터 UI 멀티터치 시뮬레이션 코어 로케이션 시뮬레이션 시뮬레이터 회전 시뮬레이터 파일시스템 시뮬레이터와 실제 하드웨어의 차이 실제 하드웨어에서 동작하지 않는 API 사용 회피 시뮬레이터와 하드웨어의 성능 차이 정리 2부 GUI 4장 아이폰 UI 기초 아이폰 홈 화면 시네마틱 UX 아이폰 내장 애플리케이션 사용자와 UI 사이에 발생하는 상호 작용 정리 5장 UIViewController 기본적인 모델, 뷰, 컨트롤러 디자인 패턴 UIViewController UIViewController의 메소드 오버라이딩 뷰 회전 관리 메모리 경고 처리 UIViewController 사용 코드 생성 UIViewController 헤더파일 작성 UIViewController 구현 인터페이스 빌더에 컨트롤러 추가 UIApplicationDelegate 개요 애플리케이션 델리게이트에서 모델 생성 윈도우에 뷰 추가 정리 6장 UITableView UITableViewDataSource와 UITableViewDelegate UITableView와 NSIndexPath UITableViewDataSource UITableViewDelegate 애플리케이션에 UITableView 추가하기 UITableViewDataSource 만들기 애플리케이션 동작 확인 행을 터치해 특정 동작을 수행하게 만들기 UITableView를 그룹 단위로 구성하기 모델에 주 정보 추가하기 UITableViewDataSource 수정하기 UITableView의 고급 설정 기능 테이블 가장자리에 알파벳 순으로 나열된 인덱스 추가하기 검색창 추가하기 정리 7장 UITableViewCell UITableViewCell UITableViewCell에 이미지 추가하기 UITableViewCell에 대한 고급 커스터마이즈 커스텀 셀 제작 시 고려할 성능 문제 UITableViewCell 재사용 재사용 식별자 정리 8장 UINavigationController 내비게이션 모델 UINavigationController 모델 UINavigationController 제작 UINavigationController 설정 UIViewController 추가와 제거 UIToolbar 추가 행 편집 기능 UINavigationController로 MyView 이동 EditViewController 제작 행 편집 행 추가 행 삭제 정리 9장 UIApplicationDelegate UIApplicationDelegate 존재 이유 애플리케이션 시작과 종료 애플리케이션 구동 시 호출되는 메소드 applicationWillTerminate 메소드 애플리케이션 동작 중 메시지 수신 자원 경고 처리 전화 수신과 슬립 상태 처리 상태 변화 원격 알림 메시지 관리 정리 10장 커스텀 UIView 코코아 터치 뷰 지오메트리 프로젝트에 커스텀 뷰 추가하기 커스텀 뷰 코드 작성하기 코어 그래픽스 drawRect 작성하기 정리 11장 터치 이벤트 처리 커스텀 UIView에서 멀티터치 처리 touchesBegan:withEvent: 구현 터치정보 NSSet touchesMoved:withEvent: 구현 touchesEnded:withEvent: 구현 멀티터치 이벤트 처리 터치 이벤트를 처리하도록 커스텀 뷰 예제 업데이트 터치를 이용한 원 이동 원 크기 조절 기능 추가 정리 12장 코코아 터치에서 제공하는 컨트롤 코코아 터치에서 제공하는 여러 가지 컨트롤 UISlider 인터페이스 빌더에서 UISlider 설정하기 UISlider 상태 업데이트하기 UITabBar 인터페이스 빌더에서 UITabBar 설정하기 UITabBar에 UITabBarItem 추가하기 UITabBar 고급 기능 설정하기 UIPickerView 인터페이스 빌더에서 UIPickerView 설정하기 UIPickerViewDataSource 생성하기 UIPickerView 델리게이트 생성하기 정리 13장 텍스트 입력 처리 인터페이스 빌더를 이용한 키보드 설정 대소문자 설정 자동 완성 기능 활성화와 해제 키보드 종류 설정 리턴 키 동작 설정 기타 설정 코드를 이용한 키보드 설정 키보드 표시 UITextInputTraits 키보드 이벤트 처리 UITextFieldDelegate 생성 키보드 표시를 위한 뷰 이동 정리 14장 코어 애니메이션으로 시네마틱 UI 만들기 UIView 애니메이션 메소드 CALayer를 이용한 코어 애니메이션 고급 기능 UIImageView를 이용한 애니메이션 정리 15장 OpenGL ES 사용 아이폰의 OpenGL ES 기능 기본적인 OpenGL 뷰 생성 정리 16장 사파리 이용하기 아이폰 웹 브라우저로 URL 열기 UIWebView 애플리케이션에 UIWebView 추가 URL 열기 UIWebViewDelegate 구현 애플리케이션 번들에 있는 HTML 로딩하기 정리 3부 데이터 작업 17장 사용자 데이터 저장 NSUserDefaults 객체 접근 NSUserDefaults에서 데이터 읽고 쓰기 기본 사용자 데이터 설정 애플리케이션 설정 설정 번들 추가 설정 내용 추가 정리 18장 코어 데이터를 이용한 데이터베이스 코어 데이터 기본 구성 Favorite Cities 예제에 코어 데이터 지원 기능 추가 애플리케이션 델리게이트 변경 Managed Object Model 활용 CRUD 생성 읽기 업데이트 삭제 Favorite Cities 예제 업데이트 코어 데이터 활용 분야 코어 데이터 활용에 부적합한 분야 정리 19장 네트워크로 외부와 통신 웹 접근 파운데이션 클래스에서 URL 사용 NSURLRequest와 NSURLConnection 사용 메시지 UI 프레임워크를 이용해 애플리케이션에서 이메일 발송 코어 파운데이션 소켓 CFSocket CFHost를 이용한 호스트 정보 획득 CFStream 봉주르 탐색 봉주르 서비스 탐색 NSNetService 정리 20장 푸시 알림 서비스 푸시 알림 서비스 구조 푸시 알림 커뮤니케이션 푸시 알림의 보안 푸시 알림 메시지용 인증서 서버단의 푸시 알림 서비스 개발 루비로 작성한 푸시 알림 제공자 푸시 알림 메시지 전송 피드백을 이용한 전송 확인 아이폰 클라이언트에서 푸시 알림 사용 알림 메시지 수신 등록 애플리케이션에서 알림 메시지 수신 정리 21장 게임킷 API P2P 연결 장치 검색 세션 작업 게임 내 음성 기능 정리 22장 잘라내기, 복사, 붙여넣기 표준 컨트롤에서 복사와 붙여넣기 기능 페이스트보드의 종류 UIPasteboard 사용 커스텀 뷰에서 잘라내기, 복사하기, 붙여넣기 메뉴 표시를 위한 touchesEnded:withEvent: 구현 copy: 메소드 구현 paste: 메소드 구현 동작 방식 정리 23장 지도 API MKMapView를 이용한 내장 지도 표시 MKMapView 생성 지도 영역 지정 지도 상에 설명 추가 설명과 지도 성능과의 관계 좌표 변환 정리 4부 미디어 24장 아이폰에서 지원하는 미디어 타입 아이폰에서 지원하는 오디오 포맷 압축 방식 오디오 포맷 비압축 방식 오디오 포맷 아이폰에서 지원하는 비디오 포맷 정리 25장 오디오 재생 AV 파운데이션 프레임워크 AVAudioSession AVAudioSessionDelegate AVAudioPlayer로 오디오 재생하기 AVAudioPlayerDelegate OpenAL로 오디오 재생하기 정리 26장 아이팟 라이브러리 접근 미디어 플레이어 프레임워크 작업 미디어 라이브러리 접근 MPMediaPickerController를 이용하는 방법 미디어 검색 플레이어 컨트롤러 미디어 표지 정리 27장 오디오 녹음 AVAudionSession 설정 AVAudioRecorder 생성 음성 녹음기 생성 정리 28장 애플리케이션에서 비디오 재생 애플리케이션 번들에 포함된 비디오 파일 재생 인터넷을 통한 비디오 재생 정리 5부 아이폰 하드웨어 다루기 29장 디바이스 정보 가져오기 배터리 상태 확인 접근 센서 디바이스 메타데이타 정리 30장 코어 로케이션 현재 위치 알아내기 CLLocationManager 할당하기 델리게이트 설정 CLLocationManagerDelegate 프로토콜 구현 위치 업데이트 시작과 중단 구글 맵에 위치 표시하기 좌표 오차 줄이기 위치 정보 필터링 완성된 예제 코드 아이폰 3GS의 나침반 기능 정리 31장 가속도계 현재 방향 알아내기 기포 수준기 만들기 UIAcceleration 오브젝트 쉐이크 이벤트 쉐이크 이벤트 검출 drawRect motionBegan과 motionEnded 작성하기 모션 이벤트 취소하기 정리 32장 아이폰 주변 장치 아이폰에 연결할 주변장치 생성하기 EAAccessoryManager로 현재 연결된 주변장치 찾기 EAAccessor 클래스 EASession NSStream으로 디바이스와 통신하기 정리 6부 애플리케이션 배포 33장 코드 서명 개발 인증서 받기 프로비저닝 프로세스 개발, 배포, 애드혹 프로비저닝 프로비저닝 프로파일 설치 서명한 애플리케이션의 동작 서명할 애플리케이션 설정하기 애드혹 빌드 엑스코드에서 빌드 설정하기 사용자에게 배포하기 정리 34장 애플리케이션 확장 판매할 수 있는 상품의 종류 잠금 해제 컨텐츠 아이튠즈 커넥트에 구매 가능한 컨텐츠 준비 스토어 킷 작업 컨텐츠 구매 기능 활성화 검사 스토어 표시 상품 구매 과금 처리 트랜잭션 유효성 검사 컨텐츠 잠금 해제 구매한 컨텐츠 복구 애플리케이션 내 구매 테스트 정리 |
|
이 책을 집필한 목적은 초보 아이폰 개발자와 경험이 있는 아이폰 개발자에게 유용한 정보를 제공하는 데 있다. 주로 아이폰 개발에 필요한 일반적인 기술을 포함하고 있어 이제 막 아이폰 개발자로 발돋움하려는 사람에게도 도움을 줄 수 있으리라 생각한다.
코코아 터치 프로그래밍과 관련한 책을 쓰는 일은 정말 어려운 작업이다. 독자의 실력을 판단하기가 매우 힘들기 때문이다. 오브젝티브C를 이미 알고 있을까? 맥OS X용 애플리케이션을 개발한 경험이 있을까? 책을 쓰기 시작할 때 스스로에게 던졌던 질문들이다. 결국 나는 새로운 개발자와 경험이 있는 개발자가 함께 읽을 수 있는 책을 쓰기로 결정했고, 모두에게 유용한 책을 쓰려고 노력했다. 아이폰 운영체제의 새로운 기술을 습득하고, 일반적인 아이폰 개발에 대해서도 배울 수 있는 기회를 제공했다. 여러분이 이미 어느 정도는 오브젝티브C에 익숙하며, 전문가일 필요는 없지만 어느 정도는 맥 OS X이나 아이폰 개발에 경험이 있으리라 가정했다. 맥 OS X 개발이나 아이폰 개발이 처음인 독자라면, 이 책과 함께 오브젝티브C와 관련된 책을 읽어보길 권한다. 시장에는 많은 책이 있지만, 다른 주제를 가지고 오브젝티브C를 다루는 책보다는 오브젝티브C 언어 자체에 중점을 둔 책을 권한다. 오브젝티브C 언어의 문법 등에 익숙해질 만큼 책을 읽었다면, 이 책의 1장을 열어도 문제가 없을 것이다. 이미 맥 OS X용 애플리케이션을 개발해봤지만, 아이폰용 애플리케이션을 개발한 적이 없다면, 이미 오브젝티브C는 잘 알고 있을 것이고 아이폰용 애플리케이션 개발에 사용되는 다양한 도구에도 익숙한 상태일 것이다. 아이폰 개발이 맥OS X 개발과 비슷하기는 하지만, 완전히 일치하지는 않는다. 따라서 1장은 건너뛰고 2장부터 시작해 아이폰 애플리케이션을 처음부터 개발하는 방법을 습득하자. 아이폰 개발에 경험이 있다면, 아이폰 개발과 관련된 기본적인 지식은 알고 있으므로, 아이폰 OS와 관련된 부분인 5장부터 찾아 보길 바란다. 이 책의 모든 장은 새롭게 업데이트된 아이폰 OS API를 기준으로 작성했다. 따라서 이미 UI 뷰 컨트롤러 등에 익숙한 상태라면 OS 3 이후에서 새로 추가된 기능들이 있는 5장부터 읽는 편이 바람직하다. 이 책은 마치 세 가지 주제를 따로 다루는 별도의 장이 있는 것처럼 작성됐기 때문에, 이 책을 위와 같은 방법으로 잘 활용하길 바란다. 부디 이 책이 흥미롭길 바란다. 개인적으로는 좋은 기술 서적을 책장에만 진열하지 않고, 책상의 한 켠에 늘 놓고 몇 번이고 참고한다. 이 책도 여러분에게 좋은 대접을 받길 바라며, 낡고 해질 때까지 몇 년이고 유용하게 사용해주길 바란다. 지바 드보 book@random-ideas.net ---저자 서문 중에서 코코아 터치는 아이팟, 아이폰, 아이패드용 애플리케이션을 제작하기 위해 애플에서 제공하는 프레임워크로서, 이름에서 알 수 있듯이 기존 맥 OS용 코코아 프레임워크를 iOS에 맞게 재구성한 것이다. 단순히 다양한 기능을 API로 표현하는 데 그치지 않고 오랜 기간 축적된 노하우와 디자인 패턴이 절묘하게 녹아 들어 있어서, 아이폰 앱 개발에 없어서는 안 될 필수 도구로 손꼽힌다. 이처럼 코코아 터치가 차지하는 큰 비중에 비해, 코코아 터치란 무엇인지조차 모르는 사람이 많아 코코아 터치의 개념 자체를 묻는 질문을 종종 받는다. 물론 앱스토어에서 엄청난 다운로드 수를 자랑하는 뛰어난 앱을 제작하면 그만일 수도 있지만, 코코아 터치에 대한 충분한 이해가 뒤따라 준다면 뛰어난 기획부터 앱스토어 등록에 이르는 시간을 단축시킬 수 있을 뿐만 아니라 애플리케이션의 품질도 향상시키는 데 도움이 될 거라 믿는다. 이 책에서는 오브젝티브C와 엑스코드 기반 개발 환경을 어느 정도 접해 본 개발자를 대상으로 코코아 터치 프레임워크에서 제공하는 전반적인 기능을 하나씩 설명한다. 하지만 예제 코드가 단계별로 소개되므로 처음 아이폰 개발에 뛰어든 독자도 직접 손과 눈으로 확인하면서 책에서 설명하는 내용을 쉽게 이해할 수 있으리라 생각한다. 예제 코드는 2010년 9월 중순 기준으로 최신 버전인 Xcode 3.2.4와 iOS SDK 4.1을 대상으로 했으며, 에이콘출판사 도서 정보 페이지(http://www.aconrpub.co.kr/book/cocoatouch)에서 다운로드 할 수 있다. 물론 완전 초보를 위한 그대로 따라하기 스타일의 책이 아닌 만큼, 책을 읽고 생각하면서 코드를 직접 다뤄보면 훨씬 도움이 될 것이다. 마지막으로, 책을 읽으면서 애플 개발자 사이트의 iOS 레퍼런스 라이브러리(http://developer.apple.com/library/ios/navigation/)를 참조해 이 책에서 미처 다루지 못한 부분과 최신 iOS 버전에 맞는 정보를 보완해 이 책을 200% 활용하길 ?란다. 남기혁 ---옮긴이의 말 중에서 |
|
★ 이 책에서 다루는 내용 ★
■ 엑스코드, 인터페이스 빌더를 비롯한 다양한 도구 설명 ■ 내비게이션과 커스텀 뷰를 사용하는 복잡한 GUI 구성 ■ 코어 데이터를 통해 데이터베이스를 만들고, 엑스코드로 직접 스키마 설계 ■ 아이폰의 멀티터치 기능을 이용한 애플리케이션 제작 방법 ■ 애플 푸시 알림 서비스 ■ 맵 킷 API로 맵 임베딩하기 ■ 오디오 녹음, 비디오 재생, 아이팟 라이브러리 접근하는 방법 ■ 개발 인증서를 받아 애플리케이션에 서명하는 방법 ■ 스토어 킷으로 애플리케이션 안에서 부가 기능과 컨텐츠 판매 |