01장 아이폰 SDK 소개 ● 31
애플 아이폰 SDK ● 31
아이폰 프로젝트 ● 33
아이폰 애플리케이션 컴포넌트 ● 35
애플리케이션 폴더 구조 ● 35
실행파일 ● 35
Info.plist 파일 ● 36
아이콘과 기본 이미지 ● 38
XIB 파일 ● 39
애플리케이션 번들에 포함되지 않은 파일 ● 39
샌드박스 ● 39
플랫폼의 제약사항 ● 40
저장공간 ● 41
데이터 접근 ● 41
메모리 ● 41
상호작용 ● 42
배터리 ● 43
애플리케이션 ● 43
사용자 행동 ● 44
SDK의 제약사항 ● 44
프로그래밍 패러다임 ● 45
객체 지향 프로그래밍 ● 45
모델-뷰-컨트롤러 ● 46
아이폰 애플리케이션 골격 만들기 ● 56
Hello World 애플리케이션 ● 57
클래스 ● 57
코드 ● 59
예제 코드와 메모리 관리에 대한 주의점 ● 60
Hello World 만들기 ● 62
아이폰 프로젝트 생성 ● 63
골격만 실행해보기 ● 64
아이폰 프로젝트 커스터마이즈 ● 65
식별자 정보 수정 ● 66
디버거 사용 ● 67
애플 아이폰 개발자 프로그램 ● 69
개발용 폰 ● 70
애플리케이션 식별자 ● 71
엑스코드에서 아이폰으로: 오거나이저 인터페이스 ● 72
프로젝트와 소스 리스트 ● 73
디바이스 리스트 ● 73
써머리 탭 ● 74
콘솔 탭 ● 74
크래쉬 로그 탭 ● 75
스크린샷 탭 ● 75
케이블 연결 ● 75
아이폰상에서 애플리케이션 테스트하기 ● 76
배포용 컴파일 ● 77
문서에 없는 API 호출 사용하기 ● 79
애드혹 배포 ● 80
정리 ● 81
02장 뷰 ● 83
UIView와 UIWindow ● 83
계층구조 ● 84
형태와 특성 ● 86
제스처 ● 90
예제: 단계적 하위뷰 붙이기 ● 90
방향전환 ● 92
예제: 뷰 드래깅 ● 94
UITouch ● 95
지속성 추가 ● 98
예제: 뷰 오려내기 ● 103
잘라내기와 터치 맞추기 ● 104
픽셀단위 값에 접근하기 ● 105
예제: 멀티터치 감지 ● 108
UIView 애니메이션 ● 111
UIView 애니메이션 블록 만들기 ● 112
예제: 뷰를 페이드 인/아웃하기 ● 113
예제: 뷰 간 전환하기 ● 115
예제: 뷰 뒤집기 ● 118
예제: CATransition을 레이어에 적용하기 ● 120
문서에 나오지 않는 애니메이션 타입 ● 121
일반 코어 애니메이션 호출 ● 123
예제: 뷰 스와이프하기 ● 124
예제: 뷰 변형하기 ● 128
가로보기 뷰를 가운데로 맞추기 ● 131
정리 ● 132
03장 뷰 컨트롤러 ● 135
뷰 관리 ● 135
코어 클래스 ● 136
스페셜 클래스 ● 136
UIViewController 만들기 ● 138
인터페이스 빌더를 사용한 뷰 만들기 ● 140
온도 변환기 예제 ● 140
직접 XIB 파일을 로딩하기 ● 152
내비게이션 컨트롤러 ● 152
내비게이션 컨트롤러 설정 ● 153
뷰 컨트롤러를 스택에 넣고 꺼내기 ● 154
내비게이션 아이템 클래스 ● 155
예제: 아이템 둘 있는 메뉴 만들기 ● 156
예제: 세그먼트 컨트롤 추가하기 ● 158
예제: 내비게이션바에 UIToolbar 추가하기 ● 160
예제: 뷰 컨트롤러 간의 내비게이션 ● 164
루트로 바로 가기 ● 166
뷰 컨트롤러 배열 읽어들이기 ● 166
탭바 ● 167
정리 ● 171
04장 알림 ● 173
알림창을 통해 사용자에게 직접 알리기 ● 173
결과 로깅 ● 174
알림창 만들기 ● 175
화면에 알림창 띄우기 ● 177
예제: 여러 줄짜리 버튼 만들기 ● 177
예제: 버튼 없는 알림창 ● 180
예제: 사용자에게 텍스트 입력 요청하기 ● 181
예제: 간단한 메뉴 ● 184
‘대기 중’: 사용자에게 진행 상황 보여주기 ● 186
예제: 문서화되지 않은 UIProgressHUD 사용 ● 187
예제: UIActivityIndicatorView 사용 ● 189
예제: UIProgressView 만들기 ● 191
예제: 선택 가능한 커스텀 오버레이 만들기 ● 194
예제: 스크롤다운 알림창 만들기 ● 199
예제: 상태바에 이미지 추가하기 ● 203
애플리케이션 뱃지 달기 ● 204
예제: 간단한 소리 알림 ● 207
진동 ● 209
정리 ● 210
05장 기본 테이블 ● 211
UITableView와 UITableViewController 소개 ● 211
테이블 만들기 ● 212
UITableViewController가 하는 일 ● 214
예제: 단순 리스트 테이블 만들기 ● 215
데이터 소스 메소드 ● 215
셀의 재사용 ● 216
폰트 테이블 예제 ● 216
예제: 테이블 기반 선택 시트 만들기 ● 219
예제: 테이블 셀에 이미지 추가하기 ● 224
예제: 셀의 텍스트 속성 ● 226
셀 선택 제거 ● 228
예제: 복잡한 셀 만들기 ● 229
예제: 셀 선택 표시 만들기 ● 232
예제: 셀 삭제 ● 233
삭제 컨트롤 추가 ● 234
삭제 컨트롤 제거 ● 235
삭제 요청 처리 ● 235
스와이핑 셀 ● 236
셀 추가 ● 236
예제: 셀 순서 변경하기 ● 239
예제: 디스클로저의 사용 ● 240
정리 ● 243
06장 고급 테이블 ● 245
예제: 테이블 섹션 그룹화 ● 245
섹션을 지원하는 데이터 소스 ● 247
섹션 헤더 추가하기 ● 251
예제: 인덱스 섹션 테이블 ● 253
예제: 셀 배경색 바꾸기 ● 254
테이블 뷰 꾸미기 ● 258
예제: 두 배경색이 반복되는 셀 ● 260
예제: 프레임을 사용한 테이블 ● 262
예제: 셀에 컨트롤 추가하기 ● 264
예제: 멀티 휠 테이블 ● 266
UIPickerView 생성 ● 268
예제: UIDatePicker 사용하기 ● 271
날짜 피커 만들기 ● 271
예제: 풀 커스터마이징된 그룹 테이블 만들기 ● 274
설정 테이블 만들기 ● 274
정리 ● 281
07장 미디어 ● 283
예제: 파일 형식에 따라 문서 폴더의 내용 보기 ● 283
문서의 위치 찾기 ● 285
이미지를 읽고 보여주기 ● 287
예제: 작은 이미지 보여주기 ● 288
예제: UIWebView를 사용해 이미지 보여주기 ● 291
UIWebView를 이용해 웹 페이지 보여주기 ● 293
예제: 이미지 라이브러리 브라우징 ● 294
예제: 카메라 롤에서 이미지를 선택하고 커스터마이징 ● 298
예제: 아이폰 카메라로 사진 찍기 ● 302
아이폰 오디오 다루기 ● 305
예제: 셀레스티얼을 이용한 오디오 재생 ● 306
예제: 미디어 플레이어를 이용한 오디오와 비디오 재생 ● 309
예제: 오디오 녹음 ● 311
텍스트 데이터 읽기 ● 319
속성 리스트 출력하기 ● 320
백업 파일에서 미디어 복원하기 ● 321
정리 ● 323
08장 컨트롤 ● 325
예제: 간단한 버튼 ● 325
UIButton 클래스 ● 326
커스텀 버튼 ● 328
글래스 버튼 ● 331
예제: 애니메이션 요소로 버튼 꾸미기 ● 332
예제: 버튼에 애니메이션 추가하기 ● 333
예제: 스위치 커스터마이징 ● 335
UIAlertView 버튼 꾸미기 ● 339
예제: 커스텀 슬라이더 썸 이미지 추가 ● 340
슬라이더에 텍스트 추가 ● 344
예제: UITextField 키보드 사라지게 하기 ● 345
예제: UITextView 키보드 사라지게 하기 ● 347
예제: 텍스트 뷰에 취소 버튼 추가 ● 349
예제: 텍스트 기반 HTML 편집기 ● 352
예제: 검색바 ● 356
예제: 콜아웃뷰 추가 ● 358
페이지 표시 컨트롤 추가 ● 361
예제: 툴바 커스터마이징 ● 365
툴바 팁 ● 369
정리 ● 370
09장 사람, 위치, 변화 ● 371
연락처 프레임워크 종류 ● 371
연락처 UI 프레임워크 ● 372
연락처 프레임워크 ● 372
예제: 연락처 이미지 데이터 접근 ● 374
예제: 개인 연락처 정보 보이기 ● 377
예제: 연락처 브라우징 ● 378
이메일 주소만 브라우징하기 ● 381
연락처 추가 ● 381
코어 로케이션 ● 382
코어 로케이션 동작 원리 ● 383
예제: 코어 로케이션 ● 385
예제: 위치 정보를 주소로 변환 ● 390
예제: 코어 로케이션 데이터를 사용한 지도 찾기 ● 393
예제: 코어 디바이스 정보 접근 ● 396
예제: 근접 센서 켜고 끄기 ● 397
예제: 가속도를 사용해 위아래 구별 ● 398
예제: 가속도 센서를 이용해 화면 상 오브젝트 움직이기 ● 400
정리 ● 404
10장 서비스 연결 ● 405
예제: 애플리케이션 설정 추가 ● 405
애플리케이션 설정 ● 406
예제: 커스텀 URL 스킴 등록 ● 411
예제: 네트워크 상태 확인 ● 414
네트워크 연결 상태 확인 ● 414
아이폰 로컬 IP 주소 조회 ● 415
사이트 IP 주소 조회 ● 417
사이트 사용 가능 여부 확인 ● 417
예제: 아이폰 데이터베이스 사용 ● 419
예제: XML을 트리 데이터 구조로 변환 ● 422
예제: 키체인 아이템 저장과 조회 ● 425
키체인에 여러 값 저장 ● 431
키체인 지속성 ● 433
파일 전송과 수신 ● 433
예제: 간단한 웹 서버 만들기 ● 435
푸시 알림 서비스 ● 440
정리 ● 441
11장 커버플로우 만들기 ● 443
UICoverFlowLayer 클래스 ● 443
커버플로우 뷰 만들기 ● 445
커버플로우 뷰 컨트롤러 만들기 ● 448
커버플로우 데이터소스 메소드 ● 450
커버플로우 델리게이트 메소드 ● 450
정리 ● 455
부록 아이폰 개발에 꼭 필요한 오브젝티브C 기초와 메모리 관리 ● 457
애플 아이폰 SDK ● 31
아이폰 프로젝트 ● 33
아이폰 애플리케이션 컴포넌트 ● 35
애플리케이션 폴더 구조 ● 35
실행파일 ● 35
Info.plist 파일 ● 36
아이콘과 기본 이미지 ● 38
XIB 파일 ● 39
애플리케이션 번들에 포함되지 않은 파일 ● 39
샌드박스 ● 39
플랫폼의 제약사항 ● 40
저장공간 ● 41
데이터 접근 ● 41
메모리 ● 41
상호작용 ● 42
배터리 ● 43
애플리케이션 ● 43
사용자 행동 ● 44
SDK의 제약사항 ● 44
프로그래밍 패러다임 ● 45
객체 지향 프로그래밍 ● 45
모델-뷰-컨트롤러 ● 46
아이폰 애플리케이션 골격 만들기 ● 56
Hello World 애플리케이션 ● 57
클래스 ● 57
코드 ● 59
예제 코드와 메모리 관리에 대한 주의점 ● 60
Hello World 만들기 ● 62
아이폰 프로젝트 생성 ● 63
골격만 실행해보기 ● 64
아이폰 프로젝트 커스터마이즈 ● 65
식별자 정보 수정 ● 66
디버거 사용 ● 67
애플 아이폰 개발자 프로그램 ● 69
개발용 폰 ● 70
애플리케이션 식별자 ● 71
엑스코드에서 아이폰으로: 오거나이저 인터페이스 ● 72
프로젝트와 소스 리스트 ● 73
디바이스 리스트 ● 73
써머리 탭 ● 74
콘솔 탭 ● 74
크래쉬 로그 탭 ● 75
스크린샷 탭 ● 75
케이블 연결 ● 75
아이폰상에서 애플리케이션 테스트하기 ● 76
배포용 컴파일 ● 77
문서에 없는 API 호출 사용하기 ● 79
애드혹 배포 ● 80
정리 ● 81
02장 뷰 ● 83
UIView와 UIWindow ● 83
계층구조 ● 84
형태와 특성 ● 86
제스처 ● 90
예제: 단계적 하위뷰 붙이기 ● 90
방향전환 ● 92
예제: 뷰 드래깅 ● 94
UITouch ● 95
지속성 추가 ● 98
예제: 뷰 오려내기 ● 103
잘라내기와 터치 맞추기 ● 104
픽셀단위 값에 접근하기 ● 105
예제: 멀티터치 감지 ● 108
UIView 애니메이션 ● 111
UIView 애니메이션 블록 만들기 ● 112
예제: 뷰를 페이드 인/아웃하기 ● 113
예제: 뷰 간 전환하기 ● 115
예제: 뷰 뒤집기 ● 118
예제: CATransition을 레이어에 적용하기 ● 120
문서에 나오지 않는 애니메이션 타입 ● 121
일반 코어 애니메이션 호출 ● 123
예제: 뷰 스와이프하기 ● 124
예제: 뷰 변형하기 ● 128
가로보기 뷰를 가운데로 맞추기 ● 131
정리 ● 132
03장 뷰 컨트롤러 ● 135
뷰 관리 ● 135
코어 클래스 ● 136
스페셜 클래스 ● 136
UIViewController 만들기 ● 138
인터페이스 빌더를 사용한 뷰 만들기 ● 140
온도 변환기 예제 ● 140
직접 XIB 파일을 로딩하기 ● 152
내비게이션 컨트롤러 ● 152
내비게이션 컨트롤러 설정 ● 153
뷰 컨트롤러를 스택에 넣고 꺼내기 ● 154
내비게이션 아이템 클래스 ● 155
예제: 아이템 둘 있는 메뉴 만들기 ● 156
예제: 세그먼트 컨트롤 추가하기 ● 158
예제: 내비게이션바에 UIToolbar 추가하기 ● 160
예제: 뷰 컨트롤러 간의 내비게이션 ● 164
루트로 바로 가기 ● 166
뷰 컨트롤러 배열 읽어들이기 ● 166
탭바 ● 167
정리 ● 171
04장 알림 ● 173
알림창을 통해 사용자에게 직접 알리기 ● 173
결과 로깅 ● 174
알림창 만들기 ● 175
화면에 알림창 띄우기 ● 177
예제: 여러 줄짜리 버튼 만들기 ● 177
예제: 버튼 없는 알림창 ● 180
예제: 사용자에게 텍스트 입력 요청하기 ● 181
예제: 간단한 메뉴 ● 184
‘대기 중’: 사용자에게 진행 상황 보여주기 ● 186
예제: 문서화되지 않은 UIProgressHUD 사용 ● 187
예제: UIActivityIndicatorView 사용 ● 189
예제: UIProgressView 만들기 ● 191
예제: 선택 가능한 커스텀 오버레이 만들기 ● 194
예제: 스크롤다운 알림창 만들기 ● 199
예제: 상태바에 이미지 추가하기 ● 203
애플리케이션 뱃지 달기 ● 204
예제: 간단한 소리 알림 ● 207
진동 ● 209
정리 ● 210
05장 기본 테이블 ● 211
UITableView와 UITableViewController 소개 ● 211
테이블 만들기 ● 212
UITableViewController가 하는 일 ● 214
예제: 단순 리스트 테이블 만들기 ● 215
데이터 소스 메소드 ● 215
셀의 재사용 ● 216
폰트 테이블 예제 ● 216
예제: 테이블 기반 선택 시트 만들기 ● 219
예제: 테이블 셀에 이미지 추가하기 ● 224
예제: 셀의 텍스트 속성 ● 226
셀 선택 제거 ● 228
예제: 복잡한 셀 만들기 ● 229
예제: 셀 선택 표시 만들기 ● 232
예제: 셀 삭제 ● 233
삭제 컨트롤 추가 ● 234
삭제 컨트롤 제거 ● 235
삭제 요청 처리 ● 235
스와이핑 셀 ● 236
셀 추가 ● 236
예제: 셀 순서 변경하기 ● 239
예제: 디스클로저의 사용 ● 240
정리 ● 243
06장 고급 테이블 ● 245
예제: 테이블 섹션 그룹화 ● 245
섹션을 지원하는 데이터 소스 ● 247
섹션 헤더 추가하기 ● 251
예제: 인덱스 섹션 테이블 ● 253
예제: 셀 배경색 바꾸기 ● 254
테이블 뷰 꾸미기 ● 258
예제: 두 배경색이 반복되는 셀 ● 260
예제: 프레임을 사용한 테이블 ● 262
예제: 셀에 컨트롤 추가하기 ● 264
예제: 멀티 휠 테이블 ● 266
UIPickerView 생성 ● 268
예제: UIDatePicker 사용하기 ● 271
날짜 피커 만들기 ● 271
예제: 풀 커스터마이징된 그룹 테이블 만들기 ● 274
설정 테이블 만들기 ● 274
정리 ● 281
07장 미디어 ● 283
예제: 파일 형식에 따라 문서 폴더의 내용 보기 ● 283
문서의 위치 찾기 ● 285
이미지를 읽고 보여주기 ● 287
예제: 작은 이미지 보여주기 ● 288
예제: UIWebView를 사용해 이미지 보여주기 ● 291
UIWebView를 이용해 웹 페이지 보여주기 ● 293
예제: 이미지 라이브러리 브라우징 ● 294
예제: 카메라 롤에서 이미지를 선택하고 커스터마이징 ● 298
예제: 아이폰 카메라로 사진 찍기 ● 302
아이폰 오디오 다루기 ● 305
예제: 셀레스티얼을 이용한 오디오 재생 ● 306
예제: 미디어 플레이어를 이용한 오디오와 비디오 재생 ● 309
예제: 오디오 녹음 ● 311
텍스트 데이터 읽기 ● 319
속성 리스트 출력하기 ● 320
백업 파일에서 미디어 복원하기 ● 321
정리 ● 323
08장 컨트롤 ● 325
예제: 간단한 버튼 ● 325
UIButton 클래스 ● 326
커스텀 버튼 ● 328
글래스 버튼 ● 331
예제: 애니메이션 요소로 버튼 꾸미기 ● 332
예제: 버튼에 애니메이션 추가하기 ● 333
예제: 스위치 커스터마이징 ● 335
UIAlertView 버튼 꾸미기 ● 339
예제: 커스텀 슬라이더 썸 이미지 추가 ● 340
슬라이더에 텍스트 추가 ● 344
예제: UITextField 키보드 사라지게 하기 ● 345
예제: UITextView 키보드 사라지게 하기 ● 347
예제: 텍스트 뷰에 취소 버튼 추가 ● 349
예제: 텍스트 기반 HTML 편집기 ● 352
예제: 검색바 ● 356
예제: 콜아웃뷰 추가 ● 358
페이지 표시 컨트롤 추가 ● 361
예제: 툴바 커스터마이징 ● 365
툴바 팁 ● 369
정리 ● 370
09장 사람, 위치, 변화 ● 371
연락처 프레임워크 종류 ● 371
연락처 UI 프레임워크 ● 372
연락처 프레임워크 ● 372
예제: 연락처 이미지 데이터 접근 ● 374
예제: 개인 연락처 정보 보이기 ● 377
예제: 연락처 브라우징 ● 378
이메일 주소만 브라우징하기 ● 381
연락처 추가 ● 381
코어 로케이션 ● 382
코어 로케이션 동작 원리 ● 383
예제: 코어 로케이션 ● 385
예제: 위치 정보를 주소로 변환 ● 390
예제: 코어 로케이션 데이터를 사용한 지도 찾기 ● 393
예제: 코어 디바이스 정보 접근 ● 396
예제: 근접 센서 켜고 끄기 ● 397
예제: 가속도를 사용해 위아래 구별 ● 398
예제: 가속도 센서를 이용해 화면 상 오브젝트 움직이기 ● 400
정리 ● 404
10장 서비스 연결 ● 405
예제: 애플리케이션 설정 추가 ● 405
애플리케이션 설정 ● 406
예제: 커스텀 URL 스킴 등록 ● 411
예제: 네트워크 상태 확인 ● 414
네트워크 연결 상태 확인 ● 414
아이폰 로컬 IP 주소 조회 ● 415
사이트 IP 주소 조회 ● 417
사이트 사용 가능 여부 확인 ● 417
예제: 아이폰 데이터베이스 사용 ● 419
예제: XML을 트리 데이터 구조로 변환 ● 422
예제: 키체인 아이템 저장과 조회 ● 425
키체인에 여러 값 저장 ● 431
키체인 지속성 ● 433
파일 전송과 수신 ● 433
예제: 간단한 웹 서버 만들기 ● 435
푸시 알림 서비스 ● 440
정리 ● 441
11장 커버플로우 만들기 ● 443
UICoverFlowLayer 클래스 ● 443
커버플로우 뷰 만들기 ● 445
커버플로우 뷰 컨트롤러 만들기 ● 448
커버플로우 데이터소스 메소드 ● 450
커버플로우 델리게이트 메소드 ● 450
정리 ● 455
부록 아이폰 개발에 꼭 필요한 오브젝티브C 기초와 메모리 관리 ● 457