構成要素と互換性
ミニアプリは、実行にスーパーアプリを必要とする小規模なアプリ(通常は 2 ~ 4 MB)です。スーパーアプリに関係なく、これらのアプリに共通するのは、ウェブ技術である HTML、CSS、JavaScript で構築されていることです(「方言」)。ミニアプリのランタイムは、基盤となるオペレーティング システムではなく、スーパーアプリの WebView であるため、ミニアプリはクロス プラットフォームです。同じミニアプリは、スーパーアプリが Android、iOS、または別の OS で実行されているかどうかにかかわらず、同じスーパーアプリで実行できます。ただし、すべてのミニアプリをすべてのスーパーアプリで実行できるわけではありません。詳しくは後述します。
ファインド
ミニアプリは、ブランドの 2D バーコードを介してアドホックで検出されることが多く、レストランの実店舗のメニューから支払いミニアプリに移動したり、実店舗の電動スクーターからレンタル ミニアプリに移動したりするなど、オフラインからオンラインへの重要な課題を解決します。下の画像は、WeChat のデモ用ミニアプリのブランド 2D バーコードの例を示しています。WeChat スーパーアプリでコードをスキャンすると、ミニアプリが直接起動します。通常、他のスーパーアプリではバーコードを認識できません。

ミニアプリは、スーパーアプリの通常のアプリ内検索で見つけることも、チャット メッセージで共有することも、ニュース フィードのニュース アイテムの一部にすることもできます。一部のスーパーアプリには、プロフィールにミニアプリを含めることができる確認済みアカウントという概念があります。ミニアプリは、ユーザーが目の前にいる店舗のミニアプリなど、物理的に地理的に近い場合や、ユーザーがスーパーアプリに表示された地図でルートを取得する場合など、仮想的に近い場合にハイライト表示できます。よく使用するミニアプリは、多くのスーパーアプリで、下方向のスワイプ操作や、スーパーアプリ メニューの特別なセクションからアクセスできるアプリドロワーで利用できます。
ユーザー エクスペリエンス
すべてのスーパーアプリには、ミニアプリ用のほぼ同じユーザー インターフェースがあります。テーマ設定可能なトップバーにミニアプリの名前が表示され、画面の右上隅に閉じるボタンがあります。その前に、アプリの共有、お気に入りリストやホーム画面への追加、不正なアプリの報告、フィードバックの提供、設定などの一般的な機能にアクセスできるアクション メニューがあります。次のスクリーンショットは、Alipay スーパーアプリのコンテキストで実行され、アクション メニューが開いているショッピング ミニアプリを示しています。

UI パラダイム
通常、ミニアプリのメイン ナビゲーションには下部タブバーがあります。ほとんどのスーパーアプリ プロバイダは、デベロッパーがカルーセル、アコーディオン、進行状況バー、スピナー、スイッチ、地図などの一般的な UI パラダイムをすばやく実装できるようにコンポーネントを提供しています。また、さまざまなミニアプリ間のユーザー エクスペリエンスの一貫性にもつながります。これは、WeChat のミニプログラム設計ガイドラインで推奨されています。これは、Apple の Apple ヒューマン インターフェース ガイドラインや、Google の Android 向け設計の推奨事項で Apple が奨励している内容と類似しています。

サービス提供
ミニアプリは、個別のリソースとして個別に提供されるのではなく、暗号化されたパッケージ化されたアプリとして提供されます。つまり、すべてのリソースが 1 つのファイルに格納されたアーカイブとして提供されます。また、通常のウェブアプリとは異なり、ミニアプリ作成者の特定のオリジンからではなく、スーパーアプリ プロバイダから直接提供されます。ミニアプリ クリエイターのサーバーから API にアクセスすることはできますが、コア リソース(一般にアプリシェルと呼ばれるもの)は、スーパーアプリ プロバイダから提供する必要があります。ミニアプリは、追加データをリクエストするオリジンを宣言する必要があります。
キャッシュ、更新、ディープリンク
ミニアプリはスーパーアプリのキャッシュに保存されるため、ユーザーがキャッシュに保存されたミニアプリを次回起動すると、ほぼ瞬時に読み込まれます。アップデートがある場合は、新しいアプリ パッケージが読み込まれます。バージョン番号は起動 URI の一部にできます(検出を参照)。これにより、ローカルにキャッシュに保存されているバージョンが最新かどうかをスーパーアプリが早期に把握できます。起動 URI には、必要に応じてミニアプリの目的のページも含まれるため、ミニアプリの特定のページへのディープリンクが可能です。サイトマップを使用して、スーパーアプリ プロバイダのミニアプリ クローラーによってインデックスに登録するページを宣言できます。

セキュリティと権限
ミニアプリはスーパーアプリ プロバイダによって審査されるため、ユーザーはウェブアプリよりも安全だと認識します。必要な権限は、マニフェストまたはミニアプリの構成ファイルで事前に宣言する必要があります。一部のプロバイダでは、各権限が必要な理由の説明も必要です。もちろん、ミニアプリは引き続き嘘をつくことができますが、ユーザーに明らかな理由がないのにモーション センサーにアクセスしようとしている理由を正当化するのは難しくなります。通常、ユーザーはすでにスーパーアプリにログインしているため、ユーザーの指紋を取得するインセンティブはウェブと比べて大幅に低くなります(ID、支払い、ソーシャルグラフをご覧ください)。
ミニアプリが特別な権限を必要とするオペレーションを実行するたびに、ユーザーにプロンプトが表示されます。このプロンプトには、プラットフォームによって適用される場合は、デベロッパーが指定した使用理由も含まれます。次のスクリーンショットは、位置情報の共有を許可するようユーザーに求める Douyin デモ ミニアプリを示しています。一部のスーパーアプリには、ミニアプリが権限をすぐに使用せずにリクエストしたり、権限のステータスのみをチェックしたりするために利用できる命令型 API もあります。これには、中央のスーパーアプリの権限設定を開く API が含まれる場合もあります。これは、Chrome のサイト設定に対応しています。また、ミニアプリは、データをリクエストする可能性のあるすべてのサーバーのオリジンを事前に宣言する必要があります。

強力な機能へのアクセス
ホスト スーパーアプリは、スーパーアプリが提供する WebView に挿入される JavaScript ブリッジを介して、強力な API へのアクセスを提供します(構成要素と互換性を参照)。この JavaScript ブリッジは、オペレーティング システムの API へのフックを提供します。たとえば、getConnectedWifi()
などのミニアプリの JavaScript 関数(現在アクティブな Wi-Fi ネットワークの名前を取得するミニアプリの機能)は、Android の getConnectionInfo()
API または iOS の CNCopyCurrentNetworkInfo()
API を介して内部で実行されます。一般的なスーパーアプリで公開されている強力なデバイス API の例としては、Bluetooth、NFC、iBeacon、GPS、システム クリップボード、向きセンサー、バッテリー情報、カレンダーへのアクセス、電話帳へのアクセス、画面の明るさの調整、ファイル システムへのアクセス、物理的なフィードバック用の振動ハードウェア、カメラとマイクのアクセス、画面録画とスクリーンショットの作成、ネットワーク ステータス、UDP ソケット、バーコード スキャン、デバイスのメモリ情報などがあります。

クラウド サービスへのアクセス
多くのスーパーアプリは、スーパーアプリ プロバイダのクラウド サービスへの「サーバーレス」アクセスも提供しています。このサービスには、クラウド コンピューティングやクラウド ストレージのほか、テキスト翻訳、画像内のオブジェクト検出やコンテンツ分類、音声認識、その他の ML タスクなどの上位タスクが頻繁に含まれます。ミニアプリは広告で収益化できます。広告は通常、スーパーアプリ プロバイダが提供します。通常、スーパーアプリ プラットフォームはクラウド分析データも提供するため、ミニアプリ デベロッパーはユーザーがアプリをどのように操作しているかをより詳細に把握できます。
アイデンティティ、支払い、ソーシャル グラフ
ミニアプリの非常に重要な機能は、スーパーアプリから共有される ID とソーシャルグラフの情報です。Douyin や WeChat などのスーパーアプリは、広い意味でのソーシャル ネットワーキング サイトとして始まりました。ユーザーは、(政府が確認した)ID、友人やフォロワーのネットワーク、多くの場合、支払いデータも保存しています。たとえば、ショッピング ミニアプリは、スーパーアプリの支払い API を介して支払いを直接処理できます(場合によっては、処理することが義務付けられることもあります)。また、ユーザーの同意を得て、配送先住所、電話番号、氏名などのユーザーデータを取得できます。ユーザーにフォームの記入を強要する必要はありません。以下は、WeChat で実行されている Walmart ミニアプリです。初めて開いたときに、おなじみの顔で挨拶しています。
![[マイページ] タブに投稿者の顔と名前が表示されている Walmart ミニアプリ。](https://web.developers.google.cn/static/articles/mini-apps/mini-app-about/image/the-walmart-mini-app-show-87a18e926c07a.png?hl=ja)
ミニアプリは、ゲームのハイスコアなどの実績を共有したり、ステータス アップデートを通じて連絡先に挑戦したりすることで、人気を博すことができます。ミニアプリはタップ 1 回で起動できるため、ユーザーはスムーズに競技に参加でき、ミニアプリのリーチを拡大できます。
謝辞
この記事は、Joe Medley、Kayce Basques、Milica Mihajlija、Alan Kent、Keith Gu が確認しました。