Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for makun makun
August 31, 2026

 LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線

Avatar for makun

makun

August 31, 2026

More Decks by makun

Other Decks in Programming

Transcript

  1. 今回の検証の問い 1 LLMは Compose コードを書けるか? 2 build error を自力で直せるか? 3

    見た目を近づけられるか? 4 人間が移行したCompose実装と比べると、何が欠けるか? 9
  2. 検証の流れ 入力 XML + 限定コンテキスト ▼ 生成 LLM が Compose

    を生成 ▼ 修正① コンパイルエラーを返して直してもらう ▼ 修正② スクリーンショットを見せて直してもらう ▼ 答え合わせ 実際の移行結果との比較 11
  3. include先を渡していなかったケース 元のXML <include> × 8 LLM生成 repeat(8) + // TODO

    <LinearLayout ...> <include ... /> <include ... /> <include ... /> ... (計8つ) </LinearLayout> Column(...) { repeat(8) { index -> // TODO: include @layout/... // の rank{index+1} を後続生成 Box(...) { Text("rank${index + 1}") } } } → 20
  4. include先を渡すと、生成できる内容が増えた before repeat(8) + // TODO after repeat(8) + Row

    Column(...) { repeat(8) { index -> // TODO: include @layout/... // の rank{index+1} を後続生成 Box(...) { Text("rank${index + 1}") } } } repeat(8) { Row(...) { Box(...) Column(...) { ... // tools:text のみで // 実文言は入力に無い Text(text = "", ...) } } } → 27
  5. まず「1日で作れるなら」で計算する 作る時間( 1日 = 8時間) 480分 ÷ 1件あたり減らせる時間 5〜10分 =

    見合い始める件数 48〜96件 作る時間が増えるほど、見合いに必要な件数も増えていく 43
  6. ② 特徴に合わせて、 AIへの渡し方を変える includeがある → include先のXMLも渡す toolsに値がある → 必要なサンプル値も渡す 実行時に内容が決まる

    → 状態やデータの情報を補う WebViewなど → 使える実装方法・ルールを見直す 再設計が必要 → 人が方針を決める 50
  7. AIに仕事を任せるときに考える 3つ 1 2 3 うまくいかない理由を分 ける 理由に合わせて任せ方 を変える 繰り返す部分だけ仕組

    み化を考える 何が原因でAIだけでは進まない のか? どんな情報・ルール・判断が必要 なのか? 何件に効き、人の作業をどれだ け減らせるのか? 54