画面の色や余白を1行変えるだけで、Gradleビルドと画面遷移を繰り返す——Android開発者なら誰もが経験する負担です。Compose HotSwan v2 betaは、その待ち時間をほぼ消し去ります。さらに、LLMが実行中のアプリのUIコードを書き換えた結果を、実機にリアルタイムで映し出せます。
この記事では、v2 betaで何が変わったのか、AI連携の仕組み、導入手順までを整理します。
- v2 betaで可能になった変更の範囲(画面全体の差し替えを含む)
- v1との違いと、状態が保持される理由
- LLM・AIエージェントと組み合わせた開発フロー
- 2.0.0-beta01のインストール手順
v2 betaで広がったホットリロードの範囲
Compose HotSwanは、Jetpack ComposeのUIを実機やエミュレータ上でホットリロードするJetBrains IDEプラグインとGradleコンパイラプラグインの組み合わせです。開発者のJaewoong Eum氏が2026年6月18日にv2 betaを発表し、Maven Centralには2.0.0-beta01が公開されています。
v1は色・余白・テキストなどの値変更をほぼ即時に反映できました。一方、Composableの追加やレイアウトの組み替え、画面全体の置き換えには対応できず、フルビルドに戻る場面がありました。
v2 betaではこの壁が大きく動きます。レイアウトの再構成、Composableの追加・削除、条件分岐の変更、画面全体をまったく別のコードに差し替える編集まで、実行中のアプリに適用できます。公式デモでは、Now in AndroidのFor You画面を銀河テーマの別画面に置き換え、アプリ再起動なしで約3秒後に反映されています。ナビゲーションスタックやスクロール位置も維持されます。
なぜv2で構造変更が通るのか
AndroidのART(Android Runtime)は、読み込み済みクラスの構造変更に厳しい制限があります。v1はメソッド本体の差し替えまでで、Composableの追加や画面の組み替えはARTの限界を超えていました。
v2は専用のインタープリタエンジンを使い、構造変更をARTの再定義に頼らず実行します。FlutterやReact Nativeが採る方式に近く、ネイティブのJetpack ComposeとKotlinのまま、より広い編集をホットリロードの対象にします。
変更の軽さに応じて適用経路も分岐します。色や数値などリテラル値だけの変更はliteral patchingと呼ばれる経路で、コンパイルを省略して50ミリ秒未満で反映されます。構造やロジックを含む変更は差分だけをインクリメンタルコンパイルし、約1〜3秒でデバイスに適用されます。
LLMがUIをリアルタイム編集する仕組み
v2 betaの注目点は、AIコーディングツールとの連携です。Claude CodeやCursorなど、ディスク上のファイルを直接編集するツールは、保存と同時にHotSwanが変更を検知し、デバイスへプッシュします。IDEの外から書き込まれた変更も、定期的なファイルシステム監視で拾います。
さらにv2にはMCP(Model Context Protocol)サーバーが組み込まれています。MCPはAIアシスタントと外部ツールを接続するプロトコルで、HotSwanはhotswan_reloadでリロードを起動し、hotswan_take_screenshotで実機のスクリーンショットを取得できます。AIが編集→リロード→画面確認→次の修正、というループを自律的に回せます。
従来のAI開発は「生成→ビルド→確認→再プロンプト」の繰り返しで、1回あたり数十秒以上かかることも珍しくありません。HotSwanはこれを「数秒以内に実機で比較して選ぶ」意思決定ループに変えます。複数のデザイン案を連続で試し、実データが載った画面で判断できます。
v1とv2の対応範囲
| 変更の種類 | v1 | v2 beta |
|---|---|---|
| 値の変更(色・余白・テキスト) | 対応 | 対応 |
| Modifierやスタイルの変更 | 対応 | 対応 |
| Composableの追加・削除 | 限定的 | 対応 |
| レイアウトの並べ替え | 限定的 | 対応 |
| 条件分岐やUIロジックの変更 | 限定的 | 対応 |
| 画面全体の差し替え | 非対応 | 対応 |
| ナビゲーション・状態の保持 | 対応 | 対応 |
関数シグネチャの変更やクラス階層の修正など、一部の編集は依然としてフルビルドにフォールバックします。v2はリロード前に構造チェックを行い、対象外と判断した場合は通常のインクリメンタルビルドへ切り替えます。
2.0.0-beta01の導入手順
ベータ版は安定版とは別チャンネルで配布されます。GradleプラグインとIDEプラグインのバージョンは一致させる必要があります。
libs.versions.tomlにコンパイラプラグインを追加します。
[plugins]
hotswan-compiler = { id = "com.github.skydoves.compose.hotswan.compiler", version = "2.0.0-beta01" }
ルートのbuild.gradle.ktsでapply falseとして登録し、アプリモジュールで適用します。IDE側は公式サイトのベータ版ページから2.0.0-beta01をダウンロードし、Settings → Plugins → 歯車アイコン → Install Plugin from Diskでインストールします。Marketplaceの通常検索では表示されません。
アプリを通常どおりRunで起動し、View → Tool Windows → HotSwanを開いてStartを押します。ステータスがWATCHINGになれば準備完了です。Composableを編集して保存すると、再起動なしで実機に反映されます。
動作環境はAndroid API 28以上(API 30以上推奨)、Kotlin 2.3以降、Android Gradle Plugin 8.7.3以上です。v2はKotlin 2.3と2.4の両方に対応し、デバッグビルド用のクライアントライブラリはGradleプラグインが自動で取り込みます。
ホットリロードが効く場面
ビルド待ちが特に痛いのは、深い画面階層の奥にあるUIや、特定のAPIエラー時だけ出る画面、チェックアウト後のレシート画面など、再現に時間がかかるケースです。HotSwanはナビゲーションスタックとrememberの値をリロード後も保持するため、再現コストを毎回払う必要がありません。
AIのコード生成速度が上がる一方で、ビルド時間は縮まっていません。v2 betaは、そのギャップを埋めるための基盤として位置づけられています。ベータ段階のため、問題があればGitHubのissue tracker(skydoves/compose-hotswan-issuetracker)への報告が推奨されています。