9月10日から12日にかけて、ベルサール渋谷ガーデンでDroidKaigi 2025が開催されました。
今回2025年で11回目を迎えるDroidKaigiは、1,200人の参加者を迎え、47のセッションは熱心な聴講者で盛況でした。本記事では、現地会場の様子をレポートします。

Workshop Day(9月10日)
1日目のWorkshop Dayでは、JetBrainsのDeveloper AdvocateであるSebastian AignerさんとMárton Braunさんを講師に迎え、

内容はKMPやCMPを基礎から学べるほか、データベースライブラリのRoomを使った状態の永続化や、IDEからアプリの再ビルドなしでコード変更を即時反映できるCompose Hot Reloadなど、便利なライブラリや最新のツールも取り込まれています。
アーキテクチャやDependency Injection

会場はほぼ満席で、参加者はスタッフのサポートを受けたり、互いに教え合ったりと熱心にワークショップに取り組んでいました。昨年以上にKMPとCMPの盛り上がりを感じられましたし、KMPがクロスプラットフォーム技術のひとつとして確かな地位を確立しつつある現状は、Androidエンジニアとして非常に喜ばしいことだと感じます。
Conference Day(9月11日、12日)
2日目と3日目はConference Dayです。招待公演を含む47のセッションに加えて協賛企業のブース出展や参加者同士のミートアップなど、多彩なイベントがある点も特徴です。
Welcome Talk
参加者を出迎えるWelcome Talkでは、代表のmhidakaさんと主要スタッフから、カンファレンス内容や公式アプリについての紹介がありました。

今年から公式アプリの開発体制が大きく変わっており、この場で改めてtakahiromさんからkitakkun


セッション紹介
AIやKMP、Jetpack Composeの盛り上がりを感じつつも、個性的なセッションも数多く見られ、非常に多様性に富むカンファレンスとなったと思います。ここでは、3つのセッションをピックアップして紹介します。
Navigating Dependency Injection with Metro
発表者のZac Sweersさんは、
本セッションでは、DIのモチベーションとフレームワークの必要性を説いた上で、Metroの機能とKotlin Compiler Pluginでの実装詳細を解き明かします。

DIフレームワークとしてのMetro、Kotlin Compiler PluginとしてのMetro、2つの視点で解説されていた点が印象的で、ライブラリの使い方のみではなく多角的な学びや気づきのある非常に有益なセッションだと感じました。
Metroは、KSPやKAPTで実装された他のDIフレームワークと比較して、40%〜70%のビルド時間短縮を実現しています。コンパイラが扱う中間表現のFIR
コンパイラへの関与ではFIR拡張とIR拡張を明確に使い分けています。複数のモジュールを横断した可視性をもつ宣言情報を生成したり、誤った使い方を検出して利用者をガイドする目的でFIR拡張を活用していました。多くのことはIR上で実現しているようですが、100近くのFIRチェックが実装されていると聞き、大変驚きました。
今回のDroidKaigi 2025公式アプリでも
Kotlin Compiler Pluginとしても、新しいDIフレームワークの選択肢としてもウォッチしておきたいライブラリのひとつです。
Android Librarian's Guide: Building Robust Libraries and SDKs
発表者のJaewoong
本セッションでは、ライブラリを公開・

ライブラリの公開API
特にskydovesさんが主張した公開APIを最小限にする重要性について、ライブラリの開発者と利用者双方の視点が印象的でした。ライブラリ制作者は、公開APIの可視性を確たる意図を持って選択する点が重要です。そうすることで制作者は内部的な変更を加えやすくなる上、利用者は新バージョンへの移行時に最小限の変更を確認するだけで済みます。それ以外にもJava VMにおける拡張関数の可視性の落とし穴や、KotlinコンパイラのExplicit API modeを使ってアクセス修飾子の明示を強制する運用戦略も紹介がありました。
公開APIを追加してから削除するまでのライフサイクルや、バイナリ互換チェックツールのMetalavaやBinary Compatibility Validatorを用いた運用に関しても言及があります。
これらの内容からライブラリのメンテナンスは、利用者の視点に立って行う重要性を強く感じます。ライブラリ開発の作法以外にもAndroid特有の観点にも目を向けていく内容となっており、AARで公開するリソースを最小限に抑えたり、推移的依存関係の注意点など、まさに
UIだけじゃないComposeの可能性 ━ 宣言的に奏でるメロディ
発表者のusuiatさんは
本セッションでは、その題材としてCompose Runtimeを活用して宣言的に音声処理を実現する方法を紹介しています。

Compose Runtimeは、Composition Treeと呼ばれる木構造でデータ管理しており、主にUIが利用ターゲットです。木構造の管理にはComposer・
セッション中で紹介している宣言的音声処理ライブラリ
Compose Runtimeでは木構造を構成するノードに情報を持たせることができるため、Compose UIでいうところのModifierのような修飾子の役割を、KoruriではSignalProcessorが担う形で設計していました。宣言的に書く対象がUIから音声に変わっても、概ね近いAPI設計を実現できるのが面白かったです。
特に印象に残った例は、発展的なユースケースとしてキーボードを作るくだりです。UI描画と音声処理を同じレイヤーに似た書き方で共存させられるのはCompose Runtimeを活用した設計ならではの書き方だと思いました。
Koruriのように宣言的な記述が美しくハマると気持ちが良いですね。実務やその他の具体的な応用例を考える点が一番難しいところですが、Android開発者が何気なく使っているCompose Runtimeへの理解を深めつつ、新しい可能性に気付くことができ、大変勉強になりました。
まとめ
本記事では、DroidKaigi 2025当日の模様についてレポートしました。魅力的なセッションとイベントが出揃い、本当に素敵なカンファレンスでした。
筆者は、ボランティアスタッフとしてカンファレンス公式アプリの開発リードを担当しています。運営への参加ははじめてで、これまでとはまた違った視点からイベントを楽しめました。参加者数1,200人という大規模なカンファレンスがどのように運営されているのかも知れる良い機会にもなりました。何よりも、コミュニティの熱量を強く感じることができました。
開発リード前任者のtakahiromさんは、2018年から2024年までの7年間にわたって公式アプリのメインメンテナを務めていました。筆者は、2022年から2024年まで公式アプリにコントリビュートしており、takahiromさんにレビューしていただいた記憶が今でも鮮明に残っています。長きにわたりDroidKaigiを支えていただき、本当にありがとうございました。
DroidKaigi公式アプリでは、
運営に関わってくださった皆さま、公式アプリにコントリビュートいただいた皆さま、そして参加者の皆さま、本当にありがとうございました!
YouTubeのDroidKaigi公式チャンネルでは、セッションの録画を公開しています。当日見られなかったセッションや、もう一度見直したいセッションがあれば、ぜひご活用ください!
DroidKaigiでは今後も様々なイベントや企画を予定しています。X公式アカウントをフォローして、続報をお待ちください!