SwiftUIの最新情報

SwiftUIの最新のアップデートと機能について詳しく解説します。 2027リリースでは、SwiftUIのメジャーアップグレード、パワフルな新しいDocument API、拡張されたツールバーコントロール、パフォーマンスの大幅な向上により、ビルド時間とデータフローが改善されています。

Xcode 27のエージェントスキル

Xcode 27では、コーディングアシスタントで使用できるスキルセットを活用して、新しいSwiftUI APIとベストプラクティスを取り入れることができます。 これらのスキルはSwiftUIの規則をコード全体に適用し、2027リリースの新しいAPIをスムーズに利用できるようにします。

ツールバーのカスタマイズ

ツールバーに関する新しいAPIを使用すると、アプリをサイズ変更した時、各アイテムをどのように表示するかを正確に制御できます。 重要なグループを常に表示させるにはvisibilityPriorityモディファイアを使用します。優先度の低いアイテムを常にオーバーフローメニューに表示するにはtoolbarOverflowMenuを使用します。また、共有ボタンなどの重要なアクションを常に右端に固定するにはtopBarPinnedTrailingを使用します。 新しいtoolbarMinimizeBehaviorモディファイアは、スクロール時にナビゲーションバーを自動的に縮小します。

Document API

拡張されたSwiftUI Document APIを使用すると、保存済みドキュメントの構造を直接制御できます。 読み出し/書き込みについてはWritableDocumentおよびReadableDocumentに従ってください。これらは非同期のインクリメンタルなディスク操作、およびFoundation Subprogress APIによる進捗状況レポートを提供します。 DocumentCreationSource APIでは、それぞれNewDocumentButtonを使用する複数の作成ソースを宣言できます。

プレゼンテーションとインタラクション

新しい並べ替え可能なコンテナAPIにより、ユーザーは、リストだけでなくどのコンテナでも、List、LazyVGridなどで同じコードを使用して、アイテムをドラッグして並べ替えることができます。 watchOSでも初めて並べ替えが可能になりました。 swipeActionsContainerをScrollViewに追加すると、レイアウト全体で並べ替えが可能になります。 確認ダイアログとアラートで、シートで使用するのと同じアイテムバインドパターンがサポートされるようになりました。そのため、バインド値を設定するとプレゼンテーションが自動的に表示されます。

パフォーマンスとデータフロー

AsyncImageはコードを一切変更せずに、サーバキャッシュヘッダーに基づいて、標準のHTTPキャッシュをデフォルトでサポートするようになりました。 より詳細な制御が必要な場合は、カスタムのURLRequestを渡すか、asyncImageURLSessionモディファイアを使用して独自のURLCacheによりURLSessionを設定します。 Stateがマクロになったおかげで、@Stateに保存されたクラスは、ビューの生存期間中に一度だけ、遅延して初期化されるようになりました。 ViewBuilderに変更が加えられ、ContentBuilderとして提示されるようになったことで、Xcode 27でのビルド時間が大幅に短縮されました。