Slide 1

Slide 1 text

Sansan株式会社 部署 名前 200以上ある画面の EdgeToEdge対応を 爆速で終わらせた話 Sansan技術本部 技術本部 Eight Engineering Unit Mobile Applicationグループ 若田 直希

Slide 2

Slide 2 text

若田 直希 Sansan株式会社 技術本部 Eight Engineering Unit Mobile Applicationグループ - 2023/4 にAndroidエンジニアとしてキャリアスタート - 2025/7-10 フィリピンに留学 - 2025/11 入社。名刺アプリ「Eight」のAndroid開発を担当

Slide 3

Slide 3 text

名刺アプリ「 Eight」

Slide 4

Slide 4 text

直近のAndroid OSアップデート 最大の敵それは ...

Slide 5

Slide 5 text

EdgeToEdgeとは - 表示領域が端から端まで広がること - 画面がより広く、没入感のある見た目になる - しかし対応ができていないと表示が崩れる 2025年8月31日までに対応が必要 - アプリのアップデートがGoogle Playに公開できなくなる - なお、1年間の猶予期間(オプトアウト)がある EdgeToEdge対応 © Google, Android Developers

Slide 6

Slide 6 text

一旦オプトアウトしました

Slide 7

Slide 7 text

オプトアウトした理由 13年物のアプリのため - 200ファイル以上の画面がある - XMLで構成されている画面が残存している 現在進行形であらゆる改善を行っています!!! - ローカルDBをRoomに移行するプロジェクト - Androidのレガシーコードをリファクタリングするプロジェクト

Slide 8

Slide 8 text

Slide 9

Slide 9 text

来たる2025年12月、満を持して E2E対応プロジェクトスタート

Slide 10

Slide 10 text

置き換えの方針 - JetpackComposeの画面:Material2からMaterial3に置き換える - XMLの画面:Composeには置き換えず、そのままE2E対応を行う 進め方・スケジュール - 専任のチームで対応。人数は3人。 - 対応期間は5ヶ月を想定 - 対象は270ファイル - 社内の別アプリではQAを含めて1画面につき4時間かかったという実績を元に試算 - 本格的に始動する前に、すでに社内で対応を完了しているチームからE2E対応のナレッジ共 有会を行ってもらった EdgeToEdgeの対応方針

Slide 11

Slide 11 text

最初の1-2スプリントはパターンを洗い出し 1画面ずつ丁寧に対応 EdgeToEdgeの対応方針

Slide 12

Slide 12 text

EdgeToEdgeの対応方針 パターンに応じた対応方針が固まってきたところで爆速で終わらせるために以下の 3つを試した 03 開発プロセスの工夫 01 Agent Skillsの整備 02 Devinによる非同期の並 列実装

Slide 13

Slide 13 text

Agent Skillsの整備

Slide 14

Slide 14 text

Agent Skills の整備 Agent Skillsとは - エージェントが特定のタスクを遂行するための知識を与える仕組み - Anthropicが2025年10月16日に発表 EdgeToEdge用のスキルを作成 - エージェントが画面のパターンに応じた対応を行えるように、整理したパターンごとの対応方 法を記述 - スクロールがあるパターン - キーボード入力があるパターン - 静的な画面のパターン - XMLのパターン - Composeのパターン …

Slide 15

Slide 15 text

Agent Skills の整備 「〇〇画面の E2E対応して」 90%くらいの精度で AIエージェントが対 応してくれるようになりました

Slide 16

Slide 16 text

Devinによる非同期の並列実装

Slide 17

Slide 17 text

Devinによる非同期の並列実装 Devin とは - > 自律的にコードの作成・実行・テストができる AI ソフトウェアエンジニア - クラウドのサンドボックス上で動作し、WebのコンソールやSlack経由で対話 - 「クラウドにいる別の開発者にチケットを投げる」感覚 比較項目 Devin Claude Code 実行環境 クラウド上の専用 VM ローカルのターミナル 動作・対話スタイル 「タスクを委任」する非同期型 「一緒に操作」する対話型

Slide 18

Slide 18 text

ひたすら プロンプトを投げ、 レビュー・動作確認 作成したAgentSkillsを参照させることで、高精 度・超並列で E2E対応を素早く完了させることが できました。 Devinによる非同期の並列実装

Slide 19

Slide 19 text

ギュられました

Slide 20

Slide 20 text

開発プロセスの工夫

Slide 21

Slide 21 text

開発プロセスの工夫 モブレビューの導入 朝会後に集まり前日に作成したPRを全員でレビュー。午後は開発に集中するサイクル 難易度の高いE2E対応などは同期的なコミュニケーションで吸収 g r o p s 親ブランチの導入 QAをまたずにコードレビューだけでマージ。ブランチの生存期間をなるべく短くするアプローチ a c c o u t _ t r e

Slide 22

Slide 22 text

3つの工夫による結果 当初の想定よりも 1ヶ月以上短縮することができた - 中期の目線を持って初期段階で速く終わらせる設計をすることができた - AIで実装を加速させるにはただAIを活用するだけではなく、開発プロセスの改善もセットで行 うべきというのを学んだ - 素早く完了できたことで、ローカルDBをSQLiteからRoomに置き換えるという大きな別プロ ジェクトに助っ人することができた

Slide 23

Slide 23 text

解消できなかった課題

Slide 24

Slide 24 text

解消できなかった課題 動作確認 - E2E対応が適切に行えているか、実際に確認する必要があった。 - 大量の画面の中には、対象の画面を開く条件・遷移導線が難しい場合があった 試したアプローチ - mobile-mcpを活用した画面の自動探索とスクリーンショット撮影 - 自然言語による指示で自律的にエミュレーター・実機を 動かしてくれる - ある程度楽にはなったが、動作に時間がかかる・対象 の画面に辿り着けない場合があるなど、 課題は残り完全自動化には至らなかった。

Slide 25

Slide 25 text

AI活用 開発プロセス改善 両アプローチにより 想定よりも 1ヶ月以上早く 爆速対応を実現できました

Slide 26

Slide 26 text

No content