Xamarin のエンドツーエンドのデモンストレーション
improve this page | report issue概説
このデモンストレーションの目的は、エンドツーエンドのフローを体験することです。
- MobileFirst Xamarin クライアント SDK と事前にバンドルされているサンプル・アプリケーションは、MobileFirst Operations Console に登録済みです。
- 新規または提供済みのアダプターは MobileFirst Operations Console にデプロイされています。
- アプリケーション・ロジックは、リソース要求を行うために変更されています。
終了結果:
- MobileFirst Server を正常に ping している。
前提条件:
- Xamarin Studio
- オプション。 スタンドアロン MobileFirst Server (ダウンロード)
1. MobileFirst Server の開始
Mobile Foundation インスタンスが作成済みであることを確認してください。作成済みでない場合は、
MobileFirst Developer Kitを使用しているときは、サーバーのフォルダーにナビゲートして、Mac および Linux では ./run.sh
、Windows では run.cmd
のコマンドを実行してください。
2. アプリケーションの作成
ブラウザー・ウィンドウで、URL http://your-server-host:server-port/mfpconsole
をロードして MobileFirst Operations Console を開きます。 ローカルで実行している場合は、http://localhost:9080/mfpconsole を使用します。 ユーザー名/パスワードは admin/admin です。
- アプリケーションの隣の「新規」ボタンをクリックします。
- Android プラットフォームを選択します。
- (次のステップでダウンロードするアプリケーション・スキャフォールドに応じて) com.ibm.mfpstarterxamarin を アプリケーション ID として入力します。
- 1.0 を version の値として入力します。
- 「アプリケーションの登録」をクリックします。
3. アプリケーション・ロジックの編集
- Xamarin プロジェクトを作成します。
- Xamarin SDK を SDK の追加チュートリアルで言及されているとおりに追加します。
-
下記に示すように、
IWorklightClient
タイプのプロパティーを任意のクラス・ファイル内に追加します。/// <summary> /// Gets or sets the worklight sample client. /// </summary> /// <value>The worklight client.</value> public static IWorklightClient WorklightClient {get; set;}
-
iOS 向けに開発している場合は、AppDelegate.cs ファイルの FinishedLaunching メソッド内に以下のコードを貼り付けます。
<ClassName>.WorklightClient = WorklightClient.CreateInstance();
<ClassName>
をクラスの名前で置き換えます。 -
Android 向けに開発している場合は、MainActivity.cs ファイルの OnCreate メソッド内に以下のコード行を含めます。
<ClassName>.WorklightClient = WorklightClient.CreateInstance(this);
<ClassName>
をクラスの名前で置き換えます。 -
下記に示すように、アクセス・トークンを取得するようにメソッドを定義し、MFP サーバーへのリソース要求を実行します。
public async void ObtainToken() { try { IWorklightClient _newClient = App.WorklightClient; WorklightAccessToken accessToken = await _newClient.AuthorizationManager.ObtainAccessToken(""); if (accessToken.Value != null && accessToken.Value != "") { System.Diagnostics.Debug.WriteLine("Received the following access token value: " + accessToken.Value); StringBuilder uriBuilder = new StringBuilder().Append("/adapters/javaAdapter/resource/greet"); WorklightResourceRequest request = _newClient.ResourceRequest(new Uri(uriBuilder.ToString(), UriKind.Relative), "GET"); request.SetQueryParameter("name", "world"); WorklightResponse response = await request.Send(); System.Diagnostics.Debug.WriteLine("Success: " + response.ResponseText); } } catch (Exception e) { System.Diagnostics.Debug.WriteLine("An error occurred: '{0}'", e); } } } }
- クラス・コンストラクター内で、またはボタンのクリックで ObtainToken メソッドを呼び出します。
4. アダプターのデプロイ
この作成済みの .adapter 成果物をダウンロードし、MobileFirst Operations Console から「アクション」→「アダプターのデプロイ」アクションを使用して、この成果物をデプロイします。
あるいは、「アダプター」の隣の「新規」ボタンをクリックします。
-
「アクション」→「サンプルのダウンロード」オプションを選択します。 「Hello World」Java アダプターのサンプルをダウンロードします。
Maven および MobileFirst CLI がインストールされていない場合は、スクリーン内の「開発環境をセットアップします」の説明に従います。
-
コマンド・ライン・ウィンドウからアダプターの Maven プロジェクト・ルート・フォルダーにナビゲートし、以下のコマンドを実行します。
mfpdev adapter build
-
ビルドが終了したら、「アクション」→「アダプターのデプロイ」アクションを使用して MobileFirst Operations Console からアダプターをデプロイします。 アダプターは、[adapter]/target フォルダー内にあります。
5. アプリケーションのテスト
- Xamarin Studio で、
mfpclient.properties
ファイルを選択し、protocol、host、port の各プロパティーをご使用の MobileFirst Server に適した値で編集します。- ローカル MobileFirst Server を使用している場合、通常、値は http、localhost、および 9080 です。
- リモート MobileFirst Server (IBM Cloud 上) を使用している場合、通常、値は https、your-server-address、および 443 です。
- IBM Cloud Private 上で Kubernetes クラスターを使用していて、デプロイメントのタイプが NodePort の場合、通常、ポートの値は、Kubernetes クラスターのサービスによって公開される NodePort です。
- 「再生」ボタンを押します。
結果
- 「MobileFirst Server の ping」ボタンをクリックすると、「MobileFirst Server に接続」が表示されます。
- アプリケーションが MobileFirst Server に接続できた場合は、デプロイした Java アダプターを使用してリソース要求呼び出しが行われます。
すると、アダプター応答が Xamarin Studio コンソールに出力されます。
次の手順
アプリケーションでのアダプターの使用、プッシュ通知などの追加のサービスを統合する方法、MobileFirst セキュリティー・フレームワークの使用などについて学習します。
- アダプターの開発チュートリアルを検討する
- 認証およびセキュリティー・チュートリアルを検討する
- すべてのチュートリアルを検討する
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.