목차
CHAPTER 01 시작하기_1
 1.1 스위프트 프로그래머에게 2
 1.2 스위프트가 처음인 프로그래머에게 2
 1.3 소스 코드 다운로드 3
 1.4 피드백 3
 1.5 오탈자 3

 CHAPTER 02 애플 개발자 프로그램 가입하기_4
 2.1 Xcode 11과 iOS 13 SDK 다운로드하기 4
 2.2 애플 개발자 프로그램 4
 2.3 애플 개발자 프로그램에 등록할 시점 5
 2.4 애플 개발자 프로그램에 등록하기 6
 2.5 요약 7

 CHAPTER 03 Xcode 11과 iOS 13 SDK 설치하기_8
 3.1 macOS 버전 확인하기 8
 3.2 Xcode 11과 iOS 13 SDK 설치하기 9
 3.3 Xcode 시작하기 9
 3.4 애플 아이디를 Xcode 설정에 추가하기 10
 3.5 개발자 인증서와 배포 인증서 11

 CHAPTER 04 Xcode 11 플레이그라운드_12
 4.1 플레이그라운드란? 12
 4.2 새로운 플레이그라운드 생성하기 13
 4.3 스위프트 플레이그라운드 예제 기초 14
 4.4 결과 보기 17
 4.5 서식 있는 텍스트 주석 추가하기 18
 4.6 여러 개의 플레이그라운드 페이지로 작업하기 20
 4.7 플레이그라운드에서 UIKit으로 작업하기 21
 4.8 플레이그라운드에 리소스 추가하기 22
 4.9 향상된 라이브 뷰로 작업하기 24
 4.10 요약 26

 CHAPTER 05 스위프트 데이터 타입, 상수, 그리고 변수_27
 5.1 스위프트 플레이그라운드 사용하기 28
 5.2 스위프트 데이터 타입 28
 5.3 스위프트 변수 33
 5.4 스위프트 상수 34
 5.5 상수와 변수 선언하기 34
 5.6 타입 선언과 타입 추론 35
 5.7 스위프트 튜플 36
 5.8 스위프트 옵셔널 타입 37
 5.9 타입 캐스팅과 타입 검사 41
 5.10 요약 44

 CHAPTER 06 스위프트 연산자와 표현식_45
 6.1 스위프트 표현식 구문 45
 6.2 기본 할당 연산자 46
 6.3 스위프트 산술 연산자 46
 6.4 복합 할당 연산자 47
 6.5 비교 연산자 48
 6.6 불리언 논리 연산자 49
 6.7 범위 연산자 49
 6.8 삼항 연산자 51
 6.9 비트 연산자 51
 6.10 복합 비트 연산자 55
 6.11 요약 56

 CHAPTER 07 스위프트의 제어 흐름_57
 7.1 반복 제어 흐름 57
 7.2 스위프트 for-in 구문 58
 7.3 repeat ... while 반복문 60
 7.4 반복문에서 빠져나오기 60
 7.5 continue 구문 61
 7.6 조건부 흐름 제어 62
 7.7 if 구문 사용하기 62
 7.8 if ... else ... 구문 사용하기 63
 7.9 if ... else if ... 구문 사용하기 63
 7.10 guard 구문 64
 7.11 요약 65

 CHAPTER 08 스위프트의 switch 구문_66
 8.1 왜 switch 구문을 사용하나? 66
 8.2 switch 구문 사용하기 66
 8.3 스위프트의 switch 구문 예제 67
 8.4 case 구문 결합하기 68
 8.5 switch 구문에서 범위 매칭하기 69
 8.6 where 구문 사용하기 69
 8.7 fallthrough 70
 8.8 요약 71

 CHAPTER 09 스위프트 5의 함수, 메서드, 클로저 개요_72
 9.1 함수란 무엇인가? 72
 9.2 메서드란 무엇인가? 73
 9.3 스위프트 함수를 선언하는 방법 73
 9.4 단일 표현식에서의 암묵적 반환 74
 9.5 스위프트 함수 호출하기 75
 9.6 반환값 처리하기 75
 9.7 지역 매개변수명과 외부 매개변수명 75
 9.8 함수에 디폴트 매개변수 선언하기 77
 9.9 여러 결괏값 반환하기 77
 9.10 가변개수 매개변수 78
 9.11 변수인 매개변수 79
 9.12 입출력 매개변수로 작업하기 79
 9.13 매개변수인 함수 81
 9.14 클로저 표현식 83
 9.15 스위프트의 클로저 85
 9.16 요약 85

 CHAPTER 10 스위프트의 객체지향 프로그래밍 기초_86
 10.1 객체란 무엇인가? 86
 10.2 클래스란 무엇인가? 87
 10.3 스위프트 클래스 선언하기 87
 10.4 클래스에 인스턴스 프로퍼티 추가하기 88
 10.5 메서드 정의하기 88
 10.6 클래스 인스턴스 선언하기와 초기화하기 90
 10.7 클래스 인스턴스 초기화하기와 소멸하기 90
 10.8 메서드 호출하기와 프로퍼티 접근하기 91
 10.9 저장 프로퍼티와 연산 프로퍼티 92
 10.10 지연 저장 프로퍼티 94
 10.11 스위프트에서 self 사용하기 95
 10.12 스위프트 프로토콜 이해하기 96
 10.13 불투명 반환 타입 98
 10.14 요약 100

 CHAPTER 11 스위프트의 서브클래싱과 익스텐션의 개요_101
 11.1 상속, 클래스, 그리고 하위 클래스 101
 11.2 스위프트 상속 예제 102
 11.3 하위 클래스의 기능 확장하기 103
 11.4 상속받은 메서드 오버라이딩하기 104
 11.5 하위 클래스 초기화하기 105
 11.6 SavingsAccount 클래스 사용하기 106
 11.7 스위프트 클래스 익스텐션 106
 11.8 요약 107

 CHAPTER 12 스위프트 구조체_108
 12.1 스위프트 구조체 개요 108
 12.2 값 타입 vs. 참조 타입 109
 12.3 구조체와 클래스는 언제 사용하는가? 112
 12.4 요약 112

 CHAPTER 13 스위프트 프로퍼티 래퍼_113
 13.1 프로퍼티 래퍼 이해하기 113
 13.2 간단한 프로퍼티 래퍼 예제 114
 13.3 여러 변수와 타입 지원하기 116
 13.4 요약 119

 CHAPTER 14 스위프트의 배열과 딕셔너리 컬렉션으로 작업하기_120
 14.1 가변형 컬렉션과 불변형 컬렉션 120
 14.2 스위프트 배열 초기화 120
 14.3 스위프트 배열로 작업하기 122
 14.4 배열 항목 섞기와 무작위로 가져오기 123
 14.5 배열에 항목 추가하기 124
 14.6 배열 반복하기 124
 14.7 타입이 혼합된 배열 생성하기 125
 14.8 스위프트 딕셔너리 컬렉션 126
 14.9 스위프트 딕셔너리 초기화 127
 14.10 시퀀스 기반의 딕셔너리 초기화 128
 14.11 딕셔너리 항목 개수 128
 14.12 딕셔너리 항목 접근하기와 갱신하기 129
 14.13 딕셔너리 항목 추가하기와 제거하기 129
 14.14 딕셔너리 반복 130
 14.15 요약 130

 CHAPTER 15 스위프트의 에러 핸들링 이해하기_131
 15.1 에러 핸들링 이해하기 131
 15.2 에러 타입 선언하기 132
 15.3 에러 던지기 132
 15.4 에러를 던지는 메서드와 함수 호출하기 134
 15.5 에러 객체에 접근하기 135
 15.6 에러 캐칭 비활성화하기 135
 15.7 defer 구문 사용하기 135
 15.8 요약 136

 CHAPTER 16 SwiftUI 개요_137
 16.1 UIKit과 인터페이스 빌더 138
 16.2 SwiftUI의 선언적 구문 138
 16.3 SwiftUI는 데이터 주도적이다 139
 16.4 SwiftUI vs. UIKit 140
 16.4 요약 142

 CHAPTER 17 SwiftUI 모드로 Xcode 이용하기_143
 17.1 Xcode 11 시작하기 143
 17.2 SwiftUI 프로젝트 생성하기 144
 17.3 SwiftUI 모드의 Xcode 145
 17.4 프리뷰 캔버스 147
 17.5 프리뷰 고정하기 148
 17.6 화면 설계 수정하기 149
 17.7 에디터 콘텍스트 메뉴 152
 17.8 여러 디바이스에서 미리보기 153
 17.9 시뮬레이터에서 앱 실행하기 156
 17.10 실제 iOS 디바이스에서 앱 실행하기 156
 17.11 디바이스와 시뮬레이터 관리하기 159
 17.12 네트워크 테스트 활성화하기 159
 17.13 빌드 에러 처리하기 160
 17.14 애플리케이션 성능 모니터링 160
 17.15 사용자 인터페이스 레이아웃 계층구조 살펴보기 161
 17.16 요약 164

 CHAPTER 18 기본 SwiftUI 프로젝트 분석_165
 18.1 예제 프로젝트 생성하기 165
 18.2 UIKit과 SwiftUI 166
 18.3 AppDelegate.swift 파일 166
 18.4 SceneDelegate.swift 파일 167
 18.5 ContentView.swift 파일 168
 18.6 Assets.xcassets 169
 18.7 Info.plist 169
 18.8 LaunchScreen.storyboard 169
 18.9 요약 169

 CHAPTER 19 SwiftUI로 커스텀 뷰 생성하기_170
 19.1 SwiftUI 뷰 170
 19.2 기본 뷰 생성하기 171
 19.3 뷰 추가하기 172
 19.4 하위 뷰로 작업하기 174
 19.5 프로퍼티로서의 뷰 175
 19.6 뷰 변경하기 176
 19.7 텍스트 스타일로 작업하기 176
 19.8 수정자 순서 178
 19.9 커스텀 수정자 179
 19.10 기본적인 이벤트 처리 180
 19.11 onAppear 메서드와 onDisappear 메서드 181
 19.12 커스텀 컨테이너 뷰 만들기 181
 19.13 요약 183

 CHAPTER 20 SwiftUI 스택과 프레임_184
 20.1 SwiftUI 스택 184
 20.2 Spacer, alignment, 그리고 padding 187
 20.3 컨테이너의 자식 뷰 제한 189
 20.4 텍스트 줄 제한과 레이아웃 우선순위 190
 20.5 SwiftUI 프레임 192
 20.6 frame과 GeometryReader 194
 20.7 요약 195

 CHAPTER 21 상태, Observable 객체, 그리고 Environment 객체로 작업하기_196
 21.1 상태 프로퍼티 197
 21.2 상태 바인딩 199
 21.3 Observable 객체 200
 21.4 Environment 객체 202
 21.5 요약 204

 CHAPTER 22 SwiftUI 예제 튜토리얼_205
 22.1 예제 프로젝트 생성하기 205
 22.2 프로젝트 살펴보기 207
 22.3 레이아웃에 VStack 추가하기 208
 22.4 스택에 슬라이더 뷰 추가하기 209
 22.5 상태 프로퍼티 추가하기 210
 22.6 Text 뷰에 수정자 추가하기 211
 22.7 회전과 애니메이션 추가하기 212
 22.8 스택에 TextField 추가하기 214
 22.9 색상 피커 추가하기 215
 22.10 레이아웃 정리하기 216
 22.11 요약 219

 CHAPTER 23 Observable 객체와 Environment 객체 튜토리얼_220
 23.1 ObservableDemo 프로젝트에 대하여 220
 23.2 프로젝트 생성하기 221
 23.3 Observable 객체 추가하기 221
 23.4 ContentView 레이아웃 설계하기 222
 23.5 두 번째 뷰 추가하기 224
 23.6 내비게이션 추가하기 225
 23.7 Environment 객체 사용하기 226
 23.8 요약 228

 CHAPTER 24 스택 정렬과 정렬 가이드_229
 24.1 컨테이너 정렬 229
 24.2 정렬 가이드 232
 24.3 정렬 가이드 도구 사용하기 235
 24.4 커스텀 정렬 타입 236
 24.5 스택 정렬 교차하기 239
 24.6 ZStack 커스텀 정렬 241
 24.7 요약 245

 CHAPTER 25 SwiftUI 리스트와 내비게이션_246
 25.1 SwiftUI 리스트 246
 25.2 SwiftUI 동적 리스트 248
 25.3 NavigationView와 NavigationLink 252
 25.4 편집 가능하게 만들기 253
 25.5 요약 256

 CHAPTER 26 SwiftUI 리스트와 내비게이션 튜토리얼_257
 26.1 ListNavDemo 프로젝트에 대하여 257
 26.2 ListNavDemo 프로젝트 생성하기 258
 26.3 프로젝트 준비하기 258
 26.4 Car 구조체 추가하기 259
 26.5 JSON 데이터 로딩하기 260
 26.6 데이터 저장소 추가하기 261
 26.7 콘텐트 뷰 설계하기 261
 26.8 상세 뷰 설계하기 264
 26.9 리스트에 내비게이션 추가하기 266
 26.10 자동차 추가하는 뷰 설계하기 267
 26.11 Add 버튼과 Edit 버튼 구현하기 270
 26.12 Edit 버튼 메서드 추가하기 272
 26.13 요약 273

 CHAPTER 27 SwiftUI에서 탭 뷰 만들기_274
 27.1 SwiftUI 탭 뷰 개요 274
 27.2 TabViewDemo 앱 생성하기 275
 27.3 TabView 컨테이너 추가하기 275
 27.4 콘텐트 뷰 추가하기 276
 27.5 탭 아이템 추가하기 276
 27.6 탭 아이템 태그 추가하기 277
 27.7 요약 278

 CHAPTER 28 SwiftUI에서 콘텍스트 메뉴 바인딩하기_279
 28.1 ContextMenuDemo 프로젝트 생성하기 279
 28.2 콘텐트 뷰 준비하기 279
 28.3 콘텍스트 메뉴 추가하기 280
 28.4 콘텍스트 메뉴 테스트하기 281
 28.5 요약 282

 CHAPTER 29 SwiftUI 그래픽 드로잉 기초_283
 29.1 DrawDemo 프로젝트 생성하기 283
 29.2 SwiftUI 도형 283
 29.3 오버레이 사용하기 286
 29.4 커스텀 경로와 도형 그리기 286
 29.5 그래디언트 그리기 289
 29.6 요약 292

 CHAPTER 30 SwiftUI 애니메이션과 전환_293
 30.1 AnimationDemo 예제 프로젝트 생성하기 293
 30.2 암묵적 애니메이션 293
 30.3 애니메이션 반복하기 296
 30.4 명시적 애니메이션 297
 30.5 애니메이션과 상태 바인딩 298
 30.6 자동으로 애니메이션 시작하기 299
 30.7 SwiftUI 전환 302
 30.8 전환 결합하기 303
 30.9 비대칭 전환 304
 30.10 요약 304

 CHAPTER 31 SwiftUI에서 제스처 작업하기_305
 31.1 GestureDemo 예제 프로젝트 생성하기 305
 31.2 기본 제스처 305
 31.3 onChanged 액션 콜백 308
 31.4 updating 콜백 액션 309
 31.5 제스처 구성하기 311
 31.6 요약 313

 CHAPTER 32 UIView와 SwiftUI 통합하기_314
 32.1 SwiftUI와 UIKit의 통합 314
 32.2 UIView를 SwiftUI와 통합하기 315
 32.3 Coordinator 추가하기 317
 32.4 UIKit 델리게이션과 데이터 소스 처리하기 319
 32.5 예제 프로젝트 320
 32.6 UIScrollView 래핑하기 320
 32.7 코디네이터 구현하기 322
 32.8 MyScrollView 사용하기 323
 32.9 요약 324

 CHAPTER 33 UIViewController를 SwiftUI와 통합하기_325
 33.1 UIViewController와 SwiftUI 325
 33.2 ViewControllerDemo 프로젝트 생성하기 326
 33.3 UIImagePickerController 래핑하기 326
 33.4 콘텐트 뷰 설계하기 327
 33.5 MyImagePicker 완성하기 329
 33.6 콘텐트 뷰 완성하기 331
 33.7 앱 테스트하기 332
 33.8 요약 333

 CHAPTER 34 SwiftUI와 UIKit 통합하기_334
 34.1 호스팅 컨트롤러의 개요 334
 34.2 UIHostingController 예제 프로젝트 335
 34.3 SwiftUI 콘텐트 뷰 추가하기 335
 34.4 스토리보드 준비하기 336
 34.5 호스팅 컨트롤러 추가하기 339
 34.6 Segue 액션 구성하기 340
 34.7 컨테이너 뷰 포함하기 343
 34.8 코드로 SwiftUI 포함하기 346
 34.9 요약 348

 CHAPTER 35 앱 스토어에 iOS 13 애플리케이션 등록을 위한 준비와 제출하기_349
 35.1 iOS 배포 인증서 검증하기 349
 35.2 앱 아이콘 추가하기 352
 35.3 시작 화면 설계하기 353
 35.4 프로젝트를 팀에 할당하기 354
 35.5 배포를 위해 애플리케이션 아카이브하기 354
 35.6 iTunes Connect에서 애플리케이션 설정하기 355
 35.7 애플리케이션 검증하기와 제출하기 357
 35.8 검수를 위해 앱 구성하고 제출하기 360

찾아보기 363
닫기