Android Dev Summit アプリの開発と Instant App 対応 App Bundle のリリースを通じてわかった留意点。
Android Dev Summit アプリは、11 月 7~8 日にカリフォルニア州マウンテンビューで開催されたサミットの参加者とリモートの視聴者向けにリリースされたアプリです。
IO-Sched をベースに ADS-Sched を開発
Android Dev Summit アプリ(adssched)は、Github から入手できるオープンソース プロジェクト、Google I/O アプリ(iosched)をベースに開発しました。以下のような機能は不要だったため削除しました。
- 予約 [メインコミット]。この機能は、アプリのすべてのレイヤに深く関わっています。そのため、データ リポジトリがかなり複雑になっていました。I/O アプリの場合は、登録済みの参加者かどうかをエンドポイントで識別し、参加者でないユーザーには別のエクスペリエンスを提供する必要がありました。一方、adssched のユーザーはすべて同じ立場であるため、この機能を削除したことでビジネス ロジックがかなりシンプルになりました。
- 地図画面 [コミット]。今回のカンファレンスは 2 系列のみだったため地図は不要でした。下部のナビゲーションから地図を削除し、空いたスペースにアジェンダを追加して基本情報のみを一覧できるようにました。
新しい機能として以下を追加しました。
- 通知 [コミット]。AlarmManager を使用して、スターを付けた項目の開始時間 5 分前にリマインダーが設定されるようにしました。
- Instant App [コミット]。Instant App のビルドは、Android Studio からかなり簡単に行えるようになっています。今回は、フレーバーを使用して 2 種類のバンドル(インストール用アプリと Instant App)を生成しました。現時点ではバンドルが 2 つ必要ですが、将来的には 1 つのバンドルでアップロードできるようになります。
Instant App の統計情報
カンファレンス アプリを Instant App としてリリースしたのは今回が初めてです。チームとしても、どれくらいの人々が Instant App を利用するのか関心を寄せていました。
|
インストール用アプリと Instant App のユーザー数の比較(10 月 30 日~11 月 15 日) |
Instant App ユーザーの約 25%(全体の 15%)がインストール用アプリに移行しました。
|
Instant App とインストール用アプリの利用者の割合 |
Instant App の採用状況:
- カンファレンスの 1 週間前にこのアプリを発表したとき、およそ 40% のユーザーが Instant App を試しました。Instant App には、Play の検索結果に表示される [今すぐ試す] ボタンからアクセスできるようにしました。
- カンファレンス期間中は、この割合が 30% まで下がりました。通知を利用するために、インストール用アプリに移行した人が多かったものと思われます。
- 興味深いのは、カンファレンス終了後にインストール数が減り、Instant App のユーザー数が増えたことです。2 つの違いが通知のみであることを、ユーザーが理解した結果と思われます。
このような統計情報を収集するには、Instant App をリリースする前に
こちらのガイドに沿ってアナリティクスを設定してください。また、Instant からインストール用への移行フローのイベントも追加してください(今回追加せず後悔しました)。
Instant App を追加する際の留意点
うまく機能した点:
- 認証メカニズムを修正する必要はありません。Firebase Auth と Google Smart Lock for Passwords で対応できるため、Instant App へのログインは非常にスムーズでした。
- ユーザーが Android スマートフォンでサミットを検索すると Instant App が表示されました。
|
サミットの検索結果に表示された Instant App |
- Instant App からインストール用アプリへの移行フローは、Google Play によってシームレスに処理されます。
|
Google Play の Instant からインストール用への移行フロー |
改善が可能だった点:
- activity-alias の発見に問題があり、Instant App は起動しているのにランチャーに表示されませんでした。[最近] 画面には表示されましたが、理想からはほど遠い状態でした。時間的な問題で、バグの修正の配信が間に合いませんでした。
- 通知を Instant App から直接利用することはできません。ただし、Play 開発者サービス(現時点ではベータ版)を使用してプッシュ通知を送信することは可能です。これにはバックエンド コードが必要になります。今回はこの通知を使用して、Instant からインストールへの移行を提案しました。2 つのフレーバーの違いはこの点だけです。
adssched のオープンソース化
IOSched は、最初からサンプルとして開発されたアプリです(そのため、このようなパッケージ名になっています)。他のカンファレンス アプリを開発する際に参照したり、ベースとして使用することを意図しています。ただし、I/O には特定の要件(たとえば予約システム)があり、一般的なカンファレンス アプリに適用するには複雑すぎる面があります。
Android Dev Summit は、サイズや要件が一般的なカンファレンス アプリに近いため、こちらのほうが
開発のベースや再利用に適しています。新しいバージョンで必要なのは、Firebase プロジェクト(2 番目のステージング プロジェクトの使用を推奨、Debug ビルドタイプにリンク)と、
カンファレンス データの JSON ファイル(非常にわかりやすい形式になっています)をホストする場所のみです。
➡
https://github.com/google/iosched/tree/adssched
adssched をベースにした開発についてご不明な点がありましたら、お気軽に Github プロジェクトに質問を投稿してください。
今回の Instant App の実験は成功裏に終わり、非常に興味深い調査結果を集めるとができました。しかし、Instant App のエントリ ポイントは 1 か所のみで、アプリ全体のサイズは小さくユーザー数も限られた点を考えると、事例としては非常に単純なものと言えます。デベロッパーの皆様がどのような Instant App を構築し、adssched をベースにどんなコミュニティが形成されるのか、チーム一同楽しみにしております。