SwiftUI
宣言的UIフレームワーク。画面を状態の関数として表すので、更新し忘れが起きない。
Apple の宣言的 UI フレームワーク。2019 年発表。
命令的との違い#
swift
// 命令的 (UIKit)
label.text = name // 変わるたびに自分で更新する
if isHidden { label.isHidden = true }
// 宣言的 (SwiftUI)
if !isHidden { Text(name) } // 状態から画面を導出する「更新し忘れ」が原理的に起きないのが最大の利点。 命令的 UI のバグの多くは、状態と表示のずれから生じる。
中心概念#
| 概念 | 役割 |
|---|---|
| View | 画面の設計図。実体ではない |
| State | View が所有する状態 |
| Binding | 他が所有する状態への読み書き |
| Observable | 参照型のモデルの変更通知 |
| Environment | 階層を通した暗黙の受け渡し |
構成#
- 仕組み・データフロー
- Navigation・Animation・Gesture
- UIKit との関係
- SwiftData・[Core Data](/ソフトウェア開発/SwiftUI/Core Data)
参考文献#
- Apple. SwiftUI documentation. https://developer.apple.com/documentation/swiftui
- Apple. Human Interface Guidelines. https://developer.apple.com/design/human-interface-guidelines