スタートガイド
Red Hat Mobile Application Platform ホスト型 3 向け
概要
前書き
概要
Red Hat Mobile Application Platform ホスト型 (RHMAP) をすばやく開始するには、プロジェクトのライフサイクルを理解することが重要です。これにはプロジェクトの作成、テンプレートからのクライアントとクラウドアプリの作成、MBaaS へのクラウドアプリのデプロイ、クラウドアプリの構築、クラウドアプリのモバイルデバイスへのデプロイが関わってきます。
本ガイドの全操作では、RHMAP のウェブインターフェースである Studio を使用しています。ただし、FHC コマンドラインツール を使っても、RHMAP のほとんどの機能にアクセスすることができます。
第1章 プロジェクトの作成
プロジェクトを使うと、単一のモバイルアプリケーションに関連したコードベースをすべて 1 つの場所にまとめることができます。プロジェクトには、クライアントアプリ、クラウドアプリ、MBaaS サービス、およびこれらに関連するすべてのデータと設定が格納されます。
既存のテンプレートから新規プロジェクトを作成します。RHMAP には最初から多くのプロジェクトテンプレートが含まれており、基本的な Hello World の例はサポート対象の全プラットフォームで使用できます。
- Studio にログインし、プロジェクト エリアに移動します。
新規プロジェクト をクリックします。
- Hello World Project テンプレートの右側にある 選択 をクリックしてこれを選択します。
プロジェクトの名前を「アプリ名」フィールドに入力します。
Cordova App のオプションまでスクロールダウンします。プロジェクト名を「アプリ名」フィールドに記入し、チェックボックスにチェックを入れます。
- 作成 をクリックします。
- プロジェクト作成に成功すると、進捗バーが緑色になります。終了 をクリックします。
1.1. プロジェクトについて調べる
プロジェクトを作成したら、アプリ、クラウドアプリ & サービス セクションが表示されます。ここではプロジェクトに関連するクライアントアプリ、クラウドアプリ、および MBaaS サービスが表示されます。
- クライアントアプリ: エンドユーザーが使用するモバイルデバイスにデプロイされたアプリケーション。
- クラウドアプリ: クライアントアプリからのリクエストを処理し、他の内部または外部システムと通信する、MBaaS にデプロイされたアプリケーション。
- MBaaS サービス: クラウドアプリが使用し、複数のプロジェクトで共有される再利用可能なサービス。
新規に作成された My Hello World Project には、Cordova アプリ (Cordova テクノロジー) 1 つと HTTP エンドポイントがあるクラウドアプリ (Node.js テクノロジー) 1 つが含まれます。対応する各ボックスの + 記号をクリックすると、クライアントアプリ、クラウドアプリ、MBaaS サービスを追加することができます。
第2章 クラウドアプリのデプロイ
お使いのクラスターの設定によっては、プロジェクト作成後にクラウドアプリを手動でデプロイする必要がある場合があります。
- 画面の アプリ、クラウドアプリ & サービス セクションで、クラウドアプリ をクリックします。これで アプリの詳細 画面が表示されます。
アプリの詳細 画面で クラウドアプリのステータス フィールドの値を確認します。
ステータスが Stopped の場合は、クラウドアプリをデプロイする必要があります。Running の場合は、3. クライアントアプリのプレビュー セクションに進みます。
左側のサイドバーにある デプロイ をクリックします。
- クラウドアプリをデプロイ をクリックします。デプロイが完了したら進捗バーが緑色になり、クラウドアプリがデプロイされます。
- 左側のサイドバーにある 詳細 をクリックします。
- クラウドアプリのステータス が Running になっていることを確認します。
第3章 クライアントアプリのプレビュー
プロジェクトが作成され、クラウドアプリがデプロイされたら、クライアントアプリをテストできます。
アプリ、クラウドアプリ & サービス 画面の アプリ ボックスで Cordova App をクリックします。
これで アプリ詳細 ページが開きます。右側で実行中のアプリのプレビューを操作することができ、左側にはアプリの名前、ID、git リポジトリー URL などのメタデータが表示されます。
プレビューするクラウドアプリが「アプリのプレビュー」セクションで選択されてることを確認します。
- プレビューのボックスに名前を記入します。
Say Hello From The Cloud をクリックします。
クライアントアプリがプロジェクトのクラウドアプリを呼び出し、ボタンの下に応答が表示されます。
第4章 モバイルデバイスでのクライアントアプリの実行
- 左側のサイドバーにある ビルド をクリックします。
- クライアントバイナリー セクションで、ターゲットプラットフォームに Android を選択します。
ビルド をクリックします。
しばらくするとバイナリーが構築され、URL と QR コードが表示されます。
モバイルデバイスにクライアントアプリのバイナリーをインストールするには、以下のいずれかの方法に従います。
- クライアントアプリのバイナリーをコンピューターにダウンロードし、手動でデバイスに転送する。
- モバイルデバイス上で、ブラウザーを使ってダウンロード URL を開く。
モバイルデバイスの QR コードリーダーで QR コードをスキャンする。QR コードにはダウンロード URL が含まれています。
注記アンドロイドモバイルデバイスでは、不明なソースからアプリをインストールするオプションを有効にしておく必要があります。アンドロイド用ドキュメントの Alternative Distribution Options ガイドにある User Opt-In for Apps from Unknown Sources セクションを参照してください。この例でビルドされたクライアントアプリのバイナリーは開発者の署名がないので、アンドロイドでは 不明なソース からのものとして認識されます。
第5章 クラウドアプリのカスタマイズ
クラウドアプリの機能について理解を深めるために、コードにマイナーな修正を加えてみましょう。サーバーからの応答に、現在の UNIX タイムスタンプの値を持つ timestamp フィールドを追加します。以下のセクションでは、クライアントアプリを修正してタイムスタンプを表示するようにします。
- 上部のナビゲーションバーで プロジェクト エリアに移動します。
- My Hello World Project プロジェクトを開きます。
- クラウドアプリ を開きます。
左側のサイドバーにある エディター をクリックします。
このエリアでは、クラウドアプリの Git リポジトリーにあるファイルのソースコードを編集できます。このプロジェクトのクラウドアプリは、Express と呼ばれる Node.js web アプリケーションです。
application.jsファイルを開きます。application.jsは、クラウドアプリへのリクエストすべてを処理します。クライアントアプリがリクエストを/helloエンドポイントに送信し、application.jsファイルがこれらのリクエストをhello.jsと呼ばれる別のファイルに転送します。app.use('/hello', require('./lib/hello.js')());Express での転送についての詳細は、Express Router documentation を参照してください。
lib/hello.js ファイルを修正して、応答でタイムスタンプを返すようにします。
-
lib/hello.jsを開きます。 timestamp属性を POST 応答オブジェクトに追加し、値は現在の UNIX タイムスタンプにします。POST ハンドラーで以下の行を探します。
res.json({msg: 'Hello ' + world});この行を以下のように変更します。
res.json({msg: 'Hello ' + world, timestamp: new Date().getTime() });POST ハンドラーは以下のようになります。
hello.post('/', function(req, res) { console.log(new Date(), 'In hello route POST / req.body=', req.body); var world = req.body && req.body.hello ? req.body.hello : 'World'; // see http://expressjs.com/4x/api.html#res.json res.json({msg: 'Hello ' + world, timestamp: new Date().getTime() }); });エディターで ファイル > 保存 をクリックして変更を保存します。
変更はクラウドアプリの Git リポジトリーに保存されます。実行中のインスタンスに変更を適用するには、クラウドアプリを再度デプロイする必要があります。
- 左側のサイドバーにある デプロイ をクリックします。
- クラウドアプリをデプロイ をクリックします。
第6章 クライアントアプリの変更
クライアントアプリを変更して、受け取ったサーバー応答から timestamp 属性を表示するようにします。
まず、応答のプレースホルダーを作成します。
- アプリ、クラウドアプリ & サービス ページに移動します。
- Cordova App クライアントアプリを開きます。
- エディター を開きます。
-
www/index.htmlファイルを開きます。 受信した
timestampを表示する<div>を新たに追加します。この要素は、受信した値のプレースホルダーとして機能します。
以下の行を見つけます。
<div id="cloudResponse" class="cloudResponse"></div>
これを以下のコードで置き換えます。
<div id="cloudResponse" class="cloudResponse"></div> <div id="timestamp" class="cloudResponse"></div>
- ファイル > 保存 を使用するか、Ctrl + S (Windows の場合) もしくは cmd + S (Mac の場合) のショートカットを使用して変更を保存します。
Say Hello From The Cloud ボタンのハンドラーを編集して、受信した timestamp の値をプレースホルダーに表示するようにします。
エディターで
www/js/hello.jsファイルを開きます。このファイルには、Say Hello From The Cloud ボタンのクリックハンドラーが含まれています。これは
$fh.cloudAPI を使用してクラウドアプリの/helloエンドポイントを呼び出し、プレースホルダー<div id="timestamp">要素を作成します。プレースホルダーに受信した
timestampの値を設定します。以下のコードを見つけます。
document.getElementById('cloudResponse').innerHTML = "<p>" + res.msg + "</p>";これを以下のコードで置き換えます。
document.getElementById('cloudResponse').innerHTML = "<p>" + res.msg + "</p>"; document.getElementById('timestamp').innerHTML = "<p>" + res.timestamp + "</p>";変更を保存します。
プレビューが自動的に更新されます。
Say Hello From The Cloud をプレビューでクリックします。
ボタンの下のエリアには、タイムスタンプを表す数字が表示されるようになります。これが表示されていない場合には、ページを更新します。
第7章 まとめ
以下の基本的なコンセプトが理解できていることを確認してください。
- プロジェクト、クライアントアプリ、クラウドアプリ、およびそれらの関係。
- アンドロイド用にアプリのバイナリーを構築し、モバイルデバイスでこれを試す。
- クライアントアプリとクラウドアプリでの変更。
RHMAP documentation には詳細なガイドと説明が用意されています。
詳細 (ローカル開発の概要を含む) については、Red Hat Mobile Application Platform Overview Demo を視聴してください。
