【スウィフトユーアイ】

SwiftUI とは?

最終更新:
💡 状態に合わせた画面を、Swiftで宣言する

Appleの宣言的UIフレームワーク。Swiftで画面の構造と状態に応じた表示を記述し、iOS・iPadOS・macOS・watchOS・tvOS・visionOS向けのUIを構築できる。

📌 このページのポイント
同じ青い文字を表示する2つの書き方 UIKit SwiftUI 部品を作り、設定して追加 表示の構造を宣言 let label = UILabel() label.text = "Hello" label.textColor = .blue view.addSubview(label) Text("Hello") .foregroundStyle(.blue) Hello SwiftUIは状態に応じた表示も更新する 既存のUIKit・AppKitとも組み合わせられる
UIKitで部品を作って設定する書き方と、SwiftUIで表示を宣言する書き方の例。周囲のViewなどの定義と、文字の位置・サイズを決めるレイアウト設定は省略しています。
ひよこ ひよこ
宣言的UIってどういう意味?普通のUIと何が違うの?
ペンギン先生 ペンギン先生
命令的な書き方では、部品を作って属性を設定し、画面に追加する手順を指示するよ。SwiftUIではTextやButtonなどを組み合わせて、状態に応じて何を表示するかを記述するんだ。描画や表示の更新はフレームワークが処理するよ。
ひよこ ひよこ
それって楽なの?
ペンギン先生 ペンギン先生
たとえばText("Hello").foregroundStyle(.blue)なら、青い文字を表示する構造を表せるよ。リストもListで記述できるんだ。繰り返しのコードを減らせる場面はあるけれど、データの管理や操作の処理まで自動で用意されるわけではないよ。
ひよこ ひよこ
ライブプレビューってどういう仕組み?
ペンギン先生 ペンギン先生
XcodeのCanvasで画面の見た目や操作を確認できるよ。コードをコンパイルして実行した結果を表示するので、ビルドが不要という意味ではないんだ。プレビューで試しながら調整し、実機などでもアプリの動作を確認しよう。
ひよこ ひよこ
iPhoneアプリだけじゃなくてMacアプリも作れるの?
ペンギン先生 ペンギン先生
そうだよ。iOS・iPadOS・macOS・watchOS・tvOS・visionOSに対応している。画面の構造を共有できる一方、画面サイズや各プラットフォームの操作に合わせた調整も必要だね。
ひよこ ひよこ
じゃあもうUIKitは使わなくていいの?
ペンギン先生 ペンギン先生
SwiftUIはUIKitやAppKitと組み合わせて使えるよ。既存のアプリの一部へSwiftUIの画面を追加したり、SwiftUIから既存の部品を使ったりできる。必要な機能や既存のコードに合わせて選べばよいんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SwiftUI」って出てきたら「Swiftで画面の構造と状態に応じた表示を書く、AppleのUIフレームワーク」と思えばだいたいOK!
📖 おまけ:英語の意味
「SwiftUI」 = Swiftのユーザーインターフェース
💬 Swift言語とUI(User Interface)の組み合わせ。2019年のWWDCで紹介されたフレームワークだよ。

参考資料

← 用語集にもどる