이 책은 현재 절판입니다. 그간 읽어주신 독자들께 감사드립니다.SwiftUI는 물론 애플리케이션 개발과 출시를 위한 모든 과정을 담았다!
관련 사이트
전자책 구매 사이트(가나다순)
SwiftUI는 물론 애플리케이션 개발과 출시를 위한 모든 과정을 담았다!
이 책의 목적은 SwiftUI와 Xcode 11, 그리고 스위프트 5 프로그래밍 언어를 사용하여 iOS 13 애플리케이션 제작 기술을 전달하는 데 있습니다. 기초적인 내용부터 시작하여 iOS 개발 환경을 구축하는 데 필요한 과정은 물론, 스위프트 언어에 대한 학습과 테스트를 위한 플레이그라운드 사용 방법도 설명합니다. 또한, 데이터 타입, 흐름 제어, 함수, 객체지향 프로그래밍, 프로퍼티 래퍼, 그리고 에러 처리 등의 스위프트 5 프로그래밍 언어와 관련된 심도 있는 내용도 포함하고 있습니다.
책에서 다루는 내용은 모두 상세한 튜토리얼을 통해 실습할 수 있으며, 해당 예제 코드도 다운로드할 수 있습니다. 예제 코드와 함께 책의 내용을 차근차근 따라 하다 보면 SwiftUI를 이용한 iOS 13용 앱 제작기술 전반을 배우게 될 것입니다.
지은이 소개
닐 스미스(Neil Smyth)
닐 스미스는 25년 이상의 IT 개발 경력을 지녔다. 특히 프로그래밍 언어와 기업용 개발 도구, 사용자 인터페이스 디자인을 전문으로 해왔으며, 시스템 프로그래밍과 웹 개발, 마케팅까지 담당하기도 했다. IT 학사 외에 Network+, Project+, 자바와 마이크로소프트 MCP 자격증을 보유하고 있다. 또한, 40여 종의 기술 관련 서적을 집필하였으며, 현재는 미국에서 인터넷 출판과 모바일 애플리케이션 개발 회사인 Payload Media의 공동 창업자이자 CEO로 재직 중이다.
옮긴이 소개
황반석
한양대학교에서 컴퓨터 공학을 전공한 후로 지금까지 개발자의 길을 걷고 있다. 애플리케이션 개발이 천직임을 인정하면서도 혹시 다른 재능도 있는 건 아닐까 하는 희망으로 아이스하키도 해보고 기타도 만져보지만, 결국은 컴퓨터 앞에 앉아 개발에 몰두하는 자신을 발견하곤 한다. 최근에는 Flutter를 비롯한 멀티 플랫폼에 관심을 두고 있다. 옮긴 책으로는 《핵심만 골라 배우는 SwiUI 기반의 iOS 프로그래밍》 외 12종이 있다.
차례
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
제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)
'도서 소개' 카테고리의 다른 글
단단한 강화학습: 강화학습 기본 개념을 제대로 정리한 인공지능 교과서 (2) | 2020.03.26 |
---|---|
아이패드, 스마트폰, 컴퓨터 어디서나 SketchBook으로 시작하는 똥손 탈출 100일 100 드로잉 (0) | 2020.03.25 |
검색을 위한 딥러닝: 심층 신경망을 활용하는 차세대 검색 엔진 개발 (0) | 2020.03.11 |
사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이(전면개정판) (0) | 2020.03.09 |
파이썬으로 배우는 자연어 처리 인 액션 (0) | 2020.03.02 |