はじめに
はじめまして、オプティムの矢野、黒田、三好、橋本、佐藤、釣です!
私たちはAndroid 向け MDM アプリケーション(OPTiM Biz)の開発や自治体公式スーパーアプリの開発を行っています。
9/10(水)~9/12(金)の3日間にわたって開催された DroidKaigi 2025 に私たち6名で参加してきました。
今回は別々の部署にいるAndroid開発スタッフが偶然DroidKaigiに参加することとなり、多くのセッションやブースを体験することができました。
会場の雰囲気や印象に残った講演の感想についてレポートしていきたいと思います。
DroidKaigi 2025 について
Android 技術情報の共有や、コミュニケーションを目的に開催される、エンジニアが主役の Android カンファレンスです。
前回のDroidKaigi(Droidkaigi 2024 参加レポート - OPTiM TECH BLOG)に比べ、今回は流行りであるKotlin MultiPlatformやLLMに関するセッションやブースのコンテンツも増えたように感じます。
またコーヒー予約システムといった行列や混雑を緩和する新たな取り組みや、射的や輪投げなど夏祭りにちなんだ遊びができるコーナーなど、より多くの参加者が交流できるような工夫がされていました。
After Partyの様子
印象に残った講演
今回現地参加したメンバーから気になったセッションを一つ選んで感想を書いてもらいました!
釣
- 講演: 未経験者・初心者に贈る!40 分でわかる Android アプリ開発の今と大事なポイント 2025.droidkaigi.jp
- 講演者: Shinobu Okano さん
- 講演リンク: Youtube
私のこれまでの開発経験としては、大学在学中は Swift を用いた iOS 開発、入社後は主に Flutter を用いたクロスプラットフォーム開発をしてきたので、Android 開発については全く知識がない状態での DroidKaigi への参加となりました。
Day 1 の最初に開かれた本セッションでは、Android 開発における現在の大事なポイントがぎゅっとまとめられており、全体像を掴むことができました。
今の標準的な開発言語、UI フレームワークの紹介から始まり、デザインやアーキテクチャ、非同期処理、ネットワーク通信まで Android 開発を進める上で必要になる知識や押さえどころを、どのドキュメントやコンテンツを参照すると良いかを添えて解説してくださっていました。
モバイルアプリ開発エンジニアとして知見を高め、チームをリードしていける技術者になるために、本セッションで紹介されていた大事なポイントを押さえて、Android 開発についても学んでいきたいと思いました。
三好
- 講演: 「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド〜新メンバーを活躍に導くオンボーディング戦略~ 2025.droidkaigi.jp
- 講演者: richako (risako070310) さん
- 講演リンク: Youtube
OPTiM Bizのチームに参加して半年が経ちました。まだわからない機能や実装が多いですが、自身のオンボーディング経験と比較・整理するために、このセッションを聴講しました。 当セッションでは、新メンバーが巨大プロジェクトをどこから読み解いていくのか、また既存メンバーはオンボーディング資料をどのように整備していくべきかについて解説されていました。
新メンバー向けには、Find Usage(Android Studioの機能)を使った定義ジャンプやプリントデバッグの活用のほか、Viewレイヤーから順にControllerレイヤーへとデータの流れを追う方法が理解促進に効果的だと紹介されていました。 既存メンバー向けには、アーキテクチャ図、ビルド手順、デバッグ方法、FAQなどの資料を事前に用意することで、OJTの負担軽減につながると説明がありました。 また、両者にとって画面共有などによるモブプログラミングの実施が、ドキュメントには記載されていない暗黙知の共有に有効だと強調されていました。
改めて自分のオンボーディングを振り返ると、多くの部分は自然とできていたものの、モブプログラミングの有効性に気づくのが遅かったように思います。今後、自分がOJT担当になる機会があれば、積極的に取り入れたいと考えています。
余談ですが、オンボーディングの最終タスクとして「オンボーディング資料の更新」を設けることで、ドキュメントの陳腐化を防ぐという運用方法を紹介していました。この取り組みは自チームにもぜひ導入してみたい思いました。
橋本
- 講演: 例外のその先へ:セーフティクリティカル原則に基づき堅牢なAndroidアプリを構築する 2025.droidkaigi.jp
- 講演者: Bogusz Pawłowski さん
- 講演リンク: YouTube
こちらのセッションでは、エラーを「ドメインエラー(ドメイン特有の予期される失敗)」と「ロジックエラー(実装ミス)」に明確に分類し、それぞれの実装方法が紹介されていました。
特にドメインエラーの扱いが印象的でした。発生しうるエラーを把握するために内部実装を読むというのは非常に骨が折れます。また、エラーハンドリングの実装漏れにもつながります。これを sealed class やカスタム Result、Kotlin 2.4で導入予定のRich Errorsで解決するという内容でした。これらのアプローチによって、 発生しうる多様なエラーが型という形で API インターフェースに明示されるとともに、コンパイル時や lint による網羅性チェックの恩恵を受けられるようになります。一方、ロジックエラーは require/check で即座にクラッシュさせ、早期発見につなげることの大切さを説かれていました。
プログラミングにおいて、エラーハンドリングは必要不可欠です。本セッションを通して、開発効率に大きく影響する知識を再確認できました。
黒田
- 講演: Androidは裏でどのようにデータ構造を活用しているのか 2025.droidkaigi.jp
- 講演者: HyunWoo Lee さん
- 講演リンク: Youtube
普段、データ構造やアルゴリズムを意識せずに利用していたため、学びの多いセッションでした。
例えば、DIツールでは依存関係が有向非巡回グラフで表され、BFSによって循環や依存の整合性を検証していることを知りました。
また、ViewBindingのビルド時に参照を生成するため探索処理を省けるのに対して、findViewById はビュー階層を探索するアルゴリズムが必要になり効率に差があることも理解できました。
これまで、機能を使用するということしか考えていませんでしたが、背後で適切なデータ構造、アルゴリズムを選択していることを学ぶことができました。
今後はこのような背景を意識しながら技術をキャッチアップし、これまで学習してきたデータ構造やアルゴリズムの知識を設計や実装にも生かせるようにしたいと思いました。
矢野
- 講演: WebViewとはさようなら:KMP + Composeによるサーバー駆動UI 2025.droidkaigi.jp
- 講演者: Aman Tonkさん
- 講演リンク: YouTube
Aman Tonkさんによるセッション「WebViewとはさようなら:KMP + Composeによるサーバー駆動UI」が非常に印象的でした。
私自身、過去にWebViewを用いたネイティブアプリ開発に携わった経験があり、マルチプラットフォームでUIを共有できることで開発効率が向上する一方、セキュリティ面での脆弱性やデバッグの難しさに悩まされていました。
サーバー駆動UI(Server Driven UI、以下SDUI)は、こうした課題を解決する手法の一つです。SDUIでは、UIのコンポーネントやアクションに関する情報をサーバーからまとめてネイティブアプリに送信し、アプリ側でUIを構築します。これにより、センシティブな情報の安全な取り扱いや、ネイティブアプリならではのUI/UXの向上、さらにはパフォーマンス改善といったメリットを享受できます。
また、Kotlin MultiplatformとCompose Multiplatformは、プラットフォーム間で多くのUI・ロジックを共有できる特徴があります。さらに、プラットフォーム固有の処理が必要な場合には、expect / actual を用いて、共通コードから分離して実装することが可能です。これにより、アプリ全体の構造を保ちつつ固有機能との連携を柔軟に行うことができるため、サーバーから受け取った情報をUIにマッピングする実装により集中できる点も魅力的です。
このセッションを通じて、SDUIの強力な利点を学ぶとともに、Composeのような宣言的UIが持つ強みを改めて認識することができました。今後、自社プロダクトにも部分的に取り入れていきたいと感じています。
佐藤
- 講演: OAuth を正しく実装する:Android アプリのためのセキュアな認証 2025.droidkaigi.jp
- 講演者: Chrystian Vieyra Cortes
- 講演リンク: Youtube
本講演では、OAuth の歴史的背景から現状の Native アプリにおける OAuth 2.0 実装のベストプラクティス、そして最新トレンドまでが包括的に解説されました。
まず、モバイルアプリでの推奨される仕様として PKCE(Proof Key for Code Exchange)が挙げられました。client_secret の機密性を維持できないクライアントにおいても、認可コード横取り攻撃のリスクを軽減することができます。
実装面では、Chrome Custom Tabs などの外部ユーザーエージェントの使用が強く推奨されています。これにより Cookie 共有を通じた SSO が実現でき、複数アプリ間でのシームレスなログイン体験を提供できます。
トークン保存については、発表者は議論があるとはしつつも、従来の EncryptedSharedPreferences が非推奨となったことを受け、現在は通常の SharedPreferences で十分とされています。Android のプロセス分離により、ルート化されていない限り十分なセキュリティが確保されるためです。
開発効率の観点では、OpenID Foundation がメンテナンスする AppAuth ライブラリが推奨されています。プラットフォームによってエラーコードが異なるなどの課題があるものの、ベストプラクティスに準拠した実装を自前で行う手間を考えると積極的に採用すべきライブラリです。
本講演は今後のセキュアなモバイルアプリ開発において大いに参考になる知見が含まれており、積極的に活用していきたいところです。
おわりに
この3日間は非常に刺激的で、多くの学びを得ることができました。
急速に進化するAndroid技術に対応すべく、私たちも日々知識をアップデートしながら、より良いサービスの提供に努めていきます。
弊社の開発チームでは、要件定義の段階からエンジニアが主体的にプロジェクトに関与し、方向性の検討から実装まで一貫して取り組むスタイルを重視しています。 また、既存コードのKotlinによるリファクタリングにも積極的に取り組んでおり、より保守性・拡張性の高いコードベースの構築を目指しています。
弊社の開発スタイルや取り組みにご興味をお持ちいただけましたら、ぜひ一度ご連絡ください。