アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

Android版いこーよがバージョン2になりました

Android版いこーよ担当のhondaです。
Android版いこーよはゴールデンウィーク前にバージョンが2にアップデートされ、大きくリニューアルされました。

play.google.com

今回はこのリニューアルで変わったところ、チャレンジしたところをいくつかご紹介します。

UIで変わった部分

トップ画面

大きく変わったところはログイン後のトップ画面です。

 

左がバージョン2のトップ画面、右がバージョン1のトップ画面です

バージョン1ではマップ画面でしたが、バージョン2では「季節のスポット」「イベント」「口コミ」「クーポン」「ランキング」「いこレポ」など、お出かけをするにあたって、必要なカテゴリにフォーカスしてリスト表示する画面に変更されました。
いこーよには7万4000件以上(2019/05/08時点)のスポットが掲載されています。
その中でも現在地やおでかけ予定のエリアでの人気のスポット、クーポンのあるスポット、イベントなどユーザにとってより有益なスポットやおでかけ情報にアクセスしやすくなりました。
iOS版では新しいトップ画面はすでに導入されており、ユーザから高評価を頂いたためAndroidでも導入となりました。

新しいトップ画面になり、「投稿する」ボタンが画面下部から赤いボタンとなって移動しました。
これは、新しいトップ画面のリストに一部のコンテンツが移動したため、トップ画面下部に設置していたボタンが減ったためです。
「投稿する」ボタンは多くのユーザが使うボタンのため、一番使いやすい画面下部のセンターに配置したいためにこのようになりました。

アプリのプライマリーカラー

アプリのプライマリーカラーがいこーよのテーマカラーであるオレンジからホワイトに変更されました。
いこーよのブランドカラーであるオレンジはアクセントカラーで残しつつ、プライマリーカラーをホワイトにすることで画面を見やすくしました。

 

内部の変更

アーキテクチャーの変更

GoogleがGuide to app architectureで推奨しているアーキテクチャーを導入しました。
以前はMVCライクな設計にしていましたが、Googleが推奨するアーキテクチャーにすることでAndroidアプリのライフサイクルに柔軟に対応できること、シンプルな設計なので見通しが良くなること、などの理由から新規機能の実装から導入することにしました。
また、いこーよアプリでは各モジュールの依存をkoinで定義して疎結合にしています。
koinはkotlinで書かれていて、Android Architecture ComponentのViewModelとの相性も良いし、シンプルなのでとても扱いやすいと思います。

https://developer.android.com/topic/libraries/architecture/images/final-architecture.png

RxJava から Kotlin Coroutines

通信などの非同期処理をRxJavaを使って実装していましたが、新規実装からKotlin Coroutinesに変更しました。
主にRxJavaを使っていたのが通信処理での非同期処理だったため、RxJavaのSingleやCompletableしか使っていなかったのでアンマッチなところがありました。
今回のアプリアップデートのタイミングでKotlin Coroutinesのバージョンが1.0になり、stableになったため検討したところ、通信での非同期処理が多いいこーよアプリととても相性が良さそうでした。
いこーよアプリでは通信処理をRetrofitで実装してあります。
現在、Retrofitはまだコルーチン対応していません。*1
なのでレスポンスを受け取るところをコルーチン用にカスタマイズする必要があります。
いこーよでは以下のライブラリを使って対応しています。
github.com

まとめ

簡単ですが新しいバージョンのご紹介でした。
このようにユーザーに早くいこーよの価値を届けるために迅速な実装が出来る仕組みづくりを進めています。
今後もAndroid版いこーよアプリは改修を予定しています。
進化していくいこーよにご期待ください!

*1:masterにはすでにcoroutine対応がマージされているので次バージョンでリリースされそうです。待ち遠しいですね。https://github.com/square/retrofit/pull/2886