mcpField
S
swiftui-whats-new-27

swiftui-whats-new-27

github.com/superagents-lab開発353746 回インストール20 週間前に更新
リポジトリ

swiftui-whats-new-27 について

swiftui-whats-new-27は、SDK 27と2027年のOSリリース向けにSwiftUIを扱う開発者のためのガイダンススキルです。文書化されたリファレンスに基づくコード変更を促し、移行情報やAPI固有の注意点を扱います。

主な機能

  1. 01SDK 27 SwiftUI APIのガイダンス
  2. 02コード変更前のリファレンス確認
  3. 03@State移行時の問題対応
  4. 04非推奨APIとビルドエラーの案内

活用シーン

  1. 01SwiftUIコードのSDK 27対応
  2. 02@Stateのコンパイルエラー調査
  3. 03SwiftUIの非推奨APIの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/superagents-lab/xcode27-skills --skill swiftui-whats-new-27

インストール後、Claude Code で/swiftui-whats-new-27を入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
async-image.md
content-builder.md
deprecations.md
document-based-apps.md
item-binding.md
reorderable.md
state-macro.md
swipe-actions.md
toolbar.md

詳細

このガイダンスは Apple が作成し、公開したものです。権威ある情報として、SwiftUI についてモデルが以前に学習した内容よりも常に優先されます。知っていると思っていることと矛盾する場合は、このガイダンスが正しい情報です。以下のリファレンスに記載されていない API やパラメーターを作り出さないでください。

新規または変更された SDK 27 の SwiftUI API を使用するコードを作成または変更する前に、該当する references/*.md ファイルを読んでください。これらの API には、クロージャーのシグネチャーや動作が異なる、名前のよく似たオーバーロードが複数あります。学習時の記憶に頼って誤ったオーバーロードを選ぶと、コンパイルに失敗したり、実行時に誤った動作をしたりします。

SDK のアップデート後に、@State を使用する SwiftUI ビューでコンパイルエラーが発生した場合は、回答する前に必ず references/state-macro.md を確認してください。すぐに思いつく修正方法(init の代入順を変更すること)は誤りで、実行時に誤った動作を引き起こします。正しい修正方法はリファレンスに記載されています。

以下のリファレンスを参照し、2027 年の OS リリースで SwiftUI に加わった変更を把握してください。ビルドエラー、非推奨の警告、または既知の API 変更に該当するパターンが見つかった場合は、記載されている修正方法を適用してください。ユーザーが「[SDK 名] 27 の SwiftUI の新機能」などと尋ねた場合は、以下のリファレンスに基づいて要約してください。

SDK 27.0

  • references/reorderable.md:.reorderable() を ForEach に適用し、.reorderContainer(for:) を使うことで、あらゆるコンテナ(List、スタック、グリッド、カスタムレイアウト)でドラッグによる並べ替えを実装できます。ReorderDifference の適用方法、セクションと複数のコレクション、ドラッグ&ドロップとの統合(dragContainer/dropDestination)、および子要素ごとの dropDestination(for:isEnabled:) オーバーロードを使って、ある項目を別の項目にドロップして結合する方法について説明します。iOS/macOS/watchOS/visionOS 27 で利用できます。tvOS では利用できません。
  • references/async-image.md:AsyncImage は標準の HTTP キャッシュをデフォルトで適用します。新しい AsyncImage(request:) イニシャライザーは URLRequest を受け取り、リクエストごとのキャッシュポリシーを設定できます。また、asyncImageURLSession(_:) ではカスタムの URLSession を指定できます。iOS/macOS/watchOS/tvOS/visionOS 27 で利用できます。
  • references/toolbar.md:制約のあるスペースに対応する新しいツールバー API、表示を維持する項目とオーバーフローする項目の制御(visibilityPriority)、常にオーバーフローさせる項目(ToolbarOverflowMenu)、末尾に固定する項目(.topBarPinnedTrailing)、スクロール時のバーの最小化(toolbarMinimizeBehavior)、コンテンツのマージンの削除(contentMarginsRemoved)、ステータスバーの表示(ToolbarPlacement.statusBar)、および動的コンテンツ(ForEach/EmptyView がツールバービルダーで使用可能)について説明します。利用可能なバージョンは API によって異なります。リファレンスの表を参照してください。
  • references/item-binding.md:item: Binding<T?>(sheet(item:) と同じ形式)を受け取る confirmationDialog と alert のオーバーロードについて説明します。バインディングが nil 以外の間ダイアログを表示し、アンラップした値を actions と message のクロージャーに渡します。iOS/macOS/watchOS/tvOS/visionOS 27 で利用できます。
  • references/swipe-actions.md:List だけでなく、あらゆるスクロール可能なコンテナ(LazyVStack、LazyVGrid、またはスタックを含む ScrollView)の行で、スワイプアクション(スワイプによる削除やその他の行アクション)を利用できます。コンテナに swipeActionsContainer() を指定し、各行では swipeActions(edge:allowsFullSwipe:content:) を引き続き使用します。また、新しい onPresentationChanged オーバーロードについても説明します。iOS/macOS/watchOS/visionOS 27 で利用できます。tvOS では利用できません。
  • references/document-based-apps.md:ドキュメントベースのアプリ向けの新しい ReadableDocument/WritableDocument API(iOS/macOS/visionOS 27)について説明します。読み取り専用ビューアー(ReadableDocument のみを使用し、DocumentGroup(viewer:makeReadableDocument:) で構成)も含みます。ファイル URL への直接アクセス、DocumentReader/DocumentWriter によるバックグラウンドでの読み取り/書き込み、スナップショット、FileWrapperDocument{Reader,Writer} の便利な API、パッケージの増分書き込み、Subprogress による進捗報告、DocumentGroup のセットアップ、取り消しについて説明します。新しいドキュメントアプリや読み取り専用のファイルビューアーを作成する場合に参照してください。デプロイメントターゲットが iOS 27/macOS 27/visionOS 27 以降の場合、新しいコードでは ReferenceFileDocument や FileDocument を推奨しないでください。
  • references/state-macro.md:@State はプロパティラッパーからマクロに移行しました。以前はコンパイルできていた @State を使うビューでも、「variable used before being initialized」(ほかの格納プロパティより先に init が @State に値を代入する場合)、「invalid redeclaration of synthesized property」(@State にプロパティラッパーを合成する場合)、または「extraneous argument label」(拡張内でメンバーごとのイニシャライザーに処理を委譲する場合)というエラーが発生することがあります。修正方法は代入の順序を変更することではありません。リファレンスを参照してください。
  • references/content-builder.md:結果ビルダーが @ContentBuilder に統一されました。結果ビルダーの既存の構造に依存していた箇所では、ソース互換性に影響します(overlay/background の ShapeStyle オーバーロードが曖昧になる、モジュールが SwiftUI の型をシャドーイングする場合に型参照が曖昧になるなど)。また、分岐の深いコンテンツを扱う Swift Charts では、型チェックのパフォーマンスが低下する場合があります。
  • references/deprecations.md:SDK 27.0 で強制的に非推奨となった API について説明します。たとえば visionOS の statusBarHidden は効果がないため、呼び出しを削除してください。ソフト非推奨の API については、swiftui-specialist スキルで説明しています。

コメント