この記事は何?
WWDC2019で発表されたSwiftUIについて、いつか自分が勉強するときのために2019.6.5時点の情報をざっとまとめました。
SwiftUIは...
あらゆるAppleデバイス用のユーザーインターフェースを構築する方法
Xcode11に搭載される新機能
macOS10.15 Catalina 以降で使用可能
革新的で非常にシンプル
Swiftで動作するツールとAPIのセット
キーワードから探るSwiftUI
Better apps. Less code.
少ないコードで、良いアプリを
読みやすくて自然に書くことができる宣言型のSwift構文
Xcode11のデザインツールとシームレスに連携
コードとデザインを完全に同期
ダイナミックタイプ、ダークモード、ローカライズ、およびアクセシビリティの自動サポート
Declarative Syntax
宣言的な構文
「宣言的」とは、制約や定義、性質を記述することらしい...。
ユーザーインターフェイスの動作をシンプルに表現できる。
たとえば...
- テキストフィールド項目のリストが欲しいと書いて、
- 各フィールドの配置、フォント、色などを記述する
これまで以上にシンプルで読みやすいコードによって、時間とメンテナンスを節約する。
import SwiftUI
struct Content: View {
@State var model = Themes.listModel
var body: some View {
List(model.items, action: model.selectItem) { item in
Image(item.image)
VStack(alignment: .leading) {
Text(item.title)
Text(item.subtitle)
.color(.gray)
}
}
}
}
宣言スタイルは、アニメーションのような複雑な概念にも適用される。
アニメーションをほぼすべてのコントロールに簡単に追加し、数行のコードですぐに使えるエフェクトのコレクションを選択できる。
実行時に、システムはスムーズに動作させるために必要なすべてのステップを処理し、アプリを安定させるために中断を処理する。
Design Tools
Xcode11に含まれる新しいデザインツール。
SwiftUIを使用して、インターフェイスをドラッグアンドドロップで簡単に作成できる。
デザインキャンバスで作業しているときは、編集したすべてのものが隣接するエディタのコードと完全に同期する。
コードを入力すると、その結果がプレビューとして即座に反映される。
プレビューに加えた変更は、コードにすぐに反映される。
Xcodeは変更を即座に再コンパイルして、実行中のバージョンのアプリに挿入する。
いつでも表示と編集ができる。
Drag and drop
キャンバス上のコントロールをドラッグして、コンポーネントを配置できる。
クリックしてインスペクタが開き、フォント、色、配置、その他のデザインオプションを選択できる。
カーソルを使ってコントロールを簡単に並べ替えられる。
ほとんどのビジュアルエディタはコードエディタ内でも使用できる。
インターフェイスの一部を手動でコーディングしたい場合、インスペクタを使用して各コントロールの新しい修飾子を見つけられる。
ライブラリからコントロールをドラッグして、デザインキャンバスまたは直接コードにドロップすることもできる。Dynamic replacement
編集したコードとライブアプリを直接、置き換えるSwiftの新機能。
SwiftコンパイラとランタイムはXcodeに完全に組み込まれている。
アプリは常に構築され実行される。
デザインキャンバスは、アプリ実物を描画する。Previews
SwiftUIビューのプレビューをいくつも作成できる。
サンプルのデータを表示できる。
フォント、ローカライズ、ダークモードなど、表示しうるほぼすべてを設定できる。
任意のデバイスと任意の向きでUIを表示できる。
Native All Apple Platforms
数十年に及ぶ世界で最も革新的で直感的なUI開発の経験に基づいて構築された。
SwiftUIは完全にネイティブ。
わずかなコードと対話的なデザインキャンバスで、各プラットフォームのテクノロジに直接アクセスする。
公開されているチュートリアル
一歩ずつ学べるガイダンスと詳細なリファレンス