2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

advent_2025_day_14.png

本記事は Timee Product Advent Calendar 2025 14 日目の記事です。

タイミーのアプリがAndroid 16に対応しました

Android 16にアプリを対応させるにあたり、一番のハードルはEdge-to-Edge対応でした。Edge-to-Edgeの詳細については、Android Edge-to-Edge対応 大規模アプリですべての画面を更新するための道のり - Sansan Tech Blog のブログに詳しくまとまっているので、そちらを読むと良いかと思います。

簡単にEdge-to-Edgeを説明すると、アプリのコンテンツをステータスバーやナビゲーションバーで表示範囲を狭めずに全画面に表示することであり、Android 15ではopt-outのオプション付きで、Android 16からはopt-outがなくなり強制で対応が必須になりました。

タイミーのアプリは100以上のActivityで構成されており、ComposeとAndroid Viewの両方が使われています。Edge-to-Edgeへの対応は一つ一つは難しくないものの、ComposeやAndroid View、IME対応、Material Designのバージョンごとの対応など画面ごとに異なる対応を進める必要があり、100以上の画面で対応するのには大変な労力が必要な状態でした。

事前準備

パターンごとの対応方法をドキュメント化する

手元にあるいくつかの画面で対応を進めてみた結果、対応する場合のパターンが見えてきたので、共通関数の作成と対応パターンの分け方、パターンごとの対応方法のドキュメント化を行いました。

対応箇所を列挙する

変更の方針が立ったら、次にその変更をする対象を列挙しました。一つのPRで複数の画面に対応をすることもできますが、コンテキストが収まりきらなかったり、レビューも大変なので、画面ごとの対応にするために、対応が必要な画面を列挙しました。従来であればややめんどくさそうな作業ですが、AIエージェントが得意な作業です。

このアプリにあるActivityをComposeとAndroid Viewでそれぞれ全て列挙して

とプロンプトを打てば今では一発で列挙をしてくれます。このリストをNotionで管理して、完了までのロードマップを可視化しました。

実装

前述のパターン別ドキュメントに沿ってAIエージェントに対応を進めてもらいました。当時は(今も)様々なAIエージェントを試しに使っており、Cursor、Devin、Claude Codeなどで対応を進めました。プロンプトで

  1. developブランチからある画面のEdge-to-Edge対応ブランチを切る
  2. そのActivityのパターンに則ったEdge-to-Edge対応を実装する
  3. ビルドやコードフォーマットの実行
  4. ブランチをpushする

のステップを繰り返すことを指示すると、数時間で大量のPRを作成してくれるようになりました。

動作確認

実機での動作確認では、アプリ内で容易に到達できる画面もあれば、開くのが面倒な画面(例: 退会完了時の画面)もあります。そこで、すべてのActivityを開ける開発環境限定のデバッグ機能を用意し、Activity名から任意のActivityを開ける機能をAIエージェントで作成しました。すべての画面への遷移を1つの画面に集約するのは泥臭い繰り返し作業ですが、こうした単純反復もAIエージェントに任せることで2日程度で作成することができました。

まとめ

Edge-to-Edge対応は、Android 16対応における最大の難関でした。しかし、画面分類と対応パターンの明確化、AIエージェントの活用、動作確認の簡易化により、100以上のActivityを短期間で対応することできました。現在Edge-to-Edge対応中の方や、これから対応される方の参考になれば幸いです。

タイミーではAndroid関連のポジションも含めプロダクト組織で絶賛採用活動中です!

プロダクト採用サイトTOP

カジュアル面談申込はこちら

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?