서문과 독서 안내
원저자: Chris Eidhof와 Florian Kugler. 『Thinking in SwiftUI』 iOS 17 개정판, 원문 PDF 1–6쪽의 한국어 번역입니다.
독서 안내
이 독서본은 제공된 PDF의 설명을 원래 순서대로 옮깁니다. View, view tree, render tree, identity, State, Binding 같은 기술 용어와 예제 코드는 원문을 유지합니다. 일반 설명과 코드 주석은 한국어로 읽을 수 있습니다.
페이지마다 원문과 도표를 펼쳐 영어 문장, 그림, 예제의 배치를 대조할 수 있습니다. 원문 쪽수는 PDF 파일의 첫 페이지를 1쪽으로 센 번호입니다. 왼쪽 목차와 글 아래의 이전 및 다음 링크로 장을 이동합니다.
본문의 저희는 원저자를 가리킵니다. 지원 버전과 현재라는 표현은 iOS 17 개정판의 집필 시점을 따릅니다.
표지
Thinking in SwiftUI
iOS 17에 맞춰 개정
Chris Eidhof와 Florian Kugler 지음
원문 1쪽 표지

원문 목차
| 장 | 내용 | 원문 쪽수 |
|---|---|---|
| 1 | 서문 | 4 |
| 2 | View tree | 7 |
| View builder | 9 | |
| Render tree | 15 | |
| Identity | 17 | |
| 3 | State와 Binding | 22 |
| State | 24 | |
| Observable macro | 31 | |
| ObservableObject protocol | 39 | |
| Binding | 47 | |
| View 업데이트와 성능 | 53 | |
| Property wrapper의 용도 | 54 | |
| 4 | Layout | 56 |
| Leaf view | 60 | |
| View modifier | 65 | |
| Container view | 74 | |
| Alignment | 82 | |
| 5 | Environment | 91 |
| Environment 값 접근 | 93 | |
| 사용자 정의 environment key | 94 | |
| 사용자 정의 component style | 98 | |
| Environment object | 103 | |
| 6 | Animation | 105 |
| Animation 제어 | 109 | |
| Animatable protocol | 116 | |
| Transition | 120 | |
| 7 | 고급 Layout | 131 |
| Layout protocol | 132 | |
| Preference 기반 layout | 137 | |
| Variadic view | 144 | |
| Coordinate space | 145 | |
| Anchor | 146 | |
| Matched geometry effect | 148 |
원문 2쪽 목차

원문 3쪽은 빈 페이지입니다.
서문
원문 4쪽은 제1장 Introduction의 시작 페이지입니다.
원문 4쪽 장 표지

SwiftUI가 처음 등장했을 때, UIKit과는 접근 방식이 완전히 달랐습니다. 저희가 이 책의 초판을 쓴 이유는 SwiftUI의 동작 방식에 대한 mental model을 잡는 데 도움을 드리기 위해서였습니다. 그 뒤로 몇 년이 흘렀고, 크고 작은 여러 개발팀에 이 내용을 가르칠 기회가 있었습니다. 그 과정에서 워크숍의 피드백을 바탕으로 SwiftUI의 기초를 설명하는 방식을 계속 다듬었습니다. 이번 『Thinking in SwiftUI』 개정판은 그 여정의 결과입니다. 워크숍에서 SwiftUI를 가르치는 방식에 맞추어 책 전체를 처음부터 다시 썼습니다.
Apple의 SwiftUI API 문서는 지난 몇 년 동안 많이 개선되었습니다. 그래도 SwiftUI가 어떻게 동작하는지 개념적으로 설명하는 문서는 여전히 필요하다고 생각합니다. 초판과 마찬가지로 이번 책도 여기에 초점을 맞춥니다. SwiftUI의 개념을 탄탄하게 이해해서, 계속 늘어나는 플랫폼별 API는 스스로 익혀 나갈 수 있도록 돕고자 합니다.
SwiftUI를 효율적으로 사용하려면, 작성한 코드가 어떻게 view tree로 바뀌는지 이해하는 것이 핵심이라고 생각합니다. 첫 번째 본문 장에서는 이 부분을 자세히 다룹니다. 이어서 view tree가 state, layout, animation 등의 관점에서 어떻게 해석되는지 살펴봅니다.
이를 위해 이번 판에는 시각적인 설명을 더 많이 넣었습니다. 책을 생성하는 기반 도구를 전면 개편한 덕분이기도 합니다. LaTeX 기반 작업 방식에서 순수 Swift와 TextKit 기반 도구로 옮겼으며, 이를 통해 책 안에 SwiftUI view를 직접 넣을 수 있게 되었습니다. 도구 구성을 단순화했을 뿐 아니라, 자칫 추상적으로 느껴질 수 있는 개념을 설명하는 데 도움이 될 여러 다이어그램과 그림, preview도 만들 수 있었습니다.
이번 판의 마무리 작업을 하던 중 WWDC23이 열렸고, Apple은 여러 새로운 SwiftUI API와 기존 API의 업데이트를 발표했습니다. 책 곳곳에 새로운 API의 설명을 추가했습니다. 다만 iOS 17에서만 쓸 수 있는 API를 사용할 때는 그 사실을 명시했습니다. 이는 macOS 14와 같은 시기에 출시된 다른 플랫폼 버전에도 해당합니다.
워크숍에서 여러 번 확인했듯이, SwiftUI를 배우는 가장 좋은 방법은 직접 코드를 작성하는 것입니다. 이 책이 그 과정을 대신할 수는 없지만, 학습 과정에서 참고할 만한 책이 되고자 합니다. 책에서 배운 내용을 꾸준히 직접 적용해 보시기 바랍니다. 직접 실험하고 동작을 눈으로 확인하는 것만큼 배운 내용을 오래 기억하게 해 주는 방법은 없습니다.
책을 쓰는 동안 도움을 주신 모든 분께 감사드립니다. 교정을 맡아 준 Natalye, 기술 검토를 맡아 준 Ole, TextKit 작업을 도와준 Marcin에게 감사합니다. 워크숍을 개선하는 데 도움을 준 Robb, Ole, Juul에게도 감사드립니다. 그 덕분에 이 책도 더 좋아졌습니다. 이전 책의 독자 여러분과 워크숍 참석자 여러분이 보내 주신 모든 피드백에도 감사드립니다. 마지막으로 SwiftUI를 만든 분들께 깊이 감사드립니다.
Florian과 Chris
원문 5쪽 서문

원문 6쪽은 빈 페이지입니다.