SwiftUI
WWDC2019에서 발표한 선언적/리액티브 UI 프레임워크. macOS, iOS, iPadOS, watchOS 코드를 동일한 방식으로 작성할 수 있다.
Declare the user interface and behavior for your app on every platform.
developer.apple.com/documentation/SwiftUI
특징
- single source of truth
- declaration of intention and roles
- (mostly) one way data flow
큰 틀에서 Svelte, React, Elm 등 주요 웹 프론트엔트 프레임워크와 유사하다. 다만 “Declaration of intention and roles” 부분이 뛰어난데, 웹의 경우 테일윈드 광풍 등으로 인해 이 부분이 크게 훼손되어 있다.
Articles and videos
- Introducing SwiftUI: Building Your First App (WWDC2019): SwiftUI를 처음 소개한 영상
- Introduction to SwiftUI (WWDC2020): 위 영상과 거의 완전히 동일한데 회의실 앱 대신 샌드위치 앱
- 그 밖에도 Widget, Complication (watchOS) 등이 추가됨
- Data essentials in SwiftUI (WWDC2020)
- Discover concurrency in SwiftUI (WWDC2021)
- Demystify SwiftUI (WWDC2021)
- Identity, lifecycle, dependency graph 등을 자세히 설명
- SwiftUI essentials (WWDC2024)
Changes
- Introducing SwiftUI: Building Your First App (WWDC2019): SwiftUI를 처음 소개한 영상
- What’s new in SwiftUI (WWDC2020)
- Scene API를 추가하여 (어지간하면) 전체 앱을 SwiftUI만으로 만들 수 있게 함
- 그 밖에도 Widget, Complication (watchOS) 등이 추가됨
- What’s new in SwiftUI (WWDC2021)
- 2019년이 Declarative UI, 2020년이 100% SwiftUI Apps라면, 2021년의 주제는 “Deeper adoption”이라고 말함.
- Swift에 새로 추가된
await
을 활용한 비동기 API들이 추가됨.
- What’s new in SwiftUI (WWDC2022)
- Swift Charts 추가 (Observable Plots와 유사.)
- Data-driven navigation API 추가
- MenuBar API 추가
- Custom Layout API 추가
- What’s new in SwiftUI (WWDC2023)
- ImmersiveSpace scene 등 visionOS 관련 API 추가
- MapKit, Swift Charts 등 개선
- ObservableObject 대신 Observable macro 도입. 참고: Discover Observation in SwiftUI (WWDC2023)
- SwiftData 추가
- What’s new in SwiftUI (WWDC2024)
- ControlWidget 지원 추가
- MeshGradient 지원
- New symbol effects
- Custom containers