見出し画像

DroidKaigi 2019 で印象に残った発表 3 選・アーキテクチャ/CI/アニメーション #Zaim

こんにちは、Zaim で Android を担当している @ishikawy です。2019 年 2 月 7 日(木)〜8 日(金)に開催された Android エンジニアの祭典「DroidKaigi」に業務として参加してきました。

Zaim では、業務として勉強会に行くためには三つの条件があります。

(1)業務に密に関係する内容である
(2)業務に支障をきたさない
(3)可能な限り Zaim の一員として発表する

ただ、3 番目に関しては発表者側に回りたくとも回れない場合もあります。そんな時は社内ブログ(Kibela)か note に書く、というルールがありますので、今回はそれに沿って参加レポートを書いてみたいと思います。

DroidKaigi 2019 三行まとめ

話題の中心はアーキテクチャ・マルチモジュール・テスト
言語としてはすでに Kotlin が前提
レアと呼ばれがちな Android エンジニアが 1,000 人集結

中でも印象に残った発表を三つ挙げてみます。

(1)アプリをさらに成長させるための技術戦略

shoheikawano さんによる、自社サービスの成長の話でした。マッチングアプリ「タップル」のアーキテクチャを MVVM から Flux へ移行したとのこと。Flux とした理由は、主に以下の 3 点。

ViewModel の肥大化をどうにかしたい
API と通信する処理と状態を管理する処理を分離させたい
startActivityResult をもっと簡単な方法で実現させたい

Flux はデータの流れを一方向にでき、またテストや状態管理がしやすいとうメリットがあります。

面白いなと思ったのは Flux へ移行する中で、開発者の開発中の悩みの受け皿となる「開発の悩みを相談するレポジトリ」を作成したという点。開発者同士のコミュニケーションが活発になり、心理的安全性も高まるなと感じました。

また「普段できてないことだけをする」という 1 日を設けたそう。これは Zaim で取り組んでいる「不具合優先日」の考え方が近いかもしれません。不具合優先日については、おいおい note でも紹介していきたいと考えています。

Zaim の Android アプリは今年で 7 年目を迎え、ここからさらに成長できるようアーキテクチャの見直しやリファクタリングを実施しています。チームの規模感や重点の置き場所で採用すべき技術は変わってくるので、常により良い判断ができるよう他社事例を参考にしつつ、決定していきたいと思いました。

(2)中規模以上のアプリ開発における CI レシピとリリースフロー戦略

kazakago さんによる、マッチングアプリ「with」における「アプリ開発にかかる手作業の部分をいかに減らしていくか」というお話。

Zaim の CI 環境とほとんど同じ運用をされているなと感じました。

異なったのは、アプリバージョンアップ時の Google Play ストアの公開率を自動で上げるようにしているという点。Zaim では公開率 1%から手動で実施しています。ユーザーに影響がないかをチェックした上で公開範囲を広げていきたいという意図の運用ですが、ここのフローは他社のノウハウを参考にしつつ、一部自動化するなど見直してもいいかもしれません。

なお下のリンクで紹介している iOS チームの CI/CD 環境は、Android チームでもほぼ同じで、ストアへの公開作業も fastlane で完結しています。

(3)Deep dive into MotionLayout

Google エンジニアによる、現在アルファ版の ConstraintLayout 2.0 に含まれる機能の紹介でした。より簡単に・直感的に Android Studio 上で View のアニメーションが作れるようになるとのこと。

乱立していた Animation の定義方法がまとまる点、少し分かりづらい Shared Elements の遷移の部分がやりやすくなる点は非常に魅力的に感じました。今後、重要度が増す UI の「動き」の実装を、公式でここまでサポートしているのは iOS に対して一歩リードしている部分かもしれません。

これまで以上に簡単・リッチなアニメーションが作れそうで、ワクワクします!

所感

去年の Google I/O から Android が新しいステージへ入りつつある中で、新しい仕組みをどう利用していくか、開発者として非常に刺激を受けるイベントでした。正式リリース前の機能も多いものの、早めに使ってみて Zaim アプリの開発に有益と判断できる技術は、積極的に取り入れていきたいと考えています。

そして「ここにはこんなに Android 開発者がいるように見えるのに、我が社を含め、どこへ行っても Android 開発者が足りていないのはなぜなのか…」と思うなどしました。

「実は内心 Zaim 気になってるんです」という Android 開発者の方、もっと詳しい開発フローや課題などをご紹介したいので、ぜひ遊びに来てください!


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?