Tabelog Tech Blog

食べログの開発者による技術ブログです

DroidKaigi 2024 参加レポート

DroidKaigi2024TOP画像

はじめまして。食べログ開発本部アプリ開発部 新卒1年目のです。2024年9月11日(水)から9月13日(金)に開催されたDroidKaigi2024に参加してきました。こういった技術カンファレンスに参加するのは初めてで、楽しみな一方、経験の浅い自分が行って大丈夫なのかという不安もありました。しかし、初学者向けのセッションもあり、他の参加者との交流もできて、大変刺激になりました。また、最新トレンドを把握したり、今後の学習の進め方の指針になるような学びも得られました。何よりとても楽しかったです!

記事の前半では、食べログエンジニアによる、気になるセッションの参加レポートをご紹介します。後半では、新卒1年目が初めて技術カンファレンスに参加して感じたことやイベントの雰囲気をお伝えできればと思います。

目次

スポンサー情報

食べログは今年もスポンサーとして協賛しており、多数のメンバーが参加するということで、Android開発初心者の私も参加させていただきました!

DroidKaigiスポンサー紹介のスライド
DroidKaigiスポンサー紹介のスライド

DroidKaigi 2024の概要

DroidKaigi2024は、Android技術情報の共有とコミュニケーションを目的とした、エンジニアが主役の技術カンファレンスです。今年は2024年9月11日から9月13日、ベルサール渋谷ガーデンで開催されました。

日付 内容
9月11日(水) Workshop Day
9月12日(木) Conference Day 1日目
9月13日(金) Conference Day 2日目

参加メンバーのレポート

米山

食べログのアプリ開発部で保守を担当している米山です。
DroidKaigiの1日目に、JetBrains社のSebastian Aigner氏によるワークショップ「From 0 to 100 with Kotlin and Compose Multiplatform」に参加しました。
このワークショップでは、Kotlin Multiplatform(以下KMP)とCompose Multiplatform(以下CMP)の基本概念をハンズオン形式で学びました。
ワークショップで使用された資料は、以下で公開されています。
https://github.com/SebastianAigner/droidkaigi24

当日は約200人が参加しており、ほぼ満席でした。
前半はKMP、後半はCMPという構成で、基本概念の説明と演習に加え最新トレンドも紹介されました。
Aigner氏の説明はとてもわかりやすく、KMPやCMPの初心者である私でも理解しやすかったです。
KMPとCMPのコミュニティは活発で、Androidエンジニアに馴染みのあるライブラリも使えるようになってきており、今後もさらに増えていくことが分かりました。
食べログの業務ではすぐに活用できる技術ではありませんが、個人で何か作ってみようという意欲が高まりました。
特に、CMPはJetpack Composeベースで複数のプラットフォームのUI開発が行えるため、Jetpack Composeを学習するモチベーションにもなると感じました。

ワークショップ
1日目ワークショップの様子

sada

食べログでAndroidアプリの開発をしているsadaです。
今年もDroidKaigiに参加しました!
例年どんどん参加者が増えていますが、今年も大盛況でした。
そして何より、こういったカンファレンスでさまざまなお話を聞くとモチベーションが非常に高まりますね!

ということで、今年は弊社から参加したメンバーとの連名での参加レポートとなりますので、私からもいくつか興味深かったセッションをご紹介いたします。

最初にご紹介するのはMarcel Schnelleさんの「テストの新時代」というセッションです。

セッション動画はこちら

Marcel Schnelleさんは弊社でも利用しているandroid-junit5というAndroid向けGradleプラグインのメインコミッターで、個人的に非常に注目していました。

セッションの内容は主にJUnit 5の紹介でした。
Android開発での動作環境やセットアップなどがわかりやすく説明されていました。また、Annotationsを利用したParameterized Testやさまざまな環境設定、並列実行などの手法も紹介されていました。
セッションの中でも特に驚いたのは、JUnit 5がRobolectricでも動作するという話でした。
こちらのissueにあるとおり、カスタムClassLoaderを提供するAPIが7年越しに対応されおかげで、今ではJUnit5がRobolectricでも扱えるExtensionが開発されているようです。(JUnit5 Robolectric Extension
まだExperimentalですが、基本機能は動作するとのことなので、ぜひ試してみたくなりますね!

次にご紹介するセッションは「アプリをリリースできる状態に保ったまま段階的にリファクタリングするための戦略と戦術」です。

セッション動画はこちら

まずは冒頭に「リファクタリングをやりたいかー?!」という掛け声から始まりました(テンションの上がる掛け声ですね)。

セッションでは、最初に「なぜリファクタリングがやりたくなるのか?」という疑問に対して課題を明確化し、どんな戦略・戦術が有効かを解説していました。イメージしやすいようにモデルプロジェクトもあったのでとてもわかりやすかったです。
また、Viewの周辺のリファクタリングではCompose化の話もあり、これからCompose化を検討する弊社にとってはとても参考になる内容でした。

佐野

こんにちは! 食べログ開発本部アプリ開発部でAndroidアプリエンジニアをやっている佐野です! 柴犬が大好きです🐕 食べログAndroidエンジニアとしては3年ほどになります。
DroidKaigiには一昨年から参加しており、去年はDay2のレポートを担当しましたので、ぜひご覧ください!

今年のセッションもCompose関連の話題が多かったです。
私は、タイトルに興味を引かれた@nishimy432さんと@wirohaさんのセッションについてレポートしたいと思います!

今話題の生成AI(ChatGPT、GitHub Copilot、Gemini)を比較して紹介するという内容です。
ZOZOでは、以下のように使用していることを実例を交えて話してくれていました。

  • 実装補助
  • コードリーディング
  • テストコードの生成
  • コードレビュー
  • ドキュメントの作成

その中でも、対象コードを選択し説明してもらうことで既存機能の調査や確認に使えるという点、data classを指定して簡単にテストコード生成が出来る点は、話を聞いていて自分でも使ってみたいと思った部分でした。

食べログプロジェクトでもChatGPT・GitHub Copilotの環境は整っており、既に業務で利用されています。
Geminiについても使用が検討されていますし、何よりJellyfish以降のAndroid Studioには標準搭載され、 今後もさらに便利になっていくことが予想されるので、個人的にも情報を追っていきたいです。

ただ、すべてのAIについて言えることですが、真実でない情報が含まれる場合もあるため注意が必要です。
AI界隈自体これからどうなっていくか未知数ではありますが、 こういった便利なモノは上手く使いこなし、個人・チームとしても開発効率を上げていけるようにしていきたいです!

須賀

食べログアプリ開発部基盤チームの須賀です。
今年もDroidKaigiに参加させていただきました。
多くのセッションが楽しいものでした。その中でも、特に気になったセッションを紹介させていただきます。
早速、そのセッションを紹介します。しゃりふさんの「Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜」です。

食べログアプリはまだAndroid View 100%の状態で、Jetpack Composeの導入にも足踏みしている状態です。
利点や、最小単位(部品として)の導入が可能であることは理解していますが、他の優先事項との兼ね合いもあり進められていません。

本セッションではViewシステムの概要や、導入におけるルール決めの紹介と、デザインシステムからのコードを作る際に必要な観点を丁寧に教えてくれています。

Jetpack Composeをこれから導入しようと考えている人や、最近導入し始めたという人には必読の内容です。
私たちも改めてチャレンジする際は、この資料をベースに、話し合うべきこと、決めるべきこと、実装の方向性のヒントとして役立てることになるでしょう。

セッション動画もあがっていますし、スライドが200ページを超える丁寧な資料作りで感動するのでぜひ確認してみてください!

冒頭で紹介させていただいた林です。本記事の全体の取りまとめを任せていただきました。私がご紹介するセッションは、1年目のエンジニアが複雑なコードの改善に取り組んだ話です。

セッション動画はこちら

このセッションは、1年目のエンジニアがAbemaアプリの課金基盤処理を2ヶ月半で再設計およびリファクタリングしたという内容でした。

複雑なコードを理解するために、機能ごとの処理をシーケンス図に書き起こすことが重要だったそうです。そのために、アーキテクチャ関連の技術書を読んだり、過去のPRを見たり、ChatGPTを活用したそうです。図に起こすことで、全体のフローが理解でき、複雑だった処理も明確になったとのこと。そしてこの図を適切に描けているかどうかが、周りの人が(発表者自身も含めて)新卒エンジニアにこの改修を任せられるかどうかの判断基準になったそうです。

発表全体を通して、コミュニケーションが非常に重要だと話していたのが印象的でした。そこで、具体的にどのようなことを行ったのか気になり、発表後に登壇者に質問してみました。
登壇者のたなむらさんは、理解をその場で深めることが重要だとおっしゃっていました。わからないことはその場で解決し、自分の認識を相手と確認することが重要で、そのために、毎日先輩エンジニアと話す時間を設けていたそうです。食べログで新卒エンジニアとして働いている私も、今後同じような改修をすることになると思うと、とても勉強になる内容でした。

会場の雰囲気

後半は、新卒1年目が初めて技術カンファレンスに参加して感じたことやイベントの雰囲気をお伝えさせていただきます。

スポンサーブース

受付を済ませて会場に入ると、まずスポンサーブースが目に飛び込んできました。まだ開会の挨拶前にも関わらず、すでに多くの人で賑わっていました。
DroidKaigiではスタンプラリーが開催されており、企業のブースに行くとスタンプがもらえます。スタンプを15個集めると景品と交換できます。
スポンサーブース

また、驚くことに車とバイクが展示されていました!そして早速バイクに乗らせていただきました。
AndroidはOSの自由度が高いため、すべての機能をバイクと連携させることができます。一方、iOSには制約があり、電話機能など一部の機能はバイクと連携できないとのことです。
HONDAさんの車展示とバイクに跨る筆者
HONDAさんの車展示とバイクに跨る筆者

軽食

会場には食べ物や飲み物が充実しており、アイスやお菓子、コーヒーやカフェラテ、ジュースが無料で提供されていました。
特にコーヒーとカフェラテは、バリスタがその場で淹れたてを提供してくれるということで、常に行列ができるほど大人気でした。
私は大のコーヒー好きなので、真っ先にホットコーヒーをもらいに行きましたが、カフェで飲むような美味しいコーヒーが堪能できて、これが飲み放題なのかと驚きました。
ちなみに提供元のAlpha Betti Cafeさんのポストによると、3日間で合計1,536杯提供したとのことです。すごい!

提供されていた食べ物・飲み物

ミートアップ

お昼には、お弁当を食べながら特定のテーマについて話し合えるミートアップが開催されており、僕は「Android初学者」がテーマのテーブルに参加しました。自分と同じ新卒1年目の方や、ベテランだけどAndroid開発は最近始めた方、学生の方などさまざまな境遇の方々とお話しできました。ちなみにここで社会人初めての名刺交換を経験できました!

すき焼き弁当
提供されたすき焼き弁当

アフターパーティ

アフターパーティ食事

2日目のアフターパーティは、ビュッフェ形式となっており、刺身やローストビーフ、ケーキなど非常に豪華な食事が提供されていました。

アフターパーティ様子

ワインやビールなどのお酒も提供されており、会場は非常に活気のある様子で、各参加者が交流深めやすい会だったと思います。僕も社内外の方々とたくさんお話しできました。

ノベルティ

今回スポンサーブースを回って手に入れたノベルティです。すべて無料で配っているとは思えないラインナップ!!!

ノベルティ

まとめ

不安と期待が入り混じる形で参加したDroidKaigi2024でしたが、他の参加者との交流や、今後の学習の進め方の指針となる学びが得られるなど、とても充実した2日間でした。技術カンファレンスでは社外のエンジニアとの交流や情報交換ができるのはもちろん、社内のメンバーとも普段以上に深く話すことができる点が大きな魅力だと感じました。食べログでは、新卒からベテランまでイベントに参加して学んでいく姿勢のある組織であるため、この機会を活かして来年以降も積極的にカンファレンスに参加していきたいです。

最後に

食べログではエンジニアを募集しています!
もし、食べログにご興味を持っていただけた方は是非下記の採用情報ページをチェックしてみて下さい!