見出し画像

DroidKaigi2023現地参加レポート

こんにちは、トリです。
食べ物のnoteをよく投稿しますが、普段はAndroidエンジニアをやっています。
先月、初めてDroidKaigiに現地参加してきました。
せっかくなので、備忘録を兼ねてレポートを書いてみようと思います。

DroidKaigiとは?

DroidKaigiはエンジニアが主役のAndroidカンファレンスです。
Android技術情報の共有とコミュニケーションを目的に、2023年9月14日(木)〜16(土)の3日間開催します。

https://2023.droidkaigi.jp

2023はどんな内容だった?

1日目・2日目は、タイムラインに沿っていくつかの部屋でセッション発表が行われました。
間でテーマについて話せるミートアップがあったり(ランチやおやつを食べながらのゆるい感じ)、祭り並みに活気のあるスポンサー企業のブースを回ったりできます。
あとは、なぜかジェルネイルもできます。
バリスタの美味しいコーヒーも飲めますし、軽食やおやつもあります。

3日目になるとセッションや企業ブースはありませんが、エンジニア同士集まってコードラボを進めたり、DroidKaigiアプリのコントリビュートに挑戦してみたり、キャリア相談したりできます。
会場のステージで「キャリア・パネルトーク」というイベントもあり、色々な方のキャリアのお話が聞けておもしろかったです。
実に有意義で贅沢な3日間でした。

聴講したセッション

《day1》

これで安心! Compose 時代のDon’t keep activities対応

Don't keep activities(アクティビティを保持しない)についてのセッションです。
従来はViewModelやsavedInstanceStateで必要なデータを保持していましたが、JetpackComposeではどのようにデータを保持するのか? どのような注意が必要か? といった内容でした。

Android開発ではActivityの破棄は切っても切れない関係です。
JetpackComposeに移行しても考慮は必要なので、まとまった情報が得られたのは幸いでした。

よく見るあのUIをJetpack Composeで実装する方法〇選

実務でよく見るUIの実装方法について、画像とコードを併せて紹介されていたのでわかりやすかったです。
参考情報や注意点のURLも記載されていて、詳細を調べに行きやすいところも助かりました。紹介されたUIは下記の9種類です。

  • ローディング

  • ボトムナビゲーション

  • ボトムシート

  • アコーディオン

  • カルーセル

  • クレジットカード番号入力

  • 固定ヘッダー

  • 特定位置へのスクロール

  • もっと見る

(Unofficial) Guide to App Architecture Guide Vol. 2

Dagger Hiltの利点と弱点の話。それからマルチモジュールの分け方やアンチパターンの話もありました。
あまり触れてこなかった分野なので難しい内容でしたが、いずれは理解していきたいところでもあるのでセッションを聞けてよかったです。

マルチモジュールについてGooglePlayのアプリ詳細画面が例に挙げられた時、思った以上に細かく分割されていたことが印象的でした。(確か6分割)

モニタリングでパフォーマンス改善入門

いくつかのパフォーマンス改善の手法を動画を交えて紹介しています。
「検査と改善のサイクルを回すときは一箇所ずつ見ること」はしっかり頭に入れておきたいですね。
AndroidStudioはAndroid Profilerはもちろん便利な機能が色々あるので、うまく活用していけるようになりたいです。

Master of NestedScroll

複雑なレイアウトのネストスクロールで発生しうる問題の解決方法を丁寧に紹介しているセッションでした。
従来(AndroidView)のコードとJetpackComposeコードを比較しながら説明されているのでわかりやすかったです。

シンプルなスクロールではない場合、JetpackComposeだとカスタムが必要になるケースが従来より多くなること。ただ、従来のコードよりはカスタムしやすい点は覚えておきたいですね。


《day2》

Kotlinハイパフォーマンスプログラミング

アプリ高速化についての入門的なセッションです。
ためになる話が多かったです。下記はメモ。

  • JVM言語が遅かったのは過去の話でKotlinが特別遅いわけではない

  • メモリは遅いものなので、メモリアクセスの無駄はできるだけ減らす

  • しかし、なんでもかんでも速さを優先するとメンテナンス性が損なわれる

  • 大量のデータを高頻度で処理するところなど限定してボトルネックになっている箇所を最適化する

Jetpack Composeを活用した強力なUI表現の実装実例

JetpackComposeでもっと踏み込んだUI表現のセッションでした。
AnnotatedStringは実務でも活用しそうなので、情報を得られてよかったです。
セッションに出てきた内容は下記。

  • AnnotatedString

    • StringBuilderのように一部のテキストだけスタイル変更・アイコン設定などできる

  • Brush

    • グラデーション表現。背景にもテキストにも反映できる

  • Modifier.drawWithContent

    • Canvasを拡張したようなもの。オブジェクトを重ねた表現ができる

  • Animation

    • オブジェクトのアニメーション、バネ・緩急のついた表現など

発表を聞いていて、グラフィカルな表現の実装がとっつきやすくなった印象がありました。

ここ数年のAndroid Textの新(?)機能について / What's new (?) in Android Text

TextView周りの最近の新機能についてのセッションです。
なかなかニッチでテクニカルな内容が多かったですが、
前職で少しTextViewをカスタムすることもあったのでおもしろかったです。

実務だと、日本語の文節改行(API33から)が便利そうでした。
TextShaperも楽しそうなので個人で何か試してみたいですね。

突撃!隣のコードレビュー

コードレビュー歴が浅いので、他社事例を聞いてみようと思い立ち聴講しました。
内容は、社内3チームで取り組んでいるコードレビューの流れや工夫の紹介などです。基本的な流れはどのチームも同じですが、工夫している点はチーム構成によって違いがあり興味深かったです。

内容によっては変更行数が大きくなりレビューが大変……はよくあるので、
より良い方法を考えていきたいですね。

Material 3 やめました

Material3をやってみて、問題があったので独自デザインシステムを構築したというセッションです。
ブランドカラーを設定してもMaterial3のカラールールで微妙に色が変わってしまうし、DynamicColorやDarkModeはカスタムカラーに対応していない。
独自で定義する方向になってしまうのも納得です。

Material3に合わせてカラー設定する場合は問題なさそうですが、独自のカラーシステムがある場合は同じような対応が必要になるかもですね。

写真コーナー

現地でもらったもの

DroidKaigiグッズと企業ブースでもらったもの

こんなに物をもらうと思わなくてびっくりしました。
ちなみにブースは半分くらいしか回っていないです。

DroidKaigi運営からのグッズ。右の袋にタオルやパンフレットなど入ってます
企業ブースのスタンプラリーで運営からもらったグッズ。右上の丸はワイヤレス充電器です
まさかの米
まさかのソース
文房具系もいろいろ
お菓子もいろいろ。かわいい
キャラクターグッズもかわいい

美味しい思い出

1日目に支給された弁当
2日目に支給された弁当
美味しいカフェラテ。おかわりもできる

会場のキャラクターがかわいい

銭湯で気持ちよさそうなドロイドくんと仲間たち
AndroidStudioの各バージョンの生き物たちが会場名になっていておもしろかわいい
3日目にもらったかわいいクッキー

おわりに

セッションやブースで話を聞いてみるとJetpackComposeの話題が多く、部分的に導入している会社も結構ありました。
JetpackComposeに触れる機会がなかったので、これを機に色々試していければいいなと思っています。


あと、これは反省なんですが、のんきにしていたら9月のイベント終了から1ヶ月以上経ってしまいまして……思い出すのが大変でした(それはそう)
来年参加する時は、せめてその日のうちに下書きを始めておこうと思います。

この記事が気に入ったらサポートをしてみませんか?