-
ミニアプリとは何ですか?
ミニアプリとは、ハイブリッド型WebViewとして表示されるWebアプリです。モバイルアプリを新規で構築する必要が無く、Webサイトとほぼ同じ機能を提供できます。ハイブリッド型WebViewを(Cordova経由などで)ミニアプリ内で行うことも可能です。
-
ミニアプリを開発する理由は?
クールだから!プラットフォームをゼロから開発する必要が無く、ミニアプリ内で製品やサービスをRakuten Linkユーザー向けに発信することができます。
-
Rakuten Linkにミニアプリを追加する理由は?
ミニアプリを追加することで、コンテンツの追加やデプロイサイクルの管理が容易になります。ユーザーが新しいバージョンをダウンロードするまで待つ必要が無く、短期間でユーザーに新しいサービスや体験を提供することができます。
-
ミニアプリとウェブサイトの違いは何ですか?
ミニアプリは一般的なWebサイト/ Webアプリとほぼ同等の機能を持つことができます。実行速度はミニアプリの方が優勢です。
ミニアプリは複数ブラウザや複数OSへの対応をホストアプリ側で行うため、Webページを作成するよりも簡単に構築でき、少ない開発コストでUIの統一感を保つことが可能です。
ミニアプリはホストアプリと連動することで、アクセス共有、デバイス情報、カメラ、ストレージ情報などの各種機能を利用することができます。
-
どのような種類のミニアプリを構築できますか?
EC、カタログ、ギャラリー、複雑なフル機能アプリなど、様々な種類のアプリケーションが開発可能です。フルスクリーンや、用途に応じてマイクロコンポーネントとして使用することも可能です。
-
ミニアプリでは短期間のスピード開発が可能ですか?
ミニアプリは短期間での開発が可能です。
主にhtml/js/cssでの機能開発になるため、ネイティブコードよりも短時間で開発が可能です。デプロイまでの期間が短いため、迅速に機能を公開し、ユーザーの利用状況をもとに機能改善に努めることができます。
-
ミニアプリとWebサイト、ハイブリッド/ネイティブWebViewの比較
それぞれの特徴はこちらです。
Webサイト(WebView経由)
ネイティブアプリ/WebView(ハイブリッド)
ミニアプリ
ダウンロード時間
ランタイム
インストール
ランタイム
パフォーマンス/速度
遅い *
早い
1回目 – やや遅め
2回目 - 速い
データダウンロード
ストレージポリシー
重い
(ランタイムにダウンロード)
柔軟性あり
(データを使用に応じて読み込み)
軽い
(インストール時にダウンロード)
柔軟性なし(すべてのパートナーサービスをインストールする必要あり)
やや重い
(初回実行時にダウンロード)
柔軟性あり
(データを使用に応じて読み込み)
モバイル機能との連携 難あり
充実
もっとも充実 開発責任 パートナー
モバイル
パートナー
開発コスト アプリ側:低
パートナー側:中
(要モバイル最適化 )
アプリ側:高
パートナー側:低
(要モバイル対応)
アプリ側:低(要インターフェース定義)
パートナー側:中
アップデートの難易度
低め
高め
低め
運用コスト
低め
高め
低め
* Webサイトは使用中のデータ通信を最も多く必要とします。
-
エディタではどんなことができますか?
ミニアプリをゼロから作成することができます。ウェブアプリ用の各種基本UIエレメントがサポートされており、ミニアプリ各種機能向けにカスタマイズできます。エディタからミニアプリをエクスポートして、ミニアプリプラットフォームからデプロイすることができます。
-
エディタから最新バージョンを公開するにはどうすればいいですか?
現在はエディタからファイル(zip形式)をエクスポートして頂く必要があります。これをローカルで解凍し、ミニアプリプラットフォームで新しいバージョンを作成。そこへ解凍したフォルダを選択しアップロードしてください。公開前のバージョンのアップロードが完了後、「公開」を選択できます。
-
複数のテンプレートから選択することはできますか?
各種テンプレートからお選び頂けます。エディタの各種デフォルトテンプレートのほか、Linkを含むモバイルアプリパートナーが提供するテンプレートもございます。
-
エディタで独自のテンプレートを作成することはできますか?
可能です。エディタはテンプレートのカスタマイズに対応しています。テンプレートは保存して再度ご利用頂く事もできます。
-
Rakuten App Studio(RAS)とは何ですか?
RASはモバイルアプリケーションの機能および関連SDKのプラットフォームです。ミニアプリプラットフォームも含まれます。
-
楽天SSOユーザーです。Rakuten App Studioにアクセスするにはどうしたら良いですか?
https://mobile-sdk-portal.public.rakuten-it.comを開いて[SSO Login] を選択してください。
-
楽天SSOユーザーではありませんが、Rakuten App Studioにアクセスするにはどうすればいいですか?
現在、非Rakuten SSOユーザー向けのプロセスを準備中です。準備が整い次第お知らせします。
-
自分のミニアプリのデバイスストレージにアクセスできますか?
アクセス可能です。ミニアプリSDKから、保護されたデバイスストレージおよびセッションへのアクセスが可能です。ローカルのブラウザのストレージとセッションはアプリケーションから分断されています。デバイス上のデータを保護し安全に保つため、ChromeやSafariといったブラウザ経由のトークン共有は提供しておりません。
-
自分のミニアプリに自分のサーバーやバックエンドAPIを使用することはできますか?
ミニアプリでは、API固有のリクエストを処理するために様々なリモートサービスを利用可能です。ご自身のサーバーやAPIを利用することも可能です。ランタイムに必要な読込データが少ないほど、アプリの実行速度は速くなります。この性質上、サーバー側のレンダリング技法は速度向上のために避けてください。
-
ウェブページがミニアプリのWebViewで開かれたことを検出
ミニアプリ経由でWebView、ブラウザのウインドウ、Chromeのタブにサイトが表示されたことを検知する方法をご案内します。
ミニアプリ内に配置した各種WebページAnalyticsによるユーザー解析や、ミニアプリ経由のユーザーエクスペリエンスの向上などを図る際に用います。
具体的な解決方法はリンクと一緒にパラメータを渡すことです。
下記例では、GETパラメータ"referrer"をminiappに設定しています。
これはバージョン名など任意の値を指定します。
https://www.example.com?referrer=miniapp
サイト側にリファラーを処理するための下記コードを、サーバー上かJavaScript側に追加します。
function getParam(name) { const params = window.location.search; if (params) { const param = params.substr(1).split("&") .map(param => param.split("=")) .find(pair => pair[0] === name) return param && param[1]; } else { return null; } } if (getParam("referrer") === "miniapp") { // display mini app content... }
-
ミニアプリは、AndroidとiOSで別々のバージョンを用意する必要がありますか?
いいえ。ミニアプリではいくつかの例外を除き、いずれのOSでも同様に機能するよう処理を行います。
一部のホストアプリでは、デバイスタイプによって異なる機能が実装される場合があります。
-
ミニアプリのサイズ上限について教えてください。
ミニアプリのサイズ上限は30MB(メガバイト)です。物理ドライブ、ローカルマシンのサイズ、リモートストレージなどによって表示されるサイズは若干異なります。上限未満に見えても実際には超過している場合がありますので、29MB未満を目標にされることをお奨めします。
-
ミニアプリバージョンの表示名に使用できる文字について教えてください。
[Display Name] フィールドでは以下の文字を使用できます。
•漢字
•ひらがな
•カタカナ•半角カナ
•アルファベット小文字
•アルファベット大文字
•全角カナ
•数字
•スペース
句読点および特殊文字は使用できません。
-
ミニアプリを公開するとどうなりますか?
ミニアプリがプラットフォームの本番ストレージにデプロイされ、本番モバイルアプリはカタログからミニアプリを読み取り、モバイルアプリに追加することができるようになります。
-
アプリ名と各バージョンの表示名の違いは何ですか?
アプリ名は開発者にのみ表示される参照用の名前です。
ホストアプリとそのユーザーに表示されるのは、ミニアプリのバージョンアップ時に設定する表示名です。
-
ホストアプリからミニアプリへ、ユーザーのログイン状態を維持するにはどうすればいいですか?
以下の方法に対応しています。
ユニークID/永久ID
ホストアプリは、パートナーが信頼してそれぞれのシステムに連携できるIDを提供します。Facebook IDのように、ホスト+ミニアプリ+ユーザーに対し一意のIDです。一意性があり恒久的なものであれば他のスコープでも構いません。
Open ID
ホストアプリからミニアプリにアクセストークンを渡すことが可能です。適切なスコープであれば、このトークンを用いてリクエストを出すことができます。ミニアプリとホストアプリで同じIDシステム、同じパーミッションスコープを用いている場合に使用可能です。
Open ID Connect
現在、IDトークン発行の追加機能実装を行っています。完了後はサーバー側でサービスのリクエスト承認が可能になります。このIDトークンは、二次的な方法で信頼・検証を行うIDとして機能します。
今後は、IDシステムを共有するパートナー間で使用できるエクスチェンジトークンを追加する可能性があります。
汎用cookieベースのログイン(実装予定)
ミニアプリのローカルストレージにcookieを保存することで、Fetch API(cookieを必要とする承認メカニズム)を使用してのリクエスト承認が可能です。
-
ミニアプリ用のJavaScript SDKについての情報はどこを見ればいいですか?
JavaScript SDKについてのGitHubのページをご参照ください(https://github.com/rakutentech/js-miniapp)。