こんにちは。with で Android エンジニアをしている @maxfie1d です。 今年も DroidKaigi の季節がやってきました!ということで本記事では with の Android チーム的に気になるセッションを紹介したいと思います。
DroidKaigi とは
DroidKaigi はエンジニアが主役の Android カンファレンスで、2015 年から毎年開催されています。近年はオンライン開催が続いていましたが、今年はオフライン会場があります。 with からは @maxfie1d が参加します。
当日は恐らくこんな感じの名札を提げているはずです。
Android エンジニア3年目にして今年初めてプロポーザルを出しました。悔しいことに採択には至りませんでしたが、また来年チャレンジしたいと思います(過去には with のエンジニアが登壇したことがあります)。
また DroidKaigi では毎年公式アプリが公開されています。こちらは OSS になっていて、その年ごとの最新の技術が目白押しなので非常に勉強になります。私は以下 2 つの Issue でコントリビュートさせていただきました。
DroidKaigi は非常に実践的で内容が充実しているので、アーカイブ配信後には参加しなかったメンバーを含め Android チーム全員で視聴するようにしています(ウォッチパーティーと呼んでいます)。
気になるセッション
タイムテーブルを見て、気になるなと思ったものをまとめました。(順序は開始時刻順です。)
Jetpack Compose で Material Design 3 (Yuki Anzai)
with では 記事執筆時点で Material 2 を使用していますが、近々 Material 3 の Compose 実装が Stable になれば具体的な移行計画を検討する予定にしています。本セッションで Material 3 の知見を増やせればと思います。
「アプリのブランドカラーを保持しつつ Dynamic Color に対応する方法」が特に気になっています。
Prepare your project for KMM (Oussama Ben wafi)
近年身近なプロダクトでも KMM(Kotlin Multiplatform Mobile) や Flutter が採用されるようになり、マルチプラットフォーム技術がすぐそこまで来ているなと感じます。候補者の方とカジュアル面談をしていも必ずといっていいほど話題に挙がります。記事執筆時点で with では iOS/Android 間で共有しているコードはありませんが、共通化できたら面白いだろうなと日頃から夢を見ています。
KMM は依然として Beta 段階ですが、マルチプラットフォーム技術として最も有望視しているので注目していきたいと思います。
アプリエンジニアと QA チームがデバッグ機能の改善に取り組むぞ! (Satoru Komai)
たいていのアプリにはデバッグのための機能が備わっていると思うのですが、with にも通称デバッグメニューが存在しています。機能としては、ログイン、サーバーの切り替え、各種フラグの編集等をサポートしています。
セッションの説明文で指摘されているように、デバッグ機能はエンジニアが必要だと思ったものが無秩序に追加される傾向にあるので気付いたら複雑で使いづらいものになってしまうという問題があると思います。
QA チームも巻き込んでデバッグ機能を改善した事例が聞けるということで、非常に参考になりそうだと思いました。
ちなみにこちらが with Android 版のデバッグメニューです。使いやすくて期待される機能が搭載されているかというと正直微妙なので、改善したいなと思っています。
プロダクトで安全に DataStore 移行する (Go Takahana)
with では最近 DataStore を使用し始めました。セッションの説明文で指摘されているように「移行しなくても不便がない」というのがあり DataStore への完全移行の予定は今のところありません。しかしながら、SharedPreferences のコードを残しておくのも将来的に負債になりそうなので理想的には早めに移行を済ませたいところです。
このセッションでは実践的な DataStore 移行のテクニックを学べればと思います。
All your Compose @Previews to screenshot tests without instrumentation (David Vávra)
with では Showkase を使って UI カタログを作成し、手軽に UI を確認できるようにしていますがスクリーンショットテストを含む UI テストは行っていません。
かつてスクリーンショットテストは高コストというイメージがありましたが、Compose 時代になって手が届きやすくなったのかなという印象があります。このセッションを見て with にも導入できそうか検討したいと思います。
はじめようビルドメトリクス (こまたつ)
with では 2022 年にマルチモジュール化を行いました。理由の 1 つとしてビルドパフォーマンスの向上があったのですが、作業を行う中で「そもそも Gradle ってどんな風にビルドしているの?」「どこがボトルネックになっているの?」という疑問が湧いてきました。
いろいろ調べていく中で Gradle のビルドの仕組みや流れを理解できただけでなく、工夫をしないと想像以上にビルドに無駄な時間がかかってしまうということが分かりました。ビルドパフォーマンスが悪いとチーム全体のパフォーマンスに大きく影響するため、地味に重要なポイントなのではないでしょうか。
ビルドパフォーマンス向上の第一歩は計測することだと思うので、このセッションは参考になりそうです。
おわりに
以上気になるセッションについてまとめました。
個人的な話になりますが、私は 2020 年に新卒で Android エンジニアになりました。エンジニアになったはよいものの、コロナ渦のためオフラインで技術カンファレンスが開催できない期間が続きました。しかし今回の DroidKaigi はオフライン会場があるということで参加が非常に楽しみです。本記事で取り上げなかったセッションももちろんのこと、どっぷりとAndroidの世界に浸かってきたいと思います✌ 終了後には参加レポートを書きます。
参考: with では上長の許可があれば技術カンファレンス等に自由に参加でき、参加費も補助されます。もちろん業務として扱われます。(制度は変更になることがあります)。
リンク
- DroidKaigi 2022 タイムテーブル
- Jetpack Compose で Material Design 3 (Yuki Anzai)
- Prepare your project for KMM (Oussama Ben wafi)
- アプリエンジニアと QA チームがデバッグ機能の改善に取り組むぞ! (Satoru Komai)
- プロダクトで安全に DataStore 移行する (Go Takahana)
- All your Compose @Previews to screenshot tests without instrumentation (David Vávra)
- はじめようビルドメトリクス (こまたつ)