CodexにiOSアプリ開発プラグインが登場、シミュレーター画面をブラウザに直接ストリーミング
Codexに「Build iOS Apps」プラグインが追加された。serve-simを用いてiOSシミュレーターの画面をCodex内蔵ブラウザへリアルタイムにストリーミングし、SwiftUIプレビューのホットリロードにも対応。Xcode Canvasを開くことなくブラウザ上でアプリの確認やデバッグが行える。
iOSアプリを開発したことのある人なら、誰もが一度は経験しているはずです。SwiftUIのプレビューを確認しようとXcode Canvasを開いたものの、読み込みが終わらなかったり、突然クラッシュして再起動を余儀なくされたりするストレスです。
Codexがこの問題に対して実践的な解決策を打ち出しました。新たに追加された「Build iOS Apps」プラグインに含まれる機能により、ローカルのiOSシミュレーターの画面をCodexの内蔵ブラウザへリアルタイムにストリーミングできるようになりました。
シミュレーター画面をブラウザへ直接ストリーミング
仕組みは非常に明快です。独自に重厚な開発環境を作り直すのではなく、既存のツールをスマートにパイプライン化しています。
アプリの画面を確認したい場合、コマンドラインから利用可能なシミュレーターの識別子を取得し、serve-simというヘルパーをバックグラウンドで立ち上げます。
このツールがシミュレーターの画面をWebストリームとして配信し、ローカルURLを発行します。Codexの内蔵ブラウザでそのURLを開くだけで、ブラウザの中で動くiOS画面の確認や直接の操作が可能になります。
プロセスの後片付けも徹底されており、ターミナルが終了した際にはトラップ機能で配信プロセスを確実に停止させます。また、単にページが読み込まれただけでなく、実際の描画フレームが届いているかを確認してから完了とする設計になっています。
プロジェクトを汚さないホットリロードの仕組み
単に画面を映すだけでなく、SwiftUIプレビューのホットリロードにもしっかり対応しています。
Swiftパッケージ形式で管理されているコンポーネントに対し、専用の起動スクリプトが用意されています。Package.swiftと対象のターゲットを指定すると、ユーザーのソースツリーの外側に、使い捨てのホストプロジェクトを自動生成してシミュレーター上で立ち上げます。
ファイル監視モードが標準で有効になっており、Swiftコードを編集すると、変更分だけを動的ライブラリとして再コンパイルし、実行中のアプリを再起動することなくプロセスへ注入します。
従来のPreviewProviderだけでなく、新しい#Preview構文にも対応しています。プレビュー対象を正規表現で絞り込んだり、複数のプレビューを切り替えたりすることも可能です。
開発者にとって安心なのは、既存のプロジェクトファイルやワークスペース、ビルド設定には一切手を加えないルールが徹底されている点です。Gitリポジトリを汚す心配がありません。
なぜ重要か
AIエージェントを活用したアプリ開発において、今回の仕組みは大きな前進だと私たちは考えます。
Web開発ではローカルサーバーを使ってAIが自律的に表示を確認し、画面崩れを直す流れが一般的でした。しかしiOS開発では、Xcodeという巨大なブラックボックスに阻まれ、AIが視覚的なフィードバックループを回すことが極めて困難でした。
シミュレーター画面をCodexのブラウザ内に引き込んだことで、AIがコードを修正し、ホットリロード後に画面キャプチャを撮ってUIを自己検証する道が開かれました。
アプローチも非常に現実的です。壊れやすいXcodeプロジェクト全体を相手にせず、モジュール化されたSwiftパッケージに焦点を絞り、外部ホストと動的ライブラリ注入でホットリロードを実現している点は見事と言えます。
もちろん、Macの実機環境とシミュレーターが必要な点は変わりませんし、巨大なモノリシック構造の古いコードベースでは恩恵を受けにくいという制約は残ります。
それでも、重くて不安定なXcode Canvasに頼らず、ブラウザ内で軽快にUIをイテレーションできる価値は絶大です。Swiftパッケージでコンポーネントを設計している開発者なら、試してみる価値は十分にあります。
情報源 (1)
- github.com(新しいタブで開きます)原文github.com