こんにちは。サイバーエージェント FANTECH本部 CL事業部でAndroidアプリエンジニアをしている吉川 晃太(@clown6613) です。本記事では、カンファレンスの様子やサイバーエージェントのDroidKaigiへの貢献などについて紹介します。

DroidKaigi 2024 パネル

 

DroidKaigi 2024について

DroidKaigi とは、Android技術の共有とコミュニケーションを目的とし開催されている、エンジニアが主役のAndroidカンファレンスです。今年で10年目を迎えるDroidKaigi 2024は、2024年9月11日(水) ~ 9月13日(金)までの3日間、ベルサール渋谷ガーデンで開催されました。

https://2024.droidkaigi.jp/

Welcome Talk の様子

また、例年公式のアプリがOSSとして公開されており、多くの方がコントリビュートを行うなど、開催前から盛り上がりを見せていました。DroidKaigi 2024のWelcome Talkでは、公式アプリへのContributorが紹介されており、今年は120名以上の方が、公式アプリへコントリビュートしていました。

https://github.com/DroidKaigi/conference-app-2024

DroidKaigi 2024 で紹介された公式アプリへのContributors

 

サイバーエージェントからの登壇者とそのセッション

弊社からは、株式会社AbemaTVに所属する河井 萌衣(@mtnmr__) が「エンジニア1年目で複雑なコードの改善に取り組んだ話」のセッションで登壇しました。

このセッションでは、「レガシーコード」を、使用技術が古くなったり、当時の仕様や実装の意図が不明であったりして変更しづらいコード、という意味で捉えています。そのレガシーコードを改善するために、およそ2ヶ月半をかけて取り組んだプロジェクトについての詳細な話を聴くことができました。

元来、ABEMAのAndroidモバイルアプリでは、Fluxアーキテクチャを採用していましたが、AndroidとiOS間での仕様やビジネスロジックなどの共通化を目指して、CleanArchitectureへとリアーキテクチャする背景があったようです。Fluxアーキテクチャが汎用的な技術でないことや、ABEMAが長年運用されてきたことで実装が複雑になっていたことからも、エンジニア1年目でこのリアーキテクチャを行うことは想像を絶する大変さだったのではないかと思います。

セッションは、既存の仕様を理解するキャッチアップから始まり、設計、実装、テスト、リリースまでの各フェーズに触れています。設計に関わる意思決定の基準や、各フェーズの具体的な進め方についても説明されていたため、学びの多い内容になっていました。レガシーコードの改善に取り組んでいる方や、長期運用プロジェクトに携わる機会のある方におすすめできる内容なので、ぜひこのセッションのアーカイブをご覧ください。

「エンジニア1年目で複雑なコードの改善に取り組んだ話」セッションに登壇する株式会社AbemaTV 河井 萌衣

 

気になったセッションについて

DroidKaigi 2024では、Conference Dayに47のセッションが行われました。これらのセッションは、Androidの開発で用いられている「Kotlin」や、Androidの宣言的UIライブラリの「Jetpack Compose」などの様々なカテゴリに分類されています。さらに、本年からExperimentalとして、「ソフトスキル」というカテゴリが新たに用意されていました。募集要項を見てみると、この「ソフトスキル」カテゴリはDiversity, Equity & Inclusionや、キャリア、リーダーシップ、ノウハウ、思考法などが対象となるカテゴリのようです。

ここでは、いくつかセッションを拝見した中から、私が印象に残ったものを紹介します。

セッションの様子

海外就職というキャリアの選択肢

こちらのセッションは、新たに用意された「ソフトスキル」カテゴリのセッションでした。他のカテゴリとは異なり、登壇内容もAndroidの技術的な内容ではなくAndroidエンジニアとして海外で働きたい人や、海外で働くことに興味がある人を対象に、海外で働くために必要となる様々な事項について説くような内容となっていました。

具体的には、就労ビザや心構えなど、個人が必要となる用意であったり、海外の企業に出すための英語の履歴書や模擬面接を準備する時に気をつけるべきことついて言及されていました。

特に印象に残っているのが、日本と海外での就業環境の違いと、重要視されない技術についてです。日本ではiOSのシェア率が高いため、UI/UXがiOSに寄せられていたり、対応の優先度がiOSの方が高くなりがちであることが説明され、改めて日本のAndroidのシェア率が世界に比べて低いことを再認識しました。また重要視されない技術に関して、交通カードや電子マネーなどに使われる非接触型ICカード技術であるFelicaや、支払いなどに使われるQRコードを用いた技術はアジア以外の国では評価されにくいようです。

海外で働く時には、何に貢献できるかを、その地域の文化や特色を理解した上で、培ってきた自身のキャリアや技術力を振り返りながら考えることが大切であると感じました。

Debugging: All You Need to Know

こちらのセッションでは、Android StudioのJVMデバッグと公式のデバッグオプションについて、幅広いユースケースを例に挙げながらデバッグ方法を紹介していました。

よくあるデバッグ手法として、プリントデバッグがありますが、これは局所的なアプローチであるため、愚直にプリントデバッグ用のコードを差し込んでいると、度重なるコードの修正とアプリの実行で時間を浪費する場合があります。そこで、このセッションではAndroid Studioに搭載されているデバッガーをうまく利用して、効率よくデバッグする方法に触れていました。

紹介されていた内容には、「Line BreakPoints」や「Attach Debugger」など、普段の開発業務で使っているものもありましたが、これまでになんとなく使っていた関数に特化した「Method Breakpoints」や、これまでに使ったことがない「Watch Variables」機能がわかりやすく紹介されていました。様々な方法が紹介されていた中で、個人的に特に有用そうに感じた方法が「Conditional Breakpoints」です。BreakPointsを使い始めると、その地点を通過するたびにアプリの動作が止まりストレスが溜まりますが、ConditionalBreakpointsを使いこなせば、より効率的にデバッグ作業を行うことができそうです。あるBreakpointsを通過した時にBreakPointsを有効にするというような、BreakPointの依存関係を指定できる「Breakpoints dependency」は、データのfetchがSuccessしていれば、その状態を確認するためにプロパティのBreakpointを有効にする、という使い方もできそうです。

ここに挙げた他にも、多くの効果的なデバッグ方法が紹介されているため、私のような新人エンジニアはもちろん、長年Android Studioで開発をしているベテランエンジニアの方でもデバッグに関する新たな学びを得ることができそうだと感じるセッションでした。

 

サイバーエージェントのDroidKaigi 2024への貢献

サイバーエージェントは昨年に引き続き、DroidKaigi 2024にゴールドスポンサーとして協賛しました。会場では、サイバーエージェントのAndroidプロダクトにおける技術的資産や技術的負債を紹介するパネルを展示し説明を行いました。

会期中は、ブースに来ていただいた方からも開発にまつわる技術的課題や技術的挑戦についての話を教えていただきました。私自身もブースで話をさせていただいていたのですが、多くの方が、Kotlin Multiplatformや、CIによるVRTやE2Eテストの導入を課題に感じているようでした。また、AmebaやTappleのデザインシステムに興味を持っていただいている方も多く、デザインシステム導入のモチベーションや、導入に踏み込む時のエンジニアとデザイナーの間で生じた障壁について尋ねている方がいるのも印象的でした。

他にも、2024年8月に行われたパフォーマンスチューニングコンペ「CYCOMPE」で扱ったアプリの要素を擬似的に再現したサンプルアプリや、開発組織のダイバーシティを推進するTech DE&Iプロジェクトの展示も行いました。ブースに遊びに来ていただいたり、社員とお話していただいた皆様、本当にありがとうございました!

また、サイバーエージェントから6名のエンジニアがDroidKaigi 2024のスタッフとして運営に携わっていました。

協賛だけでなく、登壇者や運営スタッフも含めた様々な形でDroidKaigi、Androidアプリエンジニアコミュニティに貢献できたことを誇りに思います!

サイバーエージェントブースに来ていただいた方々の技術的課題・技術的挑戦について
サイバーエージェントのスポンサーブースとブーススタッフおよびDroidKaigi スタッフ

 

最後に

DroidKaigi 2024も大盛況のうちに終了しました。

スポンサーブースはもちろん、ネイル体験会や2日目に行われたAfter Partyなども多くの方が楽しんでいたのではないでしょうか。私自身も、スポンサーブースやAfter Partyにおいて、Androidチームとして抱えている課題やプロダクトの技術構成・技術的課題などについて会話させていただき、共感や新たな発見をすることが多く、とても楽しかったです。そして、個人的には公式アプリへのコントリビュートも行い、お気に入り画面にセッションの時間を追加実装することで、多くのユーザーが目にすることになるUIに貢献でき、大変嬉しいです。

今年のDroidKaigiも、たくさんの学びと交流が溢れた素敵な機会となりました。

末筆になりますが、DroidKaigiのスタッフの方々を始め、DroidKaigi 2024の開催・運営に携わった皆様、お疲れさまでした!そしてありがとうございました!

2025年度のDroidKaigiの開催も楽しみです!

サイバーエージェントのスポンサーブース