白眼鏡のblog

新しく得た知見を備忘録的に書き連ねていく

DroidKaigi2019に参加してきました

DroidKaigi 2019参加してきました。
去年も行こうかと思っていたんですが、プロジェクトの炎上により行けず…
今年はおやすみも取れたのでなんとか参加することが出来ました。

セッション

聞いたセッション一覧と感想です。

opening

オープニングの動画かっこよかったです。

www.youtube.com 今回はアプリにもコントリビュート出来、スライド中に自分のアイコンが入ってました。
こういう形で自分のアイコンが表示されるのは嬉しいものですね。
今回は簡単なISSUEにしか挑戦できなかったので、次回はもう少し難しいものにも挑戦してみたいですね。
f:id:wadada420:20190216014043j:plain

マルチモジュールなプロジェクトでテストはどう変わるか?

発表者:@fgfgtkmさん
資料:マルチモジュールなプロジェクトでテストはどう変わるか? / How change testing in modular architecture - Speaker Deck
マルチモジュールなプロジェクト自体にあまり触れたことがなく、初めて見たのが今回のDroidKaigiのアプリでした。
実際にマルチモジュール構成にした場合にどういったメリットがあるのか、ざっくりとわかって今後の社内の案件で採用する場合に参考になると感じました。
後、初めて知ったMutationTestなるもの

プロダクトコードを機械的に変更し、変更されたコードに対してテストを実行
テストが失敗するかを確認することで、テストコードが振る舞いの変更を検知できるかチェックする

このテストを実行することで、条件分岐が想定通り実装されているかなど確認できそうで、実プロジェクトに採用していきたいところです。

マルチモジュールプロジェクトでのDagger2を用いたDependency Injection

発表者:@kgmyshinさん
資料:android-multi-module-with-dagger - Speaker Deck
サンプルコード:GitHub - kgmyshin/Multi-Module-Project-With-Dagger
DIとはDaggerとはといったことを簡潔にわかりやすく説明されていたので、概念として理解することが出来ました。
マルチモジュール化した場合のDIはInjectorが一つしか持てない、じゃあどうするのかという解決策も今後マルチモジュール化していくにあたってぶつかる問題だと思うのですごくためになるセッションでした。
後、手書き感溢れるスライド最高に好きでした。

LiveDataとCoroutinesで実装するDDDの戦術的設計

発表者:@yanzmさん
資料:Y.A.M の 雑記帳: DroidKaigi 2019 で「LiveData と Coroutines で 実装する DDD の戦術的設計」について話してきました。
サンプルコード:GitHub - yanzm/DroidKaigi2019
yanzmさんのセッションは前回、前々回の内容の続きということでしたが、初見でも非常にわかりやすくドメインとは何かということからある程度把握することが出来ました。
KotlinのDataクラスを使った実装など具体的な例が多くあったので、次の案件に早速反映することが出来そうです。
DDDについては非常に興味が湧いたので、個人的に勉強していこうと思います。

PWAでここまでできる

発表者:@samukeさん
資料:PWAでここまでできる - Speaker Deck
動画:DroidKaigi 2019 - PWA でここまで出来る / SAMUKEI [JA] - YouTube
PWA.聞いたことはあったんですが、実際どういったものなのかしっかりとは知らなかったので聞いてきました。 ストアに登録は出来ないと思っていたんですが、確かにガワネイティブ(Cordova)など使えば行けるようですね。
実際使うことがあるかどうかはわかりませんが、知識として知れたのはよかったです。

Understanding Kotlin Coroutines: コルーチンで進化するアプリケーション開発

発表者:@mhidakaさん
資料:Understanding Kotlin Coroutines: コルーチンで進化するアプリケーション開発 - Speaker Deck
動画:DroidKaigi 2019 - Understanding Kotlin Coroutines: コルーチンで進化するアプリケーション開発 / mhidaka [JA] - YouTube
今のプロジェクトでは非同期処理はAsyncTaskを使ってるので、RxかCoroutinesを使うように変えていこうと考えていたのでとても参考になりました。
RetrofitもCoroutinesに正式対応という情報も出てきているのでCoroutinesの使用方法がざっくりと理解できたのが大きな収穫でした。 また、並行性と並列性の意味について初めて知りました、Coroutinesだけではなくプログラムを作成する上で重要な考え方だと思うので、次のプロジェクトの設計に活かしていけたらといったところです。

Chrome + WebAuthn で実現できるパスワードレスなユーザー認証体験と開発者の課題

発表者:@ritou さん
資料:WebAuthn @ DroidKaigi 2019 - Speaker Deck
動画:DroidKaigi 2019 - Chrome +WebAuthn で実現できるパスワードレスなユーザー認証体験と開発者の課題 / ritou [JA] - YouTube
ちょうど今FIDO認証を利用したアプリ開発をやってるのですが、FIDO認証と生体認証の違いについて再認識することが出来ました。

Guide to app architectureを踏まえた既存アプリの設計改良

発表者:@nakamuuuさん
資料:Guide to app architectureを踏まえた既存アプリの設計改良 / DroidKaigi 2019 - Speaker Deck
動画:DroidKaigi 2019 - Guide to app architecture を踏まえた既存アプリの設計改良 / nakamuuu [JA] - YouTube
前半の課題の部分、自分の担当しているプロジェクトにも当てはまりすぎてかなりグサグサと突き刺さりましたね。
プロジェクト特性に合わせたアーキテクチャ選定などしっかりと行うべきだと改めて思いました。とりあえずAndroidアプリ設計パターン入門しっかりと読み返します。

実践 Lottie

発表者: @kumanomiさん
資料:実践Lottie.pdf - Speaker Deck
動画:DroidKaigi 2019 - 実践 Lottie / kumanomi [JA] - YouTube
デザイン周りやアニメーションを使ったことがこれまでほとんどないので、Lottieについて知っておこうと聞いてみました。
Lottieアプリで使う分にはかなり使いやすそうだという印象を受けましたね、ただ弊社デザイナさんと直接やりとりできるわけではないということなどもあり、導入する場合メンバの誰かしらがAfterEffectsの勉強しないといけなそうです。
...時間ができたらやってみるかな。

今日から始める依存性の注入

発表者:@kobakeiさん
資料:今日から始める依存性の注入 / First Time Dependency Injection - Speaker Deck
動画:DroidKaigi 2019 - 今日から始める依存性の注入 / kobakei [JA] - YouTube
DI完全に理解した(笑
今までのプロジェクト、どうしてもクラス間の結合度が高すぎてテスト時に苦労するということがあり、DIの導入を進めようとしていたところだったので本当にわかりやすいセッションでためになりました。
とりあえず触りやすそうなKoinで始めることにしてみます。

Androidにおけるパフォーマンスチューニング実践

発表者: @neonankiti さん
資料:Androidにおけるパフォーマンスチューニング実践 - Speaker Deck
動画:DroidKaigi 2019 - Android におけるパフォーマンスチューニング実践 / neonankiti [JA] - YouTube
バックエンド側のパフォーマンスについては多少触ったことがあるのですが、フロント側でのパフォーマンスについてはあまり意識したことがなかったので、ほとんどが新しく知った内容でした。
レイアウトファイルの設定など簡単に取り込める内容も多くあったので、早速今のプロジェクトに反映させていただきました。

Navigation Architecture Component によるアプリ内遷移の管理

発表者:@nakamuuuさん
資料:Navigation Architecture Component によるアプリ内遷移の管理 - Speaker Deck
動画:DroidKaigi 2019 - Navigation Architecture Component によるアプリ内遷移の管理 / Yuta Takahashi [JA] - YouTube
Navigation Architecture Component知らなかったです、AppLinksなどを使って遷移した場合の動きをアイコンから起動した場合と同じにする、画面遷移の流れを外部で定義するというのはなかなか便利だと思いました。これまで、どこから来たかを判定して元の画面に戻すといった処理をしていた部分がかなり楽になりそうですね。
まだベータ版ということなのでこれからの機能にはなるかと思いますが、かなり期待のできるものだという印象でした。

終わりに

DroidKaigi新しい学びや、新しい繋がりを得られとても貴重な2日間でした。
スタッフの皆さん、スピーカーの皆さんお疲れ様でした。来年も是非参加させていただきたいと思います。
何か話せることができればスピーカーにも応募してみたいですね。