Need
UI フレームワーク
Default options
Why it's needed
ウィンドウ、サイドバー、ツールバー、設定、シーン駆動型の Mac アプリ構造の実装に適した第一候補です。
.md to the page URL.
Codex use case
Codex を使って、SwiftUI によるネイティブ Mac アプリのひな形作成、ビルド、デバッグを行います。
Codex を使って macOS 向け SwiftUI アプリを構築し、シェル中心のビルド・実行ループを整備します。アプリの成長に合わせて、デスクトップネイティブなシーンとウィンドウ、AppKit 連携、署名のワークフローも追加します。
Codex を使って、SwiftUI によるネイティブ Mac アプリのひな形作成、ビルド、デバッグを行います。
Codex を使って macOS 向け SwiftUI アプリを構築し、シェル中心のビルド・実行ループを整備します。アプリの成長に合わせて、デスクトップネイティブなシーンとウィンドウ、AppKit 連携、署名のワークフローも追加します。
Codex を使って macOS 向け SwiftUI アプリを構築し、シェル中心のビルド・実行ループを整備します。アプリの成長に合わせて、デスクトップネイティブなシーンとウィンドウ、AppKit 連携、署名のワークフローも追加します。
| Skill | Why use it |
|---|---|
| Build macOS Apps | シェル中心のワークフローで macOS アプリをビルドおよびデバッグし、デスクトップネイティブな SwiftUI のシーンとウィンドウを設計します。必要に応じて AppKit と連携し、署名と公証の手順を整えます。 |
新しい Mac アプリでは、まず Codex に、適切なシーンモデルとして WindowGroup、Window、Settings、MenuBarExtra、DocumentGroup のいずれかを選ばせます。そうすれば、iOS 風の ContentView を起点に拡張していくのではなく、最初からデスクトップネイティブなアプリにできます。
実行ループはシェル中心に保ちます。Xcode プロジェクトでは xcodebuild を使います。パッケージ中心のアプリでは swift build と、古いプロセスの停止、アプリのビルド、新しい成果物の起動を行い、必要に応じてログやテレメトリも参照できるようにするプロジェクトローカルの script/build_and_run.sh ラッパーを使います。
SwiftPM のみで構成されたアプリが GUI アプリの場合は、生の実行可能ファイルを直接実行するのではなく、.app としてバンドルして起動します。これにより、ローカル検証時に Dock への表示、アクティベーション、バンドル識別情報が欠ける問題を回避できます。
作業内容がデスクトップ固有になってきたら Build macOS Apps プラグイン を追加します。このプラグインには、シェル中心のビルド・デバッグループ、SwiftPM アプリのパッケージング、ネイティブな SwiftUI のシーンとウィンドウのパターン、AppKit 連携、統合ロギング、テストのトリアージ、署名と公証のワークフローが含まれています。
プラグインとスキルのインストール方法や使い方について詳しくは プラグインのドキュメント と スキルのドキュメント を参照してください。
iOS のナビゲーションパターンより、Mac の慣例を優先します。サイドバー/詳細レイアウトには NavigationSplitView、環境設定には明示的な Settings シーン、見つけやすい操作にはツールバーとコマンド、常時利用できる軽量ユーティリティにはメニューバーの追加項目を使用します。
まず、システムマテリアル、セマンティックカラー、標準コントロールを使用します。製品で独自のデスクトップ表現が必要な場合に限り、カスタムウィンドウスタイル、ドラッグ領域、Liquid Glass サーフェスを追加します。
SwiftUI だけでは必要な動作を完全に実現できない場合は、可能な限り小さな AppKit ブリッジを追加します。たとえば、開く/保存パネル、ファーストレスポンダー制御、メニュー検証、ドラッグ&ドロップの細かな制御、特殊なコントロール 1 つのためにラップした NSView などです。
実行時の動作を確認するには、ウィンドウを開く処理、サイドバーの選択、メニューコマンド、バックグラウンド同期の周辺に Logger イベントをいくつか追加するよう Codex に依頼し、アプリ起動後に log stream でそれらのイベントを検証します。
テストが失敗した場合は、まず問題の切り分けに必要な最小範囲で xcodebuild test または swift test を Codex に実行させ、問題がコンパイルエラー、アサーション失敗、クラッシュ、テストの不安定性、環境/セットアップの問題のいずれに起因するかを分類させます。
ローカルでの反復作業から配布へ移行するときは、Xcode での手動アーカイブ手順と、繰り返しリリースできるスクリプトベースのアーカイブ・公証手順の両方を用意するよう Codex に依頼します。codesign と plutil でアプリバンドル、エンタイトルメント、Hardened Runtime を検査させ、アップロードもターミナル内で完結させたい場合は App Store Connect CLI を使用します。
アプリ全体を 1 つの巨大なビューに押し込むのではなく、メインウィンドウ、設定ウィンドウ、ユーティリティウィンドウ、メニューバーの追加項目をそれぞれ独立したシーンルートとしてモデル化します。
カスタムのサイドバー、ツールバー、マテリアルを作成する前に、標準の SwiftUI シーン API とウィンドウ API で目的の Mac 動作をすでに実現できるか確認します。
不足しているデスクトップ機能 1 つを補うために、NSViewRepresentable、NSViewControllerRepresentable、または対象を絞った NSWindow ヘルパーを使用します。ただし、選択状態とアプリ状態の情報源は SwiftUI に一本化します。
ローカルで正常に起動できても、アプリが署名済みで、公証の準備も整っていることの証明にはなりません。単発のリリース確認用に Xcode の手動アーカイブフローを維持し、再現可能な配布用にスクリプト化したアーカイブ・公証フローを追加します。ローカルでの反復作業だけでなくリリースが目的のタスクでは、codesign と plutil によるチェックも実行します。
Need
Default options
Why it's needed
Need
UI フレームワーク
Default options
Why it's needed
ウィンドウ、サイドバー、ツールバー、設定、シーン駆動型の Mac アプリ構造の実装に適した第一候補です。
Need
AppKit ブリッジ
Default options
Why it's needed
SwiftUI だけでは必要なデスクトップ動作を十分に表現できない場合は、小規模な NSViewRepresentable、NSViewControllerRepresentable、または NSWindow ブリッジを使用します。
Need
ビルドとパッケージング
Default options
xcodebuild、swift build、 App Store Connect CLI
Why it's needed
ローカルビルド、手動アーカイブ、スクリプトによる公証、App Store へのアップロードを、繰り返し実行できるターミナル中心のループにまとめます。
| Need | Default options | Why it's needed |
|---|---|---|
| UI フレームワーク | SwiftUI | ウィンドウ、サイドバー、ツールバー、設定、シーン駆動型の Mac アプリ構造の実装に適した第一候補です。 |
| AppKit ブリッジ | AppKit | SwiftUI だけでは必要なデスクトップ動作を十分に表現できない場合は、小規模な NSViewRepresentable 、 NSViewControllerRepresentable 、または NSWindow ブリッジを使用します。 |
| ビルドとパッケージング | xcodebuild 、 swift build 、 App Store Connect CLI | ローカルビルド、手動アーカイブ、スクリプトによる公証、App Store へのアップロードを、繰り返し実行できるターミナル中心のループにまとめます。 |
Codex と Build macOS Apps プラグインを使って、アプリのアイデアをデスクトップネイティブの `NavigationSplitView`...
Codex と Build macOS Apps プラグインを使い、ウィンドウ、サイドバー、コマンド、同期フローの要所に、重要な情報に絞った少数の `Logger`...
Codex と Build iOS Apps プラグインを使って、App Intents を通じてアプリが公開すべきアクションとエンティティを特定し、Shortcuts や...