chigichan24のお気持ち表明

おきもちを表明している

DroidKaigi2024に参加したよ🚀 #DroidKaigi

DroidKaigi2024に参加したよ

昨年は家庭の事情もあり、DroidKaigiにオンライン参加だったのですが、今年は久々にin-personのDroidKaigiに参加してきました。 企業のブースにいる時間も長かったのですが、いくつか気になっていたセッションを直接見ることができ、また Ask the speaker でもたくさん疑問に答えていただき非常に嬉しかったです。

私は大変英語が苦手なのですが、それでも以前よりも英語で話しかけたり、話しかけられても適切に会話したり、通訳なしで英語のセッションを聞いて内容を理解したりする度胸(というより場慣れ)がついたなぁとちょっとだけ感じました。DroidKaigiを各年の英語力定点観測機会にするな。

聞いたセッションで印象に残ったもの & ブース

(セッション) 起動時間で差をつけろ!アプリ起動パフォーマンス改善!

speakerdeck.com

アプリの起動時間はユーザの離脱につながる一つの原因です。エンジニアの観点からもこういった類のタスク推し進めやすい & 効果を測定しやすいとも思っており、聞きに行きました。

CPU Profiler はあくまでも何か問題があった時の深掘り用で、基本的にはMacrobenchmarkをリリース前のCIで走らせてパフォーマンスの問題を検出するといった話を聞き、その環境を整えないとパフォーマンス改善は始まらないよねと強く感じました。

モニタリングの方法については非常に興味深かったが、時間の都合であまりスライドには含まれていなかったため、Ask the spekerでもいくつか質問をさせていただきました。素人質問に丁寧に答えてくださった yanmar さんありがとうございました!

(セッション) A New Era of Testing

speakerdeck.com

android-junit5 の作者である Marcel Schnelle san の発表で、junit5って結構前からあるのに、Android projectで全然デフォルトになる気配ないなと思い、聞きにいってみました。

特に興味深かったのは、Parameterized Argument Sourcesです。Parameterized Test用のさまざまなアノテーションが用意されており、気軽に様々な入力例でテストを書くことができます。

そして元々の疑問だった、なぜAndroid Projectでなかなか使われないかにも回答があり、robolectricのサポートが難しい状況だったということが説明されていました。 Custom の ClassLoader を junit5 では 2023 7月頃までサポートしていなかった状況であり、robolectric を使うようなテストが書けなかったため広く普及していなかったのでしょう。 これは現在は https://github.com/apter-tech/junit5-robolectric-extension で解決されています。

しかし、それでもなお Compose Unit Test が動かないケースがあったり、Espresso を用いたテストを複数動かすと deadlock したり、roborazziがサポートしていなかったりとまだいくつか問題を残っているものの、junit4をやめる準備をしても差し支えないくらいには外堀が埋まってきていると感じました。

(ブース) WED,Inc. さん

WED,Inc. はレシート買取アプリのプロダクトを持つ会社さんです。その一環として(?) Compose を書くことで、書いた Compose のレイアウトそのままのレシート(物理)を出力できるブースコンテンツを用意されていました。

ラップトップがポンと机に置いてあって、はいじゃあ Compose 書いてくださいねと言われる体験はこれまでなかったので非常に楽しかったです。 また、ビルドボタンを押したらレシートが横から出力されて、ソフトウェアとハードウェアが融合するようなプロダクトが好きな私はとても嬉しかったです。

来年こそ

登壇自体をゴールにするのは手段と目的を履き違えている感じがするので嫌なのですが、やっぱりSpeakerのネームカードが欲しいなぁと思いました。日頃溜めているAndroid開発に関する知見をもっと積極的に外部に共有して、大きなアウトプット先の一つとしてDroidKaigiが今後もあり続ければいいなぁと感じました。DroidKaigi関係者の方々本当にお疲れ様でした。またいつもありがとうございます🙇‍♂️🙇‍♂️🙇‍♂️