Mirrativ Tech Blog

株式会社ミラティブの開発者(バックエンド,iOS,Android,Unity,機械学習,インフラ, etc.)によるブログです

DroidKaigi 2023に参加しました!

こんにちは。Androidエンジニアの北川と久賀です。去年に続き、今年も参加させていただきました!今年は2人とも3日間フルで参加し、本記事ではそこで経験したこと、学んだことを紹介いたします。

DroidKaigi2023について

2023.droidkaigi.jp

去年の記事はこちら

tech.mirrativ.stream

気になったセッション

北川編

最も印象的だったセッションは、「Kotlinハイパフォーマンスプログラミング」でした。普段の開発ではあまり意識しない、プログラムの記述方法によって生じるパフォーマンス差異について考える良い機会になりました。出力用インスタンスの使い回しによる効率化をはじめ、Kotlinで頻繁に使用するmapやfilterのようなコレクション操作に隠れた計算コスト、そしてクイックソートがバブルソートよりも低速になりうることなど、JavaにDecompileされたコードと実際の計測結果を元に体系的に説明されていました。可読性が第一とはいえ、パフォーマンスが重要な場面でどのようにプログラミングすべきかという内容は、とても新鮮で興味深かったです。

speakerdeck.com

もう一つ、個人的に気になったセッションとして「Our ongoing journey from REST to GraphQL on Android」があります。こちらのセッションでは、Apollo Kotlinを用いてGraphQLをAndroidアプリケーションに取り入れていく手法が紹介されていました。GraphQLはデータ通信量を軽減できる他、エンドポイントが単一でシンプル、強い型付けを持つなど多くのメリットがあります。現在MirrativではREST APIを使ってサービスが構築されています。まだ導入事例は多くないGraphQLではありますが、そのメリットを受けられる可能性は感じるので、引き続き注視していきたいと思います。

speakerdeck.com

久賀編

私は「Master of NestedScroll」というセッションが記憶に残ってます。普段の開発でもNestedScrollに触れる機会はそこそこありますが、パッと見の動きが複雑に感じたり、想定される挙動からどのように実装すべきかイメージしづらいところで自分は苦手意識があります。いざ久々に触れるときに毎回色々調べてなんとか実装しています。こちらのセッションではNastedScrollの仕様を一から分かりやすく整理しており、またJetpack ComposeとAndroidView両方について取り上げており、最近ミラティブでやっている古い実装のCompose化でも役立ちそうです。今度、NestedScrollが関わる開発をする際に是非参考にしたいと思います。

speakerdeck.com

「モニタリングでパフォーマンス改善入門」というセッションも興味深かったです。こちらはタイトル通り入門者向けの内容で、パフォーマンス計測における観点と各種ツールをどう使い分けると良いかについてstep by stepで説明されていました。また「パフォーマンス監視ツールの活用」でもFirebase Performance MonitoringとMacrobenchmarkについて紹介されており、それらを使用してAndroidViewからJetpack Composeに置き換えたときのパフォーマンス計測について具体的な実装と結果と共に説明されてました。パフォーマンスについて気になる方にはこちらの2つがおすすめです。

docs.google.com

speakerdeck.com

DroidKaigi公式アプリコントリビュート

OSSで開発されているDroidKaigi公式アプリに、今年も北川がコントリビュートさせていただきました!

github.com

昨年はKotlin Multiplatformの適用範囲がデータレイヤに限られていたのが、今年は一部UIがCompose Multiplatformによって共通化されており、KMPコミュニティの活気を感じることができました。また、Gradle Convention Pluginによって共通のビルドロジックが綺麗に整理されているのも印象的でした。

コントリビューターの一覧(北川くんも含まれてます)

ブース周回

今年も様々な企業さんのブースを訪問させていただきました!各ブースで個性あふれる企画を開催しており、貴重なお話を聞けた上に、美味しいお菓子や便利なグッズなど沢山もらえました。LINEさんのブースではコードレビュー会を開催しており、普段ミラティブAndroidチームでもコードレビューを欠かさずやるようにしてますが、改めてコードレビューにおいてどの部分に着目すべきかの認識合わせができ、とても有意義な場でした。メルカリさんではクイズ大会をやっておりまして、一見簡単に見えた問題に久賀が余裕ぶって答えたら思いっきり間違えました笑 KotlinのクイズやメルカリさんのAndroid開発に関する問題があり楽しめました。またNissanさんやTuringさんなど、自動車にAndroidを活用している企業もブースを出展しており、実際にNissanさんの車が会場に展示されていて驚きました(どうやって運んできたのか気になります…

交流イベント

以上でまとめた内容以外にも、DroidKaigiでは様々な交流イベントが開催されていました。1日目の終わりにはアフターパーティが開かれ、豪華な食事を頂きながら普段関わることのない他社のエンジニアさんと色々お話ししました。セッションの傍ら、昼食やおやつを食べながら、特定のテーマ(例: Android初心者、キャリアについてなど)について話しました。3日目は相談会というものがありAndroid業界で著名な方と自分の仕事、キャリアに関する悩みを相談できる貴重な機会が設けられており、久賀も相談させて頂きました。

アフターパーティの様子

最後に

DroidKaigi2023もたくさんの学びと交流があり、楽しみながらもAndroidという分野の奥の深さを実感できました。今後各セッションはアーカイブとして公開されるようなので、当日見ることのできなかったものを中心に見てみようと思っています。そして、ここで学んだことを是非これからのAndroid開発で存分に活かせればと思います!

P.S. DroidKaigiを楽しむのに集中していて写真を撮るのを忘れていたため、記事に載せる写真が少なくなってしまいました…。今回一番の反省です…

We are hiring!

ミラティブでは一緒に開発してくれるAndroidエンジニアを募集しています!

mirrativ.co.jp

mirrativ.notion.site

speakerdeck.com