목차 일부
CHAPTER 01 정글에 온 것을 환영한다 ... 1
이 책은 어떤 종류의 책인가 ... 1
시작하기 전에 준비해 두어야 하는 것들 ... 2
시작하기 전에 알아두어야 할 것들 ... 4
아이폰 코딩은 어떤 점이 다른가? ... 5
한 번에 단 하나의 애플리케이션만 구동한다 ... 6
단 하나의 윈도우 ... 6...
더보기
목차 전체
CHAPTER 01 정글에 온 것을 환영한다 ... 1
이 책은 어떤 종류의 책인가 ... 1
시작하기 전에 준비해 두어야 하는 것들 ... 2
시작하기 전에 알아두어야 할 것들 ... 4
아이폰 코딩은 어떤 점이 다른가? ... 5
한 번에 단 하나의 애플리케이션만 구동한다 ... 6
단 하나의 윈도우 ... 6
접근 권한의 제약 ... 6
응답 시간의 제약 ... 6
시스템 자원의 제약 ... 7
코코아 개발 도구들의 누락 ... 8
새로운 기능 ... 8
다른 접근법 ... 8
이 책의 구성 ... 8
준비가 되었는가? ... 11
CHAPTER 02 티키신 달래기 ... 13
Xcode에서 프로젝트 설정하기 ... 13
Xcode 프로젝트 창 ... 16
인터페이스 빌더 소개 ... 19
Nib 파일에는 무엇이 있나? ... 21
View에 레이블 추가하기 ... 22
아이폰을 빛낼 몇 가지 마무리 손질 ... 25
컴파일과 실행을 위한 준비 ... 28
마무리하며 ... 29
CHAPTER 03 기본적인 상호작용 다루기 ... 31
모델-뷰-컨트롤러 패러다임 ... 32
프로젝트 생성하기 ... 33
뷰 컨트롤러 생성하기 ... 33
아웃렛 ... 35
액션 ... 36
뷰 컨트롤러에 액션과 아웃렛 추가하기 ... 36
구현 파일에 액션과 아웃렛 추가하기 ... 40
애플리케이션 델리게이트 사용하기 ... 45
MainWindow.xib 편집하기 ... 48
Button_FunViewController.xib 편집하기 ... 49
인터페이스 빌더에서 뷰 생성하기 ... 49
모든 것에 연결하기 ... 52
실행하기 ... 56
마무리하며 ... 57
CHAPTER 04 사용자 인터페이스, 좀 더 재미있게 만들기 ... 59
컨트롤로 가득 찬 화면 ... 60
능동, 정적, 수동 컨트롤 ... 61
애플리케이션 만들기 ... 62
이미지 가져오기 ... 62
이미지 뷰와 텍스트 필드 구현 ... 63
이미지 뷰 추가하기 ... 65
텍스트 필드 추가하기 ... 69
두 번째 텍스트 필드의 속성 정하기 ... 72
아웃렛 연결하기 ... 72
빌드하고 실행하기 ... 73
Done을 누르면 키보드 사라지게 만들기 ... 73
배경을 터치하면 키보드 사라지게 만들기 ... 75
슬라이더와 레이블 구현하기 ... 76
아웃렛 정하기 ... 76
액션 정하기 ... 77
아웃렛과 액션 추가하기 ... 77
슬라이더와 레이블 추가하기 ... 78
액션과 아웃렛 연결하기 ... 79
스위치와 분할 컨트롤 구현하기 ... 80
아웃렛 정하기 ... 80
액션 정하기 ... 80
스위치와 분할 컨트롤 추가하기 ... 82
아웃렛 연결하기 ... 84
버튼, 액션 시트 그리고 경고창 구현하기 ... 85
컨트롤러 헤더 파일에 아웃렛과 액션 추가하기 ... 85
인터페이스 빌더에서 버튼 추가하기 ... 86
버튼의 액션 메서드 구현하기 ... 86
액션 시트 보여주기 ... 87
액션 시트 델리게이트와 경고창 만들기 ... 89
버튼 멋 내기 ... 90
viewDidLoad 메서드 ... 91
제어 상태 ... 92
크기를 늘릴 수 있는 이미지 ... 92
결승점 통과하기 ... 93
CHAPTER 05 자동회전과 자동크기조절 ... 95
AutoSize 속성으로 회전 처리하기 ... 97
회전 지원 여부를 명시하기 ... 97
AutoSize 속성을 적용해 인터페이스 설계하기 ... 99
AutoSize 속성 ... 100
버튼에 Autosize 속성 설정하기 ... 102
회전할 때 뷰 재구성하기 ... 103
아웃렛 선언하고 연결하기 ... 104
회전할 때 버튼 이동하기 ... 105
뷰 전환하기 ... 108
아웃렛 결정하기 ... 109
액션 결정하기 ... 110
액션과 아웃렛 선언하기 ... 110
두 개의 뷰 설계하기 ... 111
스왑과 액션 구현하기 ... 112
코어 그래픽스 프레임워크 링크하기 ... 115
회전 기능을 마치면서 ... 118
CHAPTER 06 멀티뷰 애플리케이션 ... 119
뷰 스위처 애플리케이션 ... 122
멀티뷰 애플리케이션의 구조 ... 123
멀티뷰 컨트롤러는 뷰 컨트롤러이다 ... 123
콘덴트 뷰 해부 ... 123
뷰 스위처 만들기 ... 124
뷰 컨트롤러와 nib 파일 만들기 ... 125
애플리케이션 델리게이트 수정하기 ... 127
SwitchViewController.h ... 128
MainWindow.xib 고치기 ... 129
SwitchViewController.m 작성하기 ... 132
콘텐트 뷰 구현하기 ... 135
전환 시 애니메이션 주기 ... 138
리팩터링 ... 141
끝내기 ... 143
CHAPTER 07 탭바와 피커 ... 145
피커 애플리케이션 ... 146
델리게이트와 데이터소스 ... 147
탭바 프레임워크 설정하기 ... 148
파일 생성 ... 148
컨텐츠 뷰 Nib 설정하기 ... 149
루트 뷰 컨트롤러 추가하기 ... 150
날짜 피커 구현하기 ... 154
단일 컴포넌트 피커 구현하기 ... 157
아웃렛과 액션 선언하기 ... 157
뷰 만들기 ... 158
컨트롤러를 데이터소스와 델리게이트로 구현하기 ... 159
멀티컴포넌트 피커 구현하기 ... 164
아웃렛과 액션 선언하기 ... 164
뷰 만들기 ... 165
컨트롤러 구현하기 ... 165
의존적인 컴포넌트 구현하기 ... 169
커스텀 피커로 간단한 게임 만들기 ... 177
컨트롤러 헤더 파일 작성하기 ... 177
뷰 만들기 ... 178
이미지 리소스 추가하기 ... 179
컨트롤러 구현하기 ... 179
Spin 메서드 ... 182
viewDidLoad 메서드 ... 183
마지막 세부사항들 ... 186
오디오 툴박스 프레임워크에 연결하기 ... 190
마지막 회전 ... 190
CHAPTER 08 테이블 뷰 입문 ... 191
테이블 뷰의 기초 ... 192
그룹으로 묶은 테이블과 인덱스로 구분한 테이블 ... 193
간단한 테이블 구현하기 ... 195
뷰 설계하기 ... 195
컨트롤러 작성하기 ... 196
이미지 추가하기 ... 200
추가적인 설정 ... 201
들여쓰기 레벨 설정하기 ... 201
행 선택 다루기 ... 202
폰트 크기와 행의 높이 바꾸기 ... 204
델리게이트로 할 수 있는 다른 기능은? ... 205
맞춤형 테이블 뷰 셀 만들기 ... 205
Cells 애플리케이션 ... 206
테이블 뷰 셀에 하위뷰 추가하기 ... 206
UITableViewCell의 하위클래스를 맞춤형으로 사용하기 ... 210
그룹으로 묶은 섹션과 인덱스로 구분한 섹션 ... 215
뷰 조립하기 ... 215
데이터 가져오기 ... 215
컨트롤러 구현하기 ... 216
인덱스 추가하기 ... 220
검색창 구현하기 ... 221
디자인 다시 생각하기 ... 221
깊은 뮤터블 복사 ... 222
컨트롤러 헤더파일 갱신하기 ... 224
뷰 수정하기 ... 226
컨트롤러 구현 수정하기 ... 227
테이블에 모두 넣기 ... 236
CHAPTER 09 내비게이션 컨트롤러와 테이블 뷰 ... 237
내비게이션 컨트롤러 ... 238
스택을 사용하면 좋은 점 ... 238
여섯 부분으로 구성된 계층구조 애플리케이션, Nav ... 240
Nav 애플리케이션의 뼈대 구성하기 ... 243
루트 뷰 컨트롤러 생성하기 ... 243
내비게이션 컨트롤러 설정하기 ... 244
첫 번째 하위컨트롤러: 더보기 버튼 뷰 ... 252
두 번째 하위컨트롤러: 체크리스트 ... 260
세 번째 하위컨트롤러: 테이블 열 위에 컨트롤 추가하기 ... 266
네 번째 하위컨트롤러: 이동 가능한 열 ... 272
편집 모드 ... 272
새로운 2차 레벨 컨트롤러 생각하기 ... 272
다섯 번째 하위컨트롤러: 삭제 가능한 열 ... 279
여섯 번째 하위컨트롤러: 편집 가능한 상세 창 ... 285
데이터 모델 객체 생성하기 ... 286
컨트롤러 생성하기 ... 288
상세 뷰 컨트롤러 생성하기 ... 292
한 가지가 더 남아있다… ... 309
결승선 테이프 끊기 ... 313
CHAPTER 10 애플리케이션 설정과 사용자 기본값 ... 315
세팅 번들 이해하기 ... 316
AppSettings 애플리케이션 ... 317
세팅 번들 다루기 ... 321
세팅 번들을 프로젝트에 추가하기 ... 321
프로퍼티 리스트 설정하기 ... 322
텍스트 필드 설정 추가하기 ... 324
암호화된 텍스트 필드 설정 추가하기 ... 326
멀티밸류 필드 추가하기 ... 326
토글 스위치 세팅 추가하기 ... 328
슬라이더 세팅 추가하기 ... 328
하위 설정 뷰 추가하기 ... 330
애플리케이션에서 설정 읽기 ... 331
애플리케이션에서 설정 바꾸기 ... 336
스코티, 순간이동을 시작해 주게 ... 339
CHAPTER 11 기본적인 데이터 저장 방법 ... 341
애플리케이션 샌드박스 ... 342
Documents 디렉터리 경로 가져오기 ... 343
tmp 디렉터리 경로 가져오기 ... 344
파일 저장 기법 ... 344
하나의 파일에 데이터 저장하기 ... 344
여러 파일에 데이터 저장하기 ... 345
애플리케이션 데이터 저장하기 ... 345
프로퍼티 리스트 직렬화 ... 345
퍼시스턴스 애플리케이션 ... 347
퍼시스턴스 프로젝트 생성하기 ... 348
퍼시스턴스 애플리케이션 뷰 설계하기 ... 349
퍼시스턴스 클래스 편집하기 ... 349
아카이빙 모델 객체 ... 354
NSCopying 프로토콜 구현하기 ... 355
아카이빙 애플리케이션 ... 357
FourLines 클래스 구현하기 ... 358
PersistenceViewController 클래스 구현하기 ... 359
아이폰에 내장된 SQLite3 사용하기 ... 363
SQLite3 사용을 위한 프로젝트 설정하기 ... 366
끈기에 대한 보상 ... 373
12장 쿼츠와 OpenGL을 이용한 그리기 ... 375
그래픽 세계의 두 뷰 ... 376
드로잉 애플리케이션 ... 377
드로잉을 위한 쿼츠 사용법 ... 377
쿼츠 2D 그래픽스 컨텍스트 ... 377
좌표계 ... 379
색 정의하기 ... 380
컨텍스트에 이미지 그리기 ... 382
도형 그리기: 다각형, 선, 커브 ... 382
쿼츠 2D 툴 샘플러 : 패턴, 그레디언트, 대시 패턴 ... 383
QuartzFun 애플리케이션 만들기 ... 383
랜덤 색 만들기 ... 385
애플리케이션 상수 정의하기 ... 386
QuartzFunView 뼈대 구현하기 ... 386
뷰 컨트롤러에 아웃렛과 액션 추가하기 ... 389
QuartzFunViewController.xib 업데이트하기 ... 392
선 그리기 ... 394
직사각형과 타원 그리기 ... 396
이미지 그리기 ... 398
OpenGL의 기본 ... 404
GLFun 애플리케이션 만들기 ... 405
빈 화면 그리기 ... 417
CHAPTER 13 탭, 터치 그리고 제스처 ... 419
멀티터치 관련 용어 ... 420
리스폰더 체인 ... 420
이벤트 전달하기: 리스폰더 체인 유지하기 ... 422
멀티터치 아키텍처 ... 423
4개의 제스처 통보 매서드 ... 423
터치 익스플로러 애플리케이션 ... 425
스와이프 애플리케이션 ... 428
멀티 스와이프 구현하기 ... 432
멀티탭 인식하기 ... 435
핀치 인식하기 ... 439
커스텀 제스처 정의하기 ... 443
제스처 인식 메서드 ... 447
웨이터? 확인 부탁해요! ... 447
CHAPTER 14 여기가 어디지? 코어 로케이션을 이용한 길 찾기 ... 449
로케이션 매니저 ... 450
정밀도 설정하기 ... 450
디스턴스 필터 설정하기 ... 451
로케이션 매니저 동작시키기 ... 451
효율적으로 로케이션 매니저 사용하기 ... 451
로케이션 매니저 델리게이트 ... 452
위치 정보 갱신하기 ... 452
CLLocation을 사용한 위도와 경도 구하기 ... 452
에러 통보 ... 453
코어 로케이션 사용하기 ... 454
로케이션 매니저 업데이트하기 ... 458
이동 거리 측정하기 ... 459
여러분이 어디에 가더라도, 그곳에 여러분이 있다 ... 460
CHAPTER 15 야호! ... 461
가속도 센서의 물리법칙 ... 461
가속도 센서 사용하기 ... 463
UIAcceleration ... 463
accelerometer:didAccelerate: 매서드 구현하기 ... 465
흔들어서 깨뜨리기 ... 467
화면 깨뜨리기 코드 ... 468
시뮬레이션에 필요한 파일 로딩하기 ... 471
괜찮아 - 깨진 아이폰을 복구하기 ... 472
구슬 굴리기 프로그램 ... 473
Ball View Controller 클래스 구현하기 ... 474
Ball View 클래스 구현하기 ... 475
구슬의 움직임 계산하기 ... 479
구르기 ... 482
CHAPTER 16 아이폰의 카메라와 포토 라이브러리 ... 483
이미지 피커와 UIImagePickerController 사용하기 ... 484
이미지 피커 컨트롤러의 델리게이트 구현하기 ... 485
카메라와 라이브러리 길거리 테스트 ... 487
인터페이스 설계하기 ... 488
카메라 뷰 컨트롤러 구현하기 ... 488
누워서 떡 먹기! ... 493
CHAPTER 17 애플리케이션 지역화 ... 495
지역화 아키텍처 ... 496
문자열 파일 사용하기 ... 497
문자열 파일 만들기 ... 499
실생활에서의 아이폰: 애플리케이션 지역화하기 ... 500
현재 로케일 참조하기 ... 503
LocalizeMe 실행하기 ... 505
Nib 파일 지역화하기 ... 506
지역화된 프로젝트 구조 살펴보기 ... 507
이미지 지역화하기 ... 510
애플리케이션 아이콘 지역화하기 ... 511
문자열 파일 생성하고 지역화하기 ... 511
안녕, 또 만나요 ... 515
CHAPTER 18 다음은 어디로? ... 517
새로운 여행 준비 ... 517
애플의 도큐멘테이션 ... 518
Mailing Lists ... 518
토론 포럼 ... 519
웹 사이트 ... 519
블로그 ... 520
별 다른 해결책을 찾지 못하였다면… ... 521
작별 인사 ... 521
APPENDIX A 강력해진 UIKit 프레임워크 ... 523
APPENDIX B 코어 데이터 ... 525
코어 데이터의 이해 ... 526
Core Data를 이용한 전화번호부 ... 528
데이터 CRUD ... 531
데이터 생성하기(Create) ... 531
데이터 읽기(Retrieve) ... 534
데이터 수정하기(Update) ... 537
데이터 삭제하기(Delete) ... 540
APPENDIX C 자르기, 복사하기, 붙여넣기 ... 545
APPENDIX D External Accessory 프레임워크 ... 549
EAAccessory ... 549
연결 정보 ... 550
기기 정보 ... 550
delegate 연결 ... 550
EAAccessoryManager ... 551
외부기기 관리자 ... 551
외부기기로부터의 알람 메시지에 대한 등록과 해제 ... 551
외부기기 정보 ... 551
EASession ... 552
세션 초기화 ... 552
세션 정보 ... 552
스트림 통신 얻기 ... 552
EAAccessoryDelegate ... 553
APPENDIX E MapKit 프레임워크 ... 555
애플리케이션 내에 맵뷰 띄우기 ... 556
특정 위치의 주소정보 가져오기 ... 560
지도에 사용자의 위치 태깅 애노테이션 달기 ... 563
APPENDIX F MessageUI 프레임워크 ... 569
버그리포트 메일 전송 기능 구현 ... 569
APPENDIX G AV Foundation 프레임워크 ... 575
녹음 ... 575
APPENDIX H Media Player 프레임워크 ... 581
특정 곡 저장 후 검출 ... 586
APPENDIX I 애플 푸시 노티피케이션 서비스 ... 587
개요 ... 588
경고 ... 588
배지(badge) ... 589
소리 ... 589
활용 ... 590
1. SSL 인증서와 키 생성 ... 591
2. 프로파일 프로비젼 파일 생성 ... 591
3. 프로바이더 구현 ... 591
클라이언트 구현 ... 593
APPENDIX J Store Kit 프레임워크 ... 601
APPENDIX K Game Kit 프레임워크 ... 615
더보기 닫기