晃太エンジニアこんにちは。本記事では、カンファレンスの様子やサイバーエージェントのDroidKaigiへの貢献などについて紹介します。Android技術の共有とコミュニケーションを目的とし開催されている、エンジニアが主役のAndroidカンファレンスです。9月13日(金)までの3日間、ベルサール渋谷ガーデンで開催されました。様子また、例年公式のアプリがOSSとして公開されており、多くの方がコントリビュートを行うなど、開催前から盛り上がりを見せていました。Talkでは、公式アプリへのContributorが紹介されており、今年は120名以上の方が、公式アプリへコントリビュートしていました。「エンジニア1年目で複雑なコードの改善に取り組んだ話」のセッションで登壇しました。このセッションでは、「レガシーコード」を、使用技術が古くなったり、当時の仕様や実装の意図が不明であったりして変更しづらいコード、という意味で捉えています。そのレガシーコードを改善するために、およそ2ヶ月半をかけて取り組んだプロジェクトについての詳細な話を聴くことができました。ABEMAのAndroidモバイルアプリでは、Fluxアーキテクチャを採用していましたが、AndroidとiOS間での仕様やビジネスロジックなどの共通化を目指して、CleanArchitectureへとリアーキテクチャする背景があったようです。Fluxアーキテクチャが汎用的な技術でないことや、ABEMAが長年運用されてきたことで実装が複雑になっていたことからも、エンジニア1年目でこのリアーキテクチャを行うことは想像を絶する大変さだったのではないかと思います。セッションは、既存の仕様を理解するキャッチアップから始まり、設計、実装、テスト、リリースまでの各フェーズに触れています。設計に関わる意思決定の基準や、各フェーズの具体的な進め方についても説明されていたため、学びの多い内容になっていました。レガシーコードの改善に取り組んでいる方や、長期運用プロジェクトに携わる機会のある方におすすめできる内容なので、ぜひこのセッションのアーカイブをご覧ください。Dayに47のセッションが行われました。Compose」などの様々なカテゴリに分類されています。本年からExperimentalとして、「ソフトスキル」というカテゴリが新たに用意されていました。Inclusionや、キャリア、リーダーシップ、ノウハウ、思考法などが対象となるカテゴリのようです。ここでは、いくつかセッションを拝見した中から、私が印象に残ったものを紹介します。海外就職というキャリアの選択肢こちらのセッションは、新たに用意された「ソフトスキル」カテゴリのセッションでした。他のカテゴリとは異なり、登壇内容もAndroidの技術的な内容ではなくAndroidエンジニアとして海外で働きたい人や、海外で働くことに興味がある人を対象に、海外で働くために必要となる様々な事項について説くような内容となっていました。具体的には、就労ビザや心構えなど、個人が必要となる用意であったり、海外の企業に出すための英語の履歴書や模擬面接を準備する時に気をつけるべきことついて言及されていました。印象に残っているのが、日本と海外での就業環境の違いと、重要視されない技術についてです。日本ではiOSのシェア率が高いため、UI/UXがiOSに寄せられていたり、対応の優先度がiOSの方が高くなりがちであることが説明され、改めて日本のAndroidのシェア率が世界に比べて低いことを再認識しました。重要視されない技術に関して、交通カードや電子マネーなどに使われる非接触型ICカード技術であるFelicaや、支払いなどに使われるQRコードを用いた技術はアジア以外の国では評価されにくいようです。海外で働く時には、何に貢献できるかを、その地域の文化や特色を理解した上で、培ってきた自身のキャリアや技術力を振り返りながら考えることが大切であると感じました。StudioのJVMデバッグと公式のデバッグオプションについて、幅広いユースケースを例に挙げながらデバッグ方法を紹介していました。あるデバッグ手法として、プリントデバッグがありますが、これは局所的なアプローチであるため、愚直にプリントデバッグ用のコードを差し込んでいると、度重なるコードの修正とアプリの実行で時間を浪費する場合があります。Studioに搭載されているデバッガーをうまく利用して、効率よくデバッグする方法に触れていました。Variables」機能がわかりやすく紹介されていました。Breakpoints」です。BreakPointsを使い始めると、その地点を通過するたびにアプリの動作が止まりストレスが溜まりますが、ConditionalBreakpointsを使いこなせば、より効率的にデバッグ作業を行うことができそうです。dependency」は、データのfetchがSuccessしていれば、その状態を確認するためにプロパティのBreakpointを有効にする、という使い方もできそうです。Studioで開発をしているベテランエンジニアの方でもデバッグに関する新たな学びを得ることができそうだと感じるセッションでした。2024にゴールドスポンサーとして協賛しました。会場では、サイバーエージェントのAndroidプロダクトにおける技術的資産や技術的負債を紹介するパネルを展示し説明を行いました。会期中は、ブースに来ていただいた方からも開発にまつわる技術的課題や技術的挑戦についての話を教えていただきました。Multiplatformや、CIによるVRTやE2Eテストの導入を課題に感じているようでした。AmebaやTappleのデザインシステムに興味を持っていただいている方も多く、デザインシステム導入のモチベーションや、導入に踏み込む時のエンジニアとデザイナーの間で生じた障壁について尋ねている方がいるのも印象的でした。DE&Iプロジェクトの展示も行いました。2024のスタッフとして運営に携わっていました。2024も大盛況のうちに終了しました。Partyなども多くの方が楽しんでいたのではないでしょうか。ついて会話させていただき、共感や新たな発見をすることが多く、とても楽しかったです。個人的には公式アプリへのコントリビュートも行い、お気に入り画面にセッションの時間を追加実装することで、多くのユーザーが目にすることになるUIに貢献でき、大変嬉しいです。今年のDroidKaigiも、たくさんの学びと交流が溢れた素敵な機会となりました。晃太2024年新卒入社のAndroidエンジニアです。現在はFANTECH本部に所属しています。-Cyberagentご利用にあたって。