DroidKaigi 2018に参加してきました!【2日目】

はじめに

Pairs事業部でAndroidエンジニアとしてインターンをしている古澤です。
今回は2/8(木)〜2/9(金)に行われた DroidKaigi 2018 (2日目)の様子をレポートしたいと思います。1日目の様子は、Pairs事業部にてAndroidエンジニアをしている 鈴木 がレポートしてくれています。

エウレカからのセッション紹介

マルチログインの実装方法

Pairsではマルチログイン機能は実装されていませんが、開発効率化のために
デバッグビルド時限定で複数アカウントでログインできたらいいなと、
それ用に検討されていたアーキテクチャを紹介しています。

複数アカウントで同時にログインできる機能はTwitterやInstagram等で実現されていますが、
いざ実装しようとすると以下のような問題に直面するのではないでしょうか。

  • 別アカウントのデータが表示されてしまう
  • 別アカウントのデータを上書きしてしまう
  • コードが複雑化してしまう

これらの問題は、

  • グローバル変数や状態を持つシングルトン
  • データや非同期処理がアカウント単位で管理されていないこと
  • 複数アカウントを扱えるアーキテクチャになっていないこと

が主な原因で発生してしまいます。複数アカウントで同時ログインが必要なアプリでは、
ApplicationとAccountを明確に区別して、Repository層以下をアカウント単位でデータや非同期処理を管理するのが良いです。

また、各レイヤーのインスタンスはライフサイクルが異なっているため、自前でインスタンス管理するよりかは、Dagger等のDIコンテナを使うと楽に実装することができます。

後半では、マルチログイン可能なTwitterクライアントのサンプルアプリが紹介されており、
より理解を深めることができました!

実際のサンプルアプリのリポジトリは こちら

個人的に気になったセッション

Flux: Utilize unidirectional data flow to think less and scale faster

Androidアプリ開発にFluxアーキテクチャを導入するメリットや
実際開発してみないと分からない悩みどころを分かりやすくまとめた内容でした!

Fluxは、

  • 単一方向のみのデータフローでアーキテクチャの図式がシンプル
  • 各要素ごとにしっかり責務分けされているのでコードベースである程度統一される
  • Fluxのデータの流れを機能ベースで実装すれば新しい機能や画面を追加した際に再利用可能

などのメリットがあるため、データを管理したり機能を追加したりする際に
必要な時間を短縮することができます。

現在Pairsにおいても一部にFluxアーキテクチャを採用しており、
実際の開発現場でFluxを採用した際のうまみや悩みどころが良く分かりました。

アプリを成長させるためのログ取りとログ解析に必要なこと

Wantedly Visit のサービスでのログ解析を例に、
ログ収集から可視化までの具体的な手法が紹介されています。
単にアプリを良くすると言っても、何をもって良くなったと言えるのか、
指標やその数字を出すための手法が明確になっていないと結果は出せません。
アプリ開発には多くの人が関わっているので、正しいログを取ることでメンバーが動きやすくなり、プロダクトの成長に繋がっていくことが分かりました。

終わりに

初めてDroidKaigiに参加しましたが、Androidエンジニアってこんなにいるのか!と正直驚きました。また、インターンでお世話になったエンジニアの方々とも久しぶりにお話できたり、Android アプリ設計パターン入門の著者でもある藤原さんともお話できたりと充実した二日間でした。今後はこのイベントで学んだ内容をしっかりアウトプットして、自分の技術として落とし込んでいきたいです!

DroidKaigiを開催、運営をしてくださいましたスポンサー、
運営スタッフの皆さまありがとうございました。
来年も必ず行きます!