OS アップデートに対する Android Upgrade Party

Upgrade Party は、OS のメジャー アップグレードを受け取ると Android ユーザーに新機能を紹介する検出フローです。

Android オペレーティング システムのメジャー アップグレードは、ユーザーにとって常に好ましい変化とは限りません。Upgrade Party のフローは、ユーザー エンゲージメントを高め、新しく更新された OS の操作方法を理解するのに役立ちます。

最新の OS バージョンにアップグレードすると、新しい OS にユーザーを歓迎するプッシュ通知が届き、新機能についてのカードフローが表示されます。

デバイス メーカーの場合は、Android Upgrade Party の有効化のリクエスト フォームを送信することで、自社の Android OS 搭載デバイスで Upgrade Party を有効にすることができます。

Upgrade Party のエクスペリエンスをカスタマイズする

Upgrade Party のエクスペリエンスは、次の方法でカスタマイズできます。

  • 無関係な機能を削除する。
  • テキスト ブロックの言語を更新する。
  • ブランドに合わせてアニメーション、色、フォントを変更する。

フローをカスタマイズするには、Upgrade Party スタイルガイドのガイドラインを確認し、フォームの回答欄にカスタマイズ情報を記載します。

Upgrade Invite スタイルガイド

このスタイルガイドを使用し、独自のブランドに合わせて Upgrade Invite のデザイン(画面、色、フォント)を変更します。サイズと構造は元のデザインに近いものにすることを強くおすすめします。

Upgrade Invite のフローには、次の 3 つのコンポーネントがあります。

  • イントロ画面
  • 機能画面
  • アウトロ画面
図 1. Upgrade Invite のフローにおける 3 つの画面タイプ

各画面のアニメーションで各機能を説明できます。

イントロ画面

イントロ画面には、ユーザーを歓迎し、イントロ画面に表示されるフローを開始するよう促す短いアニメーションが含まれます。

レイアウト
図 2.Upgrade Invite のイントロ画面のワイヤーフレーム レイアウト

デバイスのアニメーションは、常に次のもので構成されます。

  • 白い背景とカラフルな図形
  • デバイス フレーム
  • UI コンテンツ
スタイル設定

Material You のスタイル設定を採用する場合は、例に示すデフォルトの色と図形を使用できます。

図 3. Upgrade Invite のフローのデフォルト カラーパターン。

独自のブランドカラーを使用する場合は、UI の背景に合ったものにしてください。

モーション

方法 1: ホーム画面に時計がある

  1. 数字が画面に現れます。
  2. 数字が中央に向かって徐々にズームアウトしていきます。スマートフォンのフレームが現れます。
  3. スマートフォンが徐々にズームアウトします。図形が画面に現れ始めます。
  4. アニメーションが完了します。図形は穏やかに動き続けます。
図 4. 時計のある Upgrade Invite のイントロ画面アニメーションのワイヤーフレーム レイアウト。
図 5. 時計のあるイントロ画面のアニメーションの例。

方法 2: ホーム画面に時計がない

  1. スマートフォンが画面に現れます。
  2. スマートフォンが中央に向かって徐々にズームインしてきます。図形が画面に現れ始めます。
  3. スマートフォンが最大サイズに達します。図形は動き続けます。
図 6. 時計のない Upgrade Invite のイントロ画面アニメーションのワイヤーフレーム レイアウト。
図 7. 時計のないイントロ画面のアニメーションの例。

機能画面

それぞれの機能画面で、新しい OS の機能が 1 つ紹介されます。

レイアウト
図 8. Upgrade Invite の機能画面のワイヤーフレーム レイアウト。

デバイスのアニメーションは、常に次のもので構成されます。

  • カラフルな背景
  • デバイスのフレーム
  • UI コンテンツ
スタイル設定
  • UI コンテンツと全体の印象に合った背景色を選びます。
  • 画面内で読みやすいフォントサイズを設定します。必要に応じてフォントサイズを大きくします。
モーション

タップ操作を含め、各機能のフローのアニメーションを録画します。録画を Lottie ファイルとしてエクスポートします。

アウトロ画面

アウトロ画面でフローが完了し、すべての画面が表示されたことがユーザーに伝えられます。

レイアウト
図 9. Upgrade Invite のアウトロ画面のワイヤーフレーム レイアウト

デバイスのアニメーションは、常に次のもので構成されます。

  • 背景に半円(加えて、アニメーションが付いた図形)
  • デバイスのフレーム
  • UI コンテンツ
スタイル設定
  • UI コンテンツと全体の印象に合った背景色を選びます。
  • 半円の図形を使用します。
モーション

以下の標準的なアウトロ画面のアニメーション フローに従います。

  1. スマートフォンが少し上に移動します。
  2. 背景に円が表示されます。
  3. 図形がスマートフォンの後ろから出てきます。
  4. 図形は紙吹雪のように背景から飛び出します。
図 10. Upgrade Invite のアウトロ画面アニメーションのワイヤーフレーム レイアウト
図 11. アウトロ画面のアニメーションの例

SDK を使って Upgrade Party をトリガーする

デフォルトでは、Android OS がアップグレードされるとすぐに、最新機能についてのカードフローを表示するプッシュ通知がユーザーに送信されます。独自のプッシュ通知やアプリからフローをトリガーする場合は、Android SDK を使用します。

前提条件

アプリのビルドファイルで次の値が使用されていることを確認します。

  • 14 以上の minSdkVersion
  • 28 以上の compileSdkVersion

アプリを構成する

  1. 提供された ZIP ファイルからライブラリを抽出し、リポジトリに配置します。
  2. Google Growth SDK の依存関係をモジュールのアプリレベルの Gradle ファイル(通常は app/build.gradle)に追加します。

     dependencies {
         implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
     }
    
  3. 次のライブラリを依存関係として組み込みます。

    com.google.android.gms:play-services-base:18.0.1
    com.google.android.gms:play-services-basement:18.0.0
    com.google.android.gms:play-services-tasks:18.0.1
    

API を使用する

  1. クライアントを初期化するために、UpgradeParty クラスを使用して activity パラメータを設定します。

     import com.google.android.gms.growth.UpgradeParty;
     UpgradeParty.getClient(activity);
    

結果の UpgradePartyClient は API の機能を公開しています。

isEligibleForUpgradeParty

Task<Boolean> isEligibleForUpgradeParty();

ユーザーが Upgrade Party の条件を満たしているかどうかを非同期で検証する Task オブジェクトを返します。結果のブール値は、ユーザーが条件を満たしているかどうかを示します。

invokeUpgradeParty

Task<Void> invokeUpgradeParty();

Upgrade Party の Activity を呼び出します。結果の Task オブジェクトは、このアクティビティの開始時にエラーが発生したかどうかを示します。

エラー

どちらの API メソッドも com.google.android.gms.common.api.ApiException 型の例外で失敗する可能性があります。その場合、呼び出し元は後で再試行します。

想定される一般的なステータス コードは次のとおりです。

  • INTERNAL_ERROR: 基礎となるロジックのフローでのエラーを表します。
  • TIMEOUT: リクエスト時間内に処理できなかった場合に示されます。
  • API_NOT_CONNECTED: API が利用できないことを意味します(たとえば、UpgradeParty モジュールの準備がまだできていないなど)。
  • DEVELOPER_ERROR: 呼び出し元パッケージが UpgradeParty クラスへのアクセスを許可されていない場合に示されます。

SDK の例

SDK を呼び出すアプリの例を次に示します。

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import com.google.android.gms.growth.UpgradeParty;
import com.google.android.gms.growth.UpgradePartyClient;

public class SampleActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   final UpgradePartyClient client = UpgradeParty.getClient(this);

   // Hide the invocation button initially
   View startUpgradePartyButton = findViewById(R.id.__some_button__);
   startUpgradePartyButton.setVisibility(View.GONE);

   // Register an onClick handler to invoke the Upgrade Party Activity
   startUpgradePartyButton
       .setOnClickListener(
           view -> {
             client
                 .invokeUpgradeParty()
                 .addOnCompleteListener(
                     task -> {
                       if (!task.isSuccessful()) {
                         // Do something with error, see task.getException()
                       }
                     });
           });
   }

   // Check if eligible for an Upgrade Party
   client
       .isEligibleForUpgradeParty()
       .addOnCompleteListener(
           task -> {
             if (!task.isSuccessful()) {
               // Do something with error, see task.getException()
             } else {
                  // Show/Hide invocation button, based on the result
                  int visibility =
                        task.getResult() ? View.VISIBLE : View.GONE;
                  startUpgradePartyButton..setVisibility(visibility);
             }
           });
   }

Upgrade Party のフローをテストする

ユーザーが Android OS をアップグレードしたときに表示される Upgrade Party フローをテストする手順は次のとおりです。

  1. テスト用の Android デバイスで、[設定] > [Google] > [Upgrade Party debug] に移動します。
  2. [Report Upgrade]、[Open Upgrade Party] の順に選択します。これにより、デバイスの OS バージョンに基づいて、適切なフローが開始されます。たとえば、Android 12 Report Upgrade Party は、Android 12 OS を搭載しているデバイスで再生されます。