dip Engineer Blog

Engineer Blog
ディップ株式会社のエンジニアによる技術ブログです。
弊社はバイトル・はたらこねっとなど様々なサービスを運営しています。

DroidKaigi 2024に参加してきました!

はじめに

こんにちは!ディップ株式会社に今年新卒として入社したAndroidエンジニアの藤崎航誠と申します。

今回はDroidKaigi 2024に参加してきましたので、その参加レポートを書きたいと思います!

DroidKaigi 2024の様子

今年度は以下の日程で開催され、私はDAY2,3に参加してきました。
9/11(水):DAY1 _ワークショップ
9/12(木):DAY2 _セッション、企業ブース
9/13(金):DAY3 _セッション、企業ブース
セッションは時間帯ごとに4つに開かれ、その中で自分の興味があるセッションに参加できるので、Android開発初級者の自分でもレベルに合ったセッションに参加できました。

会場には企業ごとのブースが出展されており、セッションの間にはそれらのブースを回ってスタンプを集めながらアンケートやクイズなども答えたりしていました。(スタンプラリーの景品としてタンブラーをもらいました)

また、ネイルをしてもらうことができたり、本格的なコーヒーを飲めたりとイベント盛りだくさんでした。

セッションの紹介

参加したセッションから印象に残ったものをいくつか紹介したいと思います。

宣言型UIを学ぶ際に知っておくべき重要なコンセプト


このセッションでは、宣言型UIについて複数のフレームワークを比較しながら共通する概念について紹介されていました。

宣言型UIとは、UIの状態を宣言的に記述するプログラミングパラダイムの一つで、近年主流になってきているJetpack ComposeやSwift UIなどで採用されています。

宣言型UIではコンポーネントというUIのパーツを組み合わせて画面を構築します。そしてUIの状態はStateを使って管理し、ユーザーによってStateに変化が加えられると再レンダリングが起こり、画面に状態が反映されます。また、UIに関係しないロジックに関してはサイドエフェクトとして処理を行います。これらの考え方は宣言型UIフレームワークに共通しており、一度理解できたらどのフレームワークでも理解が早まると思います。

過去にReactを触っていた経験から理解につながった部分が多くてとても面白かったです。また、セッションの中で宣言型UIの効率的な使い方を学ぶのにReactのメカニズムを調べることがおすすめと話されており、自分の分野だけでなく他の分野の技術を勉強するのも大事だと感じました。

アプリをリリースできる状態に保ったまま段階的にリファクタリングするための戦略と戦術


このセッションでは、リファクタリングとは何かということからリファクタリングをなぜしたくなるのか、リファクタリングの順番などの戦略・テクニックについて紹介されていました。

リファクタリングとは、外からの振る舞いを変えずにソースコードの構成を変えることです。では、なぜリファクタリングを行うのか。それはわかりにくさが原因だと考えているようです。例えばコードの命名規則が違ったり、業界で一般的なライブラリやアーキテクチャではなかったりした時にわかりにくさを感じます。それらの分かりにくさを解消するには、業界で共通の知識になっているものの活用や、人間の認知を意識してグループ化、階層化を行う必要があります。

また、リファクタリングを行う際の戦略として以下の3つが挙げられていました。

  1. 環境を整える
  2. 末端からリファクタリングする
  3. いつでも中断できる単位で進める

リファクタリングの実例ではとても古い技術構成を例にしており、具体的な方法も含まれていてとても勉強になりました。

オフライン・ファーストなアプリの実例: ガーナの農家アプリ


このセッションでは、インターネットが繋がりにくいアフリカのガーナの農家向けのアプリを開発した際の戦略について紹介されていました。

アプリの概要としては、農家が収穫した量や時期などを記録したり、農家の情報を閲覧したりするもので、オフラインの場合でも読み書きを行えるようにしなければいけません。そのため、情報を読み込むのに、まずローカルから情報を取り、バックグラウンドでインターネットを通じての情報取得を試み、ローカルに保存するようにしてUIに反映します。また、ユーザーが情報を入力する際は、入力された内容をローカルに保存して、その情報をキューに入れてネットワークに繋がった際に通信します。そのために、サーバーと通信するためのストレージと一時的にデータを保持する2つのストレージで管理することで実現したようです。

ガーナでの開発という特殊な環境での実体験を元に、リアルなユーザーのニーズに応える話を聞くことができ、興味深いセッションでした。Now In Androidもオフラインでも動作するような設計になっており、そういった設計についても勉強しないとなと思いました。

さいごに

今回はじめてこのような大きなカンファレンスに参加したため、とても刺激をもらえることができました。特に、ブースやアフターパーティーなどで他の企業のエンジニアの方と交流することができ、技術や働き方について話すことができてとても楽しかったです!セッションでは、まだ触ったことがない技術について知ることができ、自分でも試してみたいと技術に対してモチベーションが上がったと感じています!また、印象に残ったセッションが基本的な概念や設計に関するトピックのものが多く、今の自分のレベル感やどういう情報が欲しいのかについて知ることができました。とても有意義な時間だったため来年もぜひ参加したいと思います!