Android CLIのスキルでXML ViewをJetpack Composeに移行させてみる
AndroidがCompose Firstを宣言したことでJetpack composeへの移行を考える必要があるのかなと思った
XML ViewからJetpack Composeへの移行をサポートする/migrate-xml-views-to-jetpack-composeというスキルがあるので試してみる
Android CLI
スキルを実行するにはまずAndroid CLIからスキル自体をインストールする必要があったので実行してみる
Claude Codeを利用しているので--agent=claude-codeを指定する
android skills add migrate-xml-views-to-jetpack-compose --agent=claude-code
実行すると~/.claude/skillsに/migrate-xml-views-to-jetpack-composeスキルが追加される
スキルの中身
SKILL.mdに書かれている内容を読み解くと以下のステップで実行する指示がある
- 移行候補となる最適なXMLの特定
- プロジェクトとレイアウトの分析
- 計画の作成
- XML View UIのキャプチャ(スクショ)
- Compose依存関係・コンパイラのセットアップ
- Composeテーマのセットアップ
- XMLレイアウトのComposeへの移行
- 利用箇所の置換
- 移行の検証(スクショ比較)
- XMLコードの削除
詳しくはこちらに書いてあった
移行前にスクリーンショットを撮っておいて移行後のコンポーズプレビューと比較して視覚的な一致の検証を行うらしい(スゴイ)
スキルを実行
適当にアプリを作成しXMLでViewいくつか実装した上でスキルを起動してみた結果
| before | after |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
なんか惜しい...!!
まとめ
- おおよそスキルの説明通りに動作してくれていたと思う
- 最初にどの画面を移行するか聞かれたが「全部」と答えた結果5画面の移行に
35m 31sもかかった。(Sonnet 5で実行) - スクリーンショットの比較を使った繰り返しの調整は思ったより甘かった
- 画面遷移・タップや表示切り替えなども移行前と同じ動作ができた
- 業務レベルのアプリだと一気にやるのは現実的ではないと思ったので1画面ずつやるのが良さそう
- 完璧にはいかないが作業のとっかかりとして使うには十分使えると感じた


















