| 000 | 01161camcc2200361 c 4500 | |
| 001 | 000045688360 | |
| 005 | 20120201165916 | |
| 007 | ta | |
| 008 | 120131s2012 ulka 001c kor | |
| 020 | ▼a 9788994774084 ▼g 93560 | |
| 035 | ▼a (KERIS)REQ000021944732 | |
| 040 | ▼a 211020 ▼c 211020 ▼d 211020 ▼d 244002 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 082 | 0 4 | ▼a 005.26 ▼2 22 |
| 085 | ▼a 005.26 ▼2 DDCK | |
| 090 | ▼a 005.26 ▼b 2012 | |
| 100 | 1 | ▼a Hillegass, Aaron |
| 245 | 1 0 | ▼a iOS 날개를 달다 : ▼b 아론 힐라가스의 아이폰/아이패드 프로그래밍 / ▼d 아론 힐리가스, ▼e 조 콘웨이 지음 ; ▼e 최윤선, ▼e 백선덕 옮김 |
| 246 | 1 9 | ▼a iOS programming : ▼b the Big Nerd Ranch guide ▼g (2nd ed.) |
| 246 | 3 | ▼a 아이오에스 날개를 달다 |
| 260 | ▼a 서울 : ▼b BJ퍼블릭, ▼c 2012 | |
| 300 | ▼a 639 p. : ▼b 삽화 ; ▼c 25 cm | |
| 440 | 0 0 | ▼a 날개를 달다 시리즈 ; ▼v 002 |
| 500 | ▼a 색인수록 | |
| 630 | 0 0 | ▼a iOS (Electronic resource) |
| 650 | 0 | ▼a Application software ▼x Development |
| 700 | 1 | ▼a Conway, Joe, ▼e 저 |
| 700 | 1 | ▼a 최윤선, ▼e 역 |
| 700 | 1 | ▼a 백선덕, ▼e 역 |
| 900 | 1 0 | ▼a 힐리가스, 아론, ▼e 저 |
| 900 | 1 0 | ▼a 콘웨이, 조, ▼e 저 |
| 945 | ▼a KLPA |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.26 2012 | 등록번호 121216689 (8회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.26 2012 | 등록번호 121216690 (7회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
는 iOS, Xcode 및 iPad 개발을 아우르는 내용으로 업데이트되고 확장되어 iOS 앱을 개발하기 위한 필수적인 도구와 기법을 안내한다. Big Nerd Ranch에서 저자들의 인기 있는 강의 프로그램인 iOS 부트캠프 코스와 검증된 강의 방법에 기초를 두고 있다.
이 책의 사용법
이 책은 우리가 빅 너드 랜치(Big Nerd Ranch: 필자들이 운영하는 교육 프로그램)에서 가르치는 수업에 기본을 두고 있으며 우리의 수업방법에 맞게 만들어졌다.
"난 매일 한 장씩 공부할 거야."와 같은 실현 가능한 목표를 세워라. 한 장을 공략하려 할 때 적어도 한 시간은 방해 받지 않을 조용한 장소를 찾아가라. 이메일, 트위터 프로그램, 채팅 프로그램을 모두 꺼라. 멀티태스킹보다는 집중이 필요하다.
실제로 프로그래밍을 해라. 먼저 한 장을 전부 읽어도 된다. 하지만 직접 코딩을 해야 비로소 진정으로 자기 것이 된다. 프로그램을 작성해봐야, 더 중요하게는 디버깅을 해 봐야 진정으로 개념을 이해할 수 있다.
몇몇 연습문제는 보조적인 파일을 필요로 한다. 예를 들어 첫 번째 장에서는 퀴즈 앱을 위한 아이콘이 필요하다. 리소스와 솔루션은 다음 웹 사이트에서 내려받을 수 있다:
- http://www.bignerdranch.com/solutions/iOSProgramming.zip
배우는 방법에는 두 가지가 있다. 남북전쟁에 대해 배울 때는 여러분이 이미 이해한 것에 구체적인 사실들만 더해가면 된다. 우리는 이것을 "이지 러닝(Easy Learning)"이라 한다. 그렇다. 남북전쟁에 대해 배우는 것은 시간이 오래 걸릴 수는 있지만 당황할 필요 없이 차근히 하기만 하면 누구나 할 수 있다.
그러나 iOS 프로그래밍은 "하드 러닝(Hard Learning)"이다. 아마 처음 며칠은 상당히 혼란스러울 것이다. 이 책을 쓰면서 여러분의 학습곡선을 완만하게 하려고 노력했다. 여러분이 좀 더 쉽게 배울 수 있는 두 가지 방법은 다음과 같다:
■ 이미 iOS 애플리케이션을 만드는 방법을 알고 있으며 당신의 질문에 답해 줄 사람을 찾아라. 특히 첫 앱을 디바이스에 올릴 때에는 경험자의 도움이 없다면 절망적인 상황에 빠질 수도 있다.
■ 잠을 충분히 잔다. 잠이 모자라면 뭘 배웠는지 기억하지 못한다.
이 책의 구성
이 책의 각 장은 다음과 같이 구성되어 있다. 먼저 iOS 개발에 대한 하나 이상의 개념을 가르치고 나서 실제로 프로그래밍을 하게 한다. 연습이 더 필요하다고 생각되면 각 장의 뒷부분에서 도전해볼 만한 주제를 소개한다. 최소한 몇 개는 도전해보길 권장한다. 이 주제들은 각 장에서 배운 개념을 더욱 공고하게 다져주며 iOS 프로그래밍에 자신감을 갖게 해준다. 마지막으로 각 장의 마지막에 나오는 "좀더 흥미 있는 분을 위해" 섹션에서는 앞에서 소개한 개념을 활용할 방법을 설명한다.
1장에서는 어느 정도 쉬운 앱을 개발하고 디바이스에 설치하면서 iOS 프로그램을 배우게 된다. 프로젝트 및 파일을 생성하는 과정을 겪으면서 Xcode와 iOS 시뮬레이터를 충분히 경험하게 될 것이다.
2장과 3장에서는 오브젝티브-C와 메모리 관리에 대한 개요를 배운다. iOS 앱을 만들지는 않지만 RandomPossessions라는 툴을 작성하고 디버깅할 것이다. (이 툴은 계속 사용될 것이며 10장에서 소개되는 Homepwner 앱에서는 이와 관련된 클래스를 사용하게 될 것이다.)
4장과 5장에서는 코어 로케이션과 맵 킷 프레임워크를 배우고 Whereami라는 지도 앱을 만들 것이다. 델리게이션 디자인 패턴, 프로토콜, 프레임워크, 객체 다이어그램 및 애플 문서를 사용해 볼 것이다.
6장과 7장에서는 Hypnosister와 HypnoTime 앱을 통해 iOS 유저 인터페이스에 초점을 맞출 것이다. 스크롤, 확대, 탭 바를 이용한 화면 간 이동과 함께 뷰와 뷰 컨트롤러를 사용해본다.
8장에서는 가속센서를 다룬다. 흔들기 제스처를 포함한 동작 이벤트를 다루기 위해 가속센서에서 데이터를 가져오고, 필터링하고, 사용하는 법을 배운다. HypnoTime 앱에 새로운 기능을 추가하기
위해 가속센서의 데이터를 사용하게 된다.
9장에서는 노티피케이션과 회전에 대해 배우면서 HeavyRotation이란 앱을 만든다. 또한 HeavyRotation을 아이패드 화면에도 잘 맞도록 하기 위해 오토리사이징을 사용할 것이다.
10장에서는 이 책에서 가장 큰 애플케이션인 Homepwner를 소개한다("Homepwner"는 오타가 아니다. "pwn"의 의미는 www.urbandictionary.com에서 찾을 수 있다). 이 앱은 화재나 재난에 대비해 여러분의 소지품 목록을 기록하고 보관한다. Homepwner는 총 아홉 개의 장을 통해 구현이 완료된다.
10장, 11장, 16장에서 여러분은 정보 목록을 표시한다. 테이블 뷰, 뷰 컨트롤러, 데이터 소스에 관해 배운다. 데이터를 테이블에 표시하는 방법, 사용자가 테이블을 편집할 수 있게 만드는 방법, 인터페이스를 향상시키는 방법을 배운다.
12장에서는 7장에서 배운 내비게이션에 대해 상세히 다룬다. UINavigationContoller를 사용하는 방법을 배우고 Homepwner에 좀 더 정교한 인터페이스와 네비게이션 바를 추가한다.
13장에서는 카메라로 사진을 찍는 방법과 이미지를 Homepwner에서 표시하고 저장하는 방법을 배운다. NSDictionary와 UIImagePickerController도 배울 것이다.
14장에서는 아이패드를 위한 UIPopoverController와 모달 뷰 컨트롤러에 대해 배운다. 여기에서는 Homepwner를 아이폰과 아이패드 모두에서 자연스럽게 동작하는 앱으로 만든다.
15장에서는 데이터를 저장하고 불러오는 방법에 대해 살펴본다. 특히 NSCoding 프로토콜을 사용해 Homepwner 앱에 데이터를 저장할 것이다. 또한 멀티태스킹과 액티브, 백그라운드, 일시 중지와 같이 앱 상태를 변환하는 방법을 보여준다.
17장은 코어 데이터에 대한 도입부다. NSManagedObjectContext를 사용해 데이터를 저장하고 불러오도록 Homepwner 앱을 변경할 것이다.
18장에서는 국제화(internationalization) 및 지역화(localization)의 개념과 기법을 소개할 것이다. Homepwner를 지역화하면서 NSLocale, 문자열 테이블, NSBundle에 대해 배울 것이다. 이 장에서 Homepwner 앱이 완성된다.
19장에서는 사용자 설정을 저장하기 위해 NSUserDefaults를 사용하는 방법을 배운다.
20장에서는 TouchTracker라는 그림 그리기 앱을 만든다. 멀티터치를 지원하는 방법과 터치 이벤트에 대해 배운다. 또한 최초 응답자와 응답자 체인의 개념을 접하게 될 것이다. NSDictionary도 더 연습하게 될 것이다.
21장에서는 TouchTracker의 성능과 메모리 문제를 디버깅하면서 인스트루먼트에 대해 배운다. Xcode의 기능과 소스 코드 정적 분석기에 대해 다룰 것이다.
22장과 23장에서는 HypoTime 앱에 애니메이션을 구현하면서 레이어와 코어 애니메이션 프레임워크를 소개한다. 뷰 객체의 애니메이션 기능과 CABasicAnimation, CAKeyframeAnimation 같은 애니메이션 객체에 대해 배운다.
24장에서는 오브젝티브-C의 중요한 두 개념인 블록과 카테고리를 다룬다.
25장에서는 Nerdfeed 앱을 만들면서 웹 서비스의 세계로 나아간다. Nerdfeed 앱은 NSURLConnection과 NSXMLParser를 사용해 서버로부터 RSS 피드를 가져와서 해석한다. 또한 UIWebView로 웹 페이지를 표시한다.
26장에서는 UISplitViewController에 대해 배우고 아이패드의 큰 화면을 이용하기 위해 Nerdfeed 앱에 스플릿 뷰 UI를 추가한다.
27장에서는 MediaPlayer 앱을 만들면서 오디오와 비디오를 재생하는 방법을 배운다. 또한 오디오 및 비디오 리소스를 저장하는 위치, 스트리밍 한계, 저수준의 오디오 API에 대해 배운다. MediaPlayer가 백그라운드 상태로 음악을 연주할 수 있게 하면서, 백그라운드 실행을 위한 지침에 대해서도 배운다.
28장에서는 맥(Mac) 데스크톱을 위한 코코아 앱을 만든다. 네트워크에서 데스크톱 앱을 찾기 위해 봉쥬르(Bonjour)를 사용하는 iOS 앱도 만든다. 데스크톱 앱이 검색되면 HTTP를 이용해 통신한다.
29장에서는 여러분의 iOS 디바이스로 푸시 노티피케이션을 보내도록 데스크톱 앱을 확장할 것이다.
정보제공 :
저자소개
아론 힐리가스(지은이)
Big Nerd Ranch의 설립자로 NeXT와 애플에서 일했다. 20여년 정도의 프로그래밍 경력을 가지고 있다. 오브젝티브-C와 코코아를 가르쳤으며, 최근에는 iOS를 가르치고 있다. 『코코아 프로그래밍』과 『오브젝티브-C 프로그래밍』의 공동 저자다.
조 콘웨이(지은이)
iOS 부트캠프의 강의 자료를 공동으로 작성했다. 조는 최근 stable/kernel이라는 모바일 개발 회사를 시작했다. 이 회사는 Big Nerd Ranch의 방식을 근간으로 만든 고품질 소프트웨어를 전달하는 데 집중하고 있다.
최윤선(옮긴이)
한양대학교 전자계산학과 학사 학위를 받았으며 LG 소프트, 드림라인, 네오위즈를 거쳐서 11년간 줄곧 인터넷분야에서 프로그래머로서 일해왔다. 현재는 iOS 프로그래밍에 몰두하고 있다.
백선덕(옮긴이)
한양대학교와 포항공과대학에서 산업공학과 학사와 석사 학위를 받았으며 한국오라클, 호주 오라클을 거쳐서 13년간 소프트웨어 분야에서 일해왔다. 현재는 호주 현지회사에서 소프트웨어 엔지니어로 근무중이다.
목차
목차 감사의 글 = 5 역자 소개 = 6 역자의 글 = 7 서문 = 14 Chapter 01 간단한 iOS 앱 = 25 Xcode 프로젝트 만들기 = 26 인터페이스 만들기 = 29 모델-뷰-컨트롤러 = 34 선언 = 36 커넥션 만들기 = 38 메소드 구현하기 43 = 43 빌드하고 시뮬레이터에서 실행하기 = 45 앱 배포하기 = 47 앱 아이콘 = 48 런치 이미지 = 51 Chapter 02 오브젝티브-C = 53 객체 = 53 인스턴스 사용하기 = 55 RandomPossessions 툴 작성하기 = 58 오브젝티브-C 클래스의 하위 클래스 만들기 = 65 예외와 콘솔 윈도우 = 85 고속 열거형 = 86 도전 과제 = 87 Chapter 03 메모리 관리 = 89 메모리 관리의 기본 = 89 레퍼런스 카운팅 = 92 좀 더 흥미 있는 분을 위해: 더 심화된 메모리 관리 = 109 Chapter 04 델리게이션과 코어 로케이션 = 113 프로젝트, 타깃, 프레임워크 = 113 코어 로케이션 = 116 델리게이션 = 120 디버거 사용하기 = 125 도전 과제: 헤딩 = 130 좀 더 흥미 있는 분을 위해: 빌드 페이스, 컴파일러 에러, 링커 에러 = 131 Chapter 05 맵킷과 텍스트 입력 = 137 객체 다이어그램 = 138 맵킷 프레임워크 = 139 인터페이스 프로퍼티 = 140 MapView 델리게이트 되기 = 143 도전 과제: 어노테이션 확장 = 158 도전 과제: 역지오코딩(Reverse Geocoding) = 158 Chapter 06 UIView 하위 클래스 만들기 = 159 커스텀 뷰 만들기 = 160 텍스트와 그림자 그리기 = 164 UIScrollView 사용하기 = 166 확대하기 = 167 상태 바 가리기 = 169 도전 과제: 색깔 = 170 좀 더 흥미 있는 분을 위해: 리테인 사이클 = 170 좀 더 흥미 있는 분을 위해: 뷰 다시 그리기 = 171 Chapter 07 뷰 컨트롤 = 171 뷰 컨트롤러와 XIB 파일 = 173 뷰 컨트롤러 사용하기 = 175 나타났다 사라지는 뷰 = 190 뷰 컨트롤러 수명 주기와 로우-메모리 경고 = 191 뷰 컨트롤러의 하위 클래스와 템플릿 = 195 도전 과제: 맵 탭 = 196 Chapter 08 가속센서 = 197 가속센서 설정하기 = 198 가속센서 데이터 구하기 = 199 가속도의 위치와 크기 = 200 가속센서 데이터 사용하기 = 200 가속센서 데이터 다듬기 = 201 흔들기 제스처 감지하기 = 202 도전 과제: 색 바꾸기 = 205 좀 더 흥미 있는 분을 위해: 필터링과 주파수 = 205 좀 더 흥미 있는 분을 위해: 레티나 디스플레이 = 207 Chapter 09 노티피케이션과 회전 = 209 노티피케이션 센터 = 209 UIDevice 노티피케이션 = 211 자동회전 = 212 가로 모드 강제설정하기 = 222 도전 과제: 근접 노티피케이션 = 223 좀 더 흥미 있는 분을 위해: 자동회전을 오버라이드하기 = 223 Chapter 10 UITableView와 UITableViewController = 225 Homepwner 앱 시작하기 = 226 UITableViewController = 226 UITableView의 데이터 소스 = 231 UITableViewCells = 238 코드 스니펫 라이브러리 = 244 도전 과제: 섹션 = 246 Chapter 11 UITableView 편집하기 = 247 편집 모드 = 248 행 추가하기 = 254 행 삭제하기 = 255 행 이동하기 = 257 Chapter 12 UINavigationController = 261 UINavigationController = 262 추가적인 UIViewController = 271 UINavigationController로 내비게이트하기 = 277 도전 과제: 숫자 패드 = 283 Chapter 13 카메라 = 285 이미지 보여주기와 UIImageView = 286 도전 과제: 이미지 삭제하기 = 303 좀 더 흥미 있는 분을 위해: 비디오 녹화하기 = 303 Chapter 14 UIPopoverController와 모달 뷰 컨트롤러 = 307 Homepwner 유니버설로 만들기 = 308 UIPopoverController = 311 모달 뷰 컨트롤러 = 314 Chapter 15 저장, 읽기, 멀티태스킹 = 327 앱 샌드박스 = 327 아카이빙 = 331 앱 상태, 변환, 멀티태스킹 = 338 NSData를 파일시스템에 쓰기 = 342 로우-메모리 경고에 대해 = 344 모델-뷰-컨트롤러-스토어 디자인 패턴 = 345 도전 과제: Whereami 아카이브하기 = 346 좀 더 흥미 있는 분을 위해: 앱 상태 변환 = 347 좀 더 흥미 있는 분을 위해: 파일시스템에 읽고 쓰기 = 348 좀 더 흥미 있는 분을 위해: 앱 번들 = 351 Chapter 16 UITableViewCell의 하위 클래스 만들기 = 355 HomepwnerItemCell 생성하기 = 356 이미지 조작 = 362 도전 과제: 액세서리 인디케이터 = 368 도전 과제: 메인 이미지 줄이기 = 368 Chapter 17 코어 데이터 = 369 객체-관계 매핑 = 369 Homepwner를 코어 데이터로 이동하기 = 370 SQL에 대해 좀 더 알아보기 = 394 영구적 메커니즘의 장단점 = 397 도전 과제: 새로운 Asset 타입 = 397 도전 과제: 아이패드에서의 Asset = 397 Chapter 18 현지화 = 399 NSLocale을 이용해 현지화하기 = 400 리소스 현지화하기 = 401 NSLocalizedString과 문자열 테이블 = 405 도전 과제: 또 다른 현지화 = 408 좀 더 흥미 있는 분을 위해: 국제화에서 NSBundle의 역할 = 408 Chapter 19 설정 = 411 Whereami 갱신하기 = 411 NSUserDefaults = 413 좀 더 흥미 있는 분을 위해: 설정 앱 = 416 Chapter 20 터치 이벤트와 UIResponder = 419 터치 이벤트 = 420 TouchTracker 앱 만들기 = 421 터치를 라인으로 바꾸기 = 424 응답자 체인 = 428 도전 과제: 저장하기와 로딩하기 = 429 도전 과제: 원 = 429 좀 더 흥미 있는 분을 위해: UIControl = 429 Chapter 21 인스트루먼트 = 433 정적 분석기 = 433 인스트루먼트 = 436 Xcode 스킴 = 447 빌드 세팅 = 450 Chapter 22 코어 애니메이션 레이어 = 455 레이어와 뷰 = 456 CALayer 생성하기 = 457 레이어 컨텐트 = 460 암시적 애니메이션이 가능한 프로퍼티 = 463 좀 더 흥미 있는 분을 위해: 프로그램 코드로 컨텐트 만들어내기 = 465 좀 더 흥미 있는 분을 위해: 레이어, 비트맵, 컨텍스트 = 466 도전 과제: 동적 레이어 컨텐트 = 469 Chapter 23 CAAnimation으로 애니메이션 제어하기 = 471 애니메이션 객체 = 471 CABasicAnimation으로 회전하기 = 475 CAKeyframeAnimation으로 바운스하기 = 480 도전 과제: 추가 애니메이션 = 482 좀 더 흥미 있는 분을 위해: 프레젠테이션 레이어와 모델 레이어 = 482 Chapter 24 블록과 카테고리 = 485 TouchDrawView에 색 입히기 = 485 블록 = 488 카테고리 = 498 좀 더 흥미 있는 분을 위해: 메모리 관리와 블록 = 502 좀 더 흥미 있는 분을 위해: 콜백 옵션의 장단점 = 505 Chapter 25 웹 서비스와 UIWebView = 509 웹 서비스 = 510 UIWebView = 533 좀 더 흥미 있는 분을 위해: NSXMLParser = 536 좀 더 흥미 있는 분을 위해: The Request Body = 537 좀 더 흥미 있는 분을 위해: Credentials = 539 도전 과제: 좀 더 많은 데이터 = 540 도전 과제: UIWebView 더 다루기 = 540 Chapter 26 UISplitViewController = 541 Nerdfeed 분할하기 = 542 마스터-디테일 커뮤니케이션 = 547 세로 모드에서 마스터 뷰 컨트롤러 보여주기 = 555 Nerdfeed 앱을 유니버설하게 만들기 = 559 Chapter 27 미디어 재생과 백그라운드 실행 = 563 미디어플레이어 앱 만들기 = 564 시스템 사운드 = 566 압축된 오디오 파일 = 569 무비 파일 재생하기 = 572 백그라운드 프로세스 = 575 로우-레벨 API = 580 도전 과제: 오디오 레코딩 = 580 Chapter 28 봉쥬르와 웹 서버 = 581 봉쥬르 = 581 HTTP 통신 = 592 좀 더 흥미 있는 분을 위해: TXTRecords = 601 Chapter 29 푸시 노티피케이션과 네트워킹 = 603 푸시 노티피케이션을 위해 클라이언트 준비시키기 = 604 푸시 노티피케이션 전달하기 = 609 푸시 노티피케이션 보내기 = 612 클라이언트에서의 추가적 노티피케이션 처리 = 626 프로덕션 서버 및 향후의 할 일 = 629 좀 더 흥미 있는 분을 위해: 피드백 서비스 = 630 Chapter 30 후기 = 631 다음으로 할 일 = 631 자화자찬 = 632 찾아보기 = 634



