プライマリ・コンテンツに移動
Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発
2.4.2.0.0
E91953-01
目次へ移動
目次

前
次

1 Oracle Mobile Application Frameworkの概要

この章では、Oracle Mobile Application Framework (MAF)の概要を紹介し、iOSとAndroidの両方の電話およびタブレット上でネイティブに実行するモバイル・アプリケーションを作成可能なソリューションについて説明します。

この章の内容は次のとおりです。

1.1 モバイル・アプリケーション・フレームワークの概要

MAFは、ユーザー・インタフェースのレンダリングにHTML5とCSSを使用するハイブリッド・モバイル・アーキテクチャです。MAFは、アプリケーションのビジネス・ロジックにJavaを使用して、デバイスの機能(GPS、カメラ、メールなど)にアクセスするためにApache Cordovaを使用します。

MAFは、こうしたクロス・プラットフォーム・テクノロジを使用しているため、Android、iOSおよびUniversal Windows Platform (UWP)の各デバイスで動作するアプリケーションを開発できます。プラットフォーム固有のツールを使用する必要はありません。MAFアプリケーションをデバイスにデプロイすると、そのアプリケーションはAndroid SDKなどのプラットフォーム固有のツールを使用して作成されたアプリケーションと同じように動作します。さらに、MAFを使用すると、スマートフォンまたはタブレット用に同じアプリケーションを構築できるため、同じアプリケーションのビジネス・ロジックを再利用して、様々なタイプのデバイス、画面サイズおよび機能をターゲットにできます。

MAFアプリケーションは、ユーザーのデバイスのその他のアプリケーションと同様にデバイスにインストールします。

図1-1 デバイスにインストールされたMAFアプリケーション

Androidデバイスにインストールされたデフォルトの起動アイコンを使用するMAFアプリケーションを表示します。

MAFアプリケーションは、1つまたは複数のアプリケーション機能で構成されます。アプリケーション機能は再利用可能な、アプリケーションの機能性を持つ自己完結型モジュールです。各アプリケーション機能によって一連の特定のタスクが実行され、これらの機能をグループ化して、相互の機能が補完されるようにできます。たとえば、顧客のコンタクト先を提供するアプリケーション機能を製品在庫のアプリケーション機能とペアにすることができます。各アプリケーション機能に専用のクラス・ローダーとWebビュー(本質的にはブラウザとして動作するネイティブUIコンポーネント)があるため、それぞれのアプリケーション機能は相互に独立しています。それらは、アプリケーションのUIを分離する手段を提供して、MAFアプリケーションのエンド・ユーザーが同時に使用できるようにします。つまり、顧客連絡先のアプリケーション機能と製品インベントリのアプリケーション機能の例で説明すると、エンド・ユーザーはMAFアプリケーションで顧客連絡先を編集して、インベントリ内の製品の確認に移動して、インベントリを確認する場所にとどまりながら顧客連絡先の編集に戻ることができるということです。

アプリケーション機能は、Webブラウザのタブとして考えることもできます。複数のWebページの表示に複数の同時UIが必要なときには、Webブラウザで複数のタブを開きます。複数の同時UIが不要のときには、Webページ間の移動に1つのタブを使用します。MAF UIフレームワークのローディングとMAFアプリケーションに関連付けられたすべてのCordovaプラグインのローディングにかかる負荷をアプリケーション機能ごとに負担するならば、MAFアプリケーションでのアプリケーション機能の使用を控える必要があります。1つ以上の同時UIの要件がない場合は、MAFアプリケーションで実現するタスクを実行するためにタスク・フローを呼び出す単一のアプリケーション機能を使用します。

それぞれのアプリケーション機能は相互に独立しているため、複数の異なる開発チームが作成したアプリケーション機能から、単一のMAFアプリケーションをアセンブルできます。アプリケーション機能を他のMAFアプリケーション機能で再利用することもできます。MAFアプリケーション自体を別のアプリケーションのベースとして再利用できるため、独立系ソフトウェア・ベンダーは、特定の顧客が構成できるアプリケーションを作成できます。

レンダリングするアプリケーション機能を構成するコンテンツの種類に基づいて、様々な種類のアプリケーション機能を作成できます。選択可能なオプションは、AMXページ、ローカルHTMLページまたはWebアプリケーションからのコンテンツ(リモートURLオプション)です。デフォルトのコンテンツ・タイプはAMXページです。このコンテンツ・タイプでは、モバイル・アプリケーションの開発を容易にするためにMAFが提供する、その他の多数の機能(広範なUIおよび視覚化コンポーネントのスイート、タスク・フロー、デバイス機能にアクセスするデータ・コントロールなど)を利用できるようになります。これらのコンテンツ・タイプの詳細とモバイル・アプリケーションでコンテンツ・タイプを構成する方法は、「MAFアプリケーション機能のコンテンツ・タイプの定義」を参照してください。

1.2 MAFランタイム・アーキテクチャについて

MAFは、デバイスにデプロイされる、モデル・レイヤーとコントローラ・ロジックからプレゼンテーションを区別するmodel-view-controller (MVC)開発アプローチに従うシン・ネイティブ・コンテナです。

ネイティブ・コンテナによって、MAFアプリケーションが、MAFアプリケーションのデプロイ先であるプラットフォーム(iOS、AndroidまたはUWP)でネイティブ・アプリケーションとして機能できます。図1-2に、MAFランタイム・アーキテクチャを示します。

図1-2 MAFランタイム・アーキテクチャ

図1-2の説明が続きます
「図1-2 MAFランタイム・アーキテクチャ」の説明
  • Webビュー: デバイスのモバイルWebエンジンを使用してWebベースのコンテンツを表示して処理します。MAFアプリケーションでは、Webビューはアプリケーション・マークアップをHTML 5としてレンダリングすることによってユーザー・インタフェースを提供します。次のコンテンツ・タイプのいずれかを実装して、MAFアプリケーション機能用のユーザー・インタフェースを作成できます。様々なコンテンツ・タイプから実装されたアプリケーション機能は、同じMAFアプリケーション内に共存でき、相互作用することもできます。

    • MAF AMXビュー: デバイスのプラットフォーム固有の言語で作成されたアプリケーションのように、コンテンツがMAF Application Mobile XML (AMX)ビューとして実装されたアプリケーションはデバイスに常駐し、最も信頼できるデバイス・ネイティブなユーザー操作性を提供します。MAFでは、モバイル・デバイスのフォーム・ファクタに合せたコンポーネントからユーザー・インタフェースを宣言的に作成できるコード・エディタのセットが提供されます。これらのコンポーネントを使用して、リスト・ビューなどのページ・レイアウトおよび入力テキストなどの入力コンポーネントを作成できます。MAF AMXビューを開発する際には、データ・コントロールを使用できます。これらのコンポーネントを使用すると、データ・バインドされたユーザー・インタフェース・コンポーネントを宣言的に作成し、Webサービスおよびモバイル・デバイス(カメラ、GPSまたは電子メールなど)のサービスにアクセスできます。実行時に、WebビューのJavaScriptエンジンが、MAF AMXビュー定義をHTML5およびJavaScriptにレンダリングします。詳細は、次の項を参照してください。

      タスク・フロー: コントローラは、MAFアプリケーションのページ間のフローを制御し、アプリケーションのフローをより小さい再利用可能なタスク・フローに分割でき、メソッド・コールや決定点などの非ビジュアル・コンポーネントを含めることができます。「タスク・フローの作成」を参照してください。

    • サーバーHTML: このコンテンツ・タイプでは、ユーザー・インタフェースは、アプリケーション機能のWebビュー内で開くことができる、サーバーが生成したWebページから提供されます。MAFのコンテキストにおいて、このコンテンツ・タイプはリモートURLと呼ばれます。これらのブラウザベースのページのリソースは、デバイス上には存在しません。そのかわりに、ユーザー・インタフェース、ページ・フロー・ロジック、ビジネス・ロジックがリモート・サーバーから提供されます。リモートでホストされたこれらのWebページのいずれかがWebビュー内で開くことを許可されている場合、Cordova JavaScript APIを使用して、指定されたデバイス・ネイティブな機能またはサービス(カメラやGPS機能など)にアクセスできます。リモートURLコンテンツを使用した機能を実装する場合、モバイル使用に最適化された既存のブラウザベース・アプリケーションを活用したり、特定のタイプのモバイル・デバイスにあわせて特別に記述されたブラウザベース・アプリケーションを使用できます。デスクトップまたはタブレットのいずれかのブラウザ内で実行可能なアプリケーションの場合は、Oracle ADF Facesのリッチ・クライアント・ベースのコンポーネントによって作成されたアプリケーションを使用して、リモートURLコンテンツを実装できます。「リモートURLを使用したアプリケーション機能コンテンツの実装」を参照してください。

      注意:

      コンテンツはリモートで提供されるため、リモートURLを使用する機能はサーバー接続がアクティブな場合にのみ使用できます。

    • ローカルHTML: MAFアプリケーションの一部としてデバイス上で実行されるHTMLページです。ローカルHTMLファイルは、CordovaおよびJavaScript APIを介して、デバイス・ネイティブな機能サービスにアクセスできます。

  • Cordova: デバイスのネイティブ機能およびサービスをMAFアプリケーションに統合するApache Cordova JavaScript APIです。これらのAPIには、Javaコードからプログラムで(またはMAFアプリケーションをローカルHTMLとして実装している場合にはJavaScriptを使用して)アクセスできますが、これらのAPIはMAFによってデータ・コントロールとしてパッケージ化されるため、MAF AMXページを作成するときにデバイス統合を宣言的に追加できます。

  • Java仮想マシン: JavaではMAFアプリケーション用のJava Runtime Environmentが提供されます。このJava仮想マシン(JVM)は、デバイス・ネイティブなコードに実装され、MAFアプリケーションの各インスタンスに、ネイティブ・アプリケーション・バイナリの一部として埋め込まれます(コンパイルされます)。JVMは、JavaME Connected Device Configuration (CDC)仕様に基づいています。

    • ビジネス・ロジック: MAFアプリケーション内のビジネス・ロジックはJavaで記述できます。マネージドBeanは、サーバーから戻されたデータを処理するための追加のビジネス・ロジックを提供するなど、MAFの機能拡張のために作成できるJavaクラスです。マネージドBeanは、埋込みのJavaサポートによって実行され、JavaME CDC仕様に準拠しています。「MAF AMXでのバインディングの使用とデータ・コントロールの作成」を参照してください。

    • モデル: ビジネス・ロジック・コンポーネントをユーザー・インタフェースに接続するバインディング・レイヤーが含まれます。また、このバインディング・レイヤーでは、RESTベースのWebサービスを起動するための実行ロジックが提供されます。

    • JDBC: JDBC APIでは、CRUD (作成、読取り、更新および削除)操作を介して、暗号化されているSQLiteデータベースのデータにアクセスできます。

  • アプリケーション構成とは、Webサービス用のURLエンドポイントやリモートURL接続など、アプリケーション構成をダウンロードおよびリフレッシュできるサービスのことです。アプリケーション構成サービスは、WebDavベースのサーバー側サービスから構成情報をダウンロードします。「MAFアプリケーションで使用するエンド・ポイントの構成」を参照してください。

  • 資格証明管理、シングル・サインオン(SSO)およびアクセス制御: MAFでは、Oracle Identity ManagementからモバイルセキュリティSDKを使用して、ユーザー認証および資格証明管理を処理します。MAFアプリケーションはオフライン認証を実行するので、接続されているときにユーザーがアプリケーションにログインすると、MAFがユーザー名およびパスワードをデバイスのローカルで管理するため、認証サーバーへの接続が不可になった場合にもユーザーはアプリケーションへのアクセスを継続できます。MAFは、ローカルに保存された情報およびローカルのSQLiteデータベースに保存されたデータを暗号化します。ログイン・サーバーに対する認証後、ユーザーはこの接続によって保護されているすべてのアプリケーション機能にアクセスできるようになります。MAFは、アプリケーション機能(またはアプリケーション機能の特定のファンクション)へのアクセスを制限することによって、アクセス・コントロールの概念もサポートします。

  • プッシュ・ハンドラ: MAFアプリケーションがiOSまたはAndroidの通知サーバーからイベントを受信できるようにします。通知処理は、Javaレイヤーで処理されます。

ネイティブ・コンテナと相互作用するリソースは、次のとおりです。

  • 暗号化されたSQLiteデータベース: 埋込みSQLiteデータベースは軽量のクロスプラットフォームのリレーショナル・データベースで、ローカルに格納されているデータを保護し、JDBCを使用してコールされます。このデータベースは暗号化されるため、デバイスが紛失したり盗難にあった場合にデータを保護します。正しいユーザー名およびパスワードを入力したユーザーのみがローカル・データベースのデータにアクセスできます。「MAF AMXでのローカル・データベースの使用方法」を参照してください。

  • デバイス・サービス: デバイスにネイティブな、Cordova APIによってアプリケーション機能に統合されたサービスと機能です。

デバイス・ネイティブ・コンテナを使用すると、次のサーバー側リソースにアクセスできます。

  • 構成サーバー: アプリケーション構成サービスによって使用される構成ファイルをホストするWebDavベースのサーバー。構成サーバーは、リファレンス実装として提供されます。J2EEサーバー上でホストされている共通のWebDavサービスはどれでも、この目的で使用できます。「MAFアプリケーションで使用するエンド・ポイントの構成」を参照してください。

  • サーバーが生成したHTML: ブラウザ・ベースのアプリケーション機能に使用されるリモート・サーバーにホストされるWebコンテンツ。「リモートURLを使用したアプリケーション機能コンテンツの実装」を参照してください。

  • APNおよびGCMのプッシュ・サービス: Apple Push Notification Service (APNs)およびGoogle Cloud Messaging (GCM)は、通知イベントをMAFアプリケーションに送信する通知プロバイダです。プッシュ通知は、ユニバーサルWindowsプラットフォームにデプロイしたMAFアプリケーションではサポートされません。

  • RESTサービス: リモートでホストされているRESTベースのWebサービスで、クライアント・データ・モデル、Javaレイヤーまたはデータ・コントロールを介してアクセスできます。「MAFアプリケーションでのクライアント・データ・モデルの作成」および「MAF AMXでのWebサービスの使用方法」を参照してください。

1.3 MAFを使用したアプリケーションの開発について

MAFアプリケーションの開発には、要件の収集、設計、開発およびテストなどの活動が含まれます。

これらの活動は、次の作業に分類できます。

  • ユーザー・インタフェースのモックアップの作成

    どのページでどのデータを使用し、どのデータを変更する必要があるかがわかるよう、MAFアプリケーションのビジュアル・デザインから開始します。この作業が完了すると、データを配信するRESTサービスの設計を最適化できるようになります。

  • MAFアプリケーションで使用されるRESTサービスを最適化する、モバイル・バックエンド層の作成

    MAFでは、JSONをペイロード形式として使用するRESTサービスが推奨されています。このタイプのサービスは、MAFアプリケーションとモバイル・バックエンド層との間の統合では最善のアーキテクチャ選択であると考えられています。Oracle Mobile Cloud Service (MCS)は、分析、プッシュ通知、ファイル記憶域およびセキュリティのサービスを含め、モバイル・バックエンドの作成のための包括的なソリューションを提供します。

  • モデルおよび永続性レイヤーの作成。このレイヤーには次のものが含まれます。

    • アプリケーションのデータ・モデルを表す、Javaクラスおよび関連するファイル

    • オフラインでの使用のためにデータを格納する、SQLiteデータベース

    • SQLiteデータベースおよび/またはRESTサービスからのデータを保持する、データ・オブジェクト(エンティティとも呼ばれる)

    • データ・オブジェクトに対してCRUDアクションおよびその他のカスタム・アクションを実行する、サービス・オブジェクト

    • データベース表およびそれらの列がエンティティ・クラスおよびそれらの属性にマップされ、エンティティ・クラスおよび属性がRESTリソース・レスポンス・ペイロード内の属性にマップされる、オブジェクト関連情報マッピング

  • ユーザー・インタフェース・レイヤーの作成

    通常は、モデル・レイヤー内のサービス・クラスごとにBeanデータ・コントロールを作成します。これは、JDeveloperで「データ・コントロール」パネルからドラッグ・アンド・ドロップを使用してMAF AMXページを構築するのに役立ちます。モデル・レイヤーのテスト、および/またはユーザー・プロトタイピングの実行を迅速に行うには、MAFユーザー・インタフェース・ジェネレータを使用します。このウィザードでは、ユーザー・インタフェースおよび関連するタスク・フロー、AMXページおよびデータ・バインディングを作成します。

MAFでは、前述のタスクを簡易化するために「REST WebサービスからのMAFクライアント・データ・モデル」および「MAFユーザー・インタフェース・ジェネレータ」ウィザードが提供されています。MCSバックエンドからのRESTサービスの使用、モデルおよび永続化レイヤーの作成が可能であり、オフライン・トランザクション、およびアプリケーションがオンラインに戻ったときのデータ同期化のサポートを備えたプロトタイプ・ユーザー・インタフェースのあるMAFアプリケーションの生成が可能です。これらのウィザードの使用については、MAFアプリケーションでのクライアント・データ・モデルの作成で説明されています。

ヒント:

Oracle MAFおよびクライアント・データ・モデル(CDM)によるREST/JSONサービスの使用および永続化チュートリアルでは、前述のウィザードを使用した、RESTサービスを使用するMAFアプリケーションの作成を順を追って説明します。

MAFアプリケーションのコンポーネントは1人の開発者が作成できますが、アプリケーションは、様々な開発ロールによって提供されたリソースから構築できます。アプリケーション開発者は、アプリケーションまたはアプリケーション機能で使用できる再利用可能なプログラムとして、アプリケーション・データおよびユーザー・インタフェース・ロジックを構築します。アプリケーション・アセンブラは、様々なアプリケーション機能を1つのアプリケーションに集め、それらをユーザーフレンドリでナビゲート可能な順に配置します。アプリケーション・デプロイヤは、制御されたアプリケーションのデプロイメントを確認します。たとえば、MAFアプリケーションのデプロイメントでは、証明書およびApple App StoreやGooglePlayなどの公開のベンダー・サイトへのアップロードが必要となる場合があります。

注意:

アプリケーション開発チームのサイズや所属する組織に応じて、1人の個人に複数の異なるロールが割り当てられる場合があります。

一般的に、MAFアプリケーションを構築するときには、次のアクティビティを実行します。

  • 要件の収集

  • 設計

  • 開発

  • デプロイ

  • テストおよびデバッグ

  • 保護

  • サーバー側データへのアクセスの有効化

  • 再デプロイ

  • 再テストおよびデバッグ

  • 公開

MAFアプリケーションを構築するために実行する手順は、次のようなものです。

  1. 要件の収集: ユーザーが誰で、その不可欠なタスクは何か、およびこれらのタスクはどのような場所やコンテキストで実行するかを説明するユーザー・データを収集して、モバイル・ユースケース(またはユーザー・シナリオ)を作成します。タスクの実行に必要な情報のタイプ、ユーザーが使用できる情報、情報のアクセス方法や提供方法などの要因を考慮します。

  2. 設計: ユースケースの構成後、アプリケーションのタスク・フローのすべての手順(および関連するユーザー・ビュー)を示すワイヤーフレームを作成します。タスク・フローの作成時には、様々なユーザーがどのように、いつ相互作用するかを考慮します。表示データ(プッシュ通知など)はタスクの完了に十分か。十分でない場合、タスクではどのくらいのデータ・エントリが必要か。これらのタスクをモバイル・コンテキスト内で組み立てるには、デスクトップ・アプリケーションを使用して完了タスクをモバイル・アプリケーションと比較します。単一のデスクトップ・アプリケーションで、複数の異なるモバイル・アプリケーション(または、MAFのコンテキストでは、MAFアプリケーションに埋め込まれた複数の異なるアプリケーション機能)にパーティション化された複数の機能を有効化できます。モバイル・アプリケーションは一般に短いバースト(一度に約2分)で使用されるため、容易にナビゲートでき、モバイル・デバイスの制限されたデータ・エントリに対応する必要があります。

    設計および開発段階中は、モバイル・アプリケーションは、複雑なWebサービスから提供されるデータ量を消費できない場合があるため、モバイル固有のサーバー側リソースのセットが必要な場合があることに注意してください。さらに、モバイル・アプリケーションには、サービスによって戻されるデータを処理するための広範なクライアント側ロジックが必要になる場合もあります。サーバー側のモバイル・アプリケーションに送られてくるデータの形状を指定して、大量すぎるデータを強制的にクライアントで処理させないことが、通常は最適です。

  3. 開発: アプリケーションに最適なテクノロジを選択します。MAF WebビューがApache TrinidadまたはADF Facesリッチ・クライアント・コンポーネントを使用して作成されたリモート・コンテンツをサポートしているときには、これらのアプリケーションはオフラインの使用をサポートしません。MAF AMXで作成されたアプリケーションは、クライアント上で実行されますが、デバイス・サービスに統合されているため、エンド・ユーザーは、ファイルを表示したりGPSサービスを利用できるだけでなく、電話番号をタップして電話を発信したりテキストを送信して、相互に共同作業を行うこともできます。MAF AMXコンポーネント・セットにはデータ視覚化ツール(DVT)が含まれており、このツールを使用すると、分析を追加してモバイル画面上で適切にレンダリングできます。MAF AMXアプリケーションでは、リモート・ソースからデータを転送してローカルで格納することでオフライン使用をサポートしているため、エンド・ユーザーは、接続されていないときに情報を表示できます。

    MAFでは、基本のアプリケーション自体だけでなく、MAF AMXおよびローカルのHTMLコンテンツから実装されるアプリケーション機能も構築するウィザードおよびエディタのセットが提供されます。これらのツールを使用すると、MAFアプリケーションの構成やそのアプリケーション機能の組込みのためのディスクリプタ・ファイル、アプリケーション・アイコン用の一連のデフォルト・イメージ、Springboard、サポートされているプラットフォームのフォーム・ファクタに適切なナビゲーション・バー・アイテムなどのアーティファクトが提供されます。

  4. デプロイ: MAFアプリケーションは、デバイスまたはシミュレータにデプロイされるまで実行できないため、エンド・ユーザーへの公開というコンテキストだけでなく、テストおよびデバッグ目的でもデプロイします。開発のフェーズに応じて、資格証明署名オプション(デバッグまたはリリース)を指定します。テストの場合は、アプリケーションをモバイル・デバイスまたはシミュレータにデプロイします。本番の場合は、Apple App StoreやGoogle Playなど、アプリケーション・マーケットへの配布用にパッケージ化します。

    アプリケーションをデプロイするには、最初に、ターゲット・プラットフォームおよびそのデバイスとシミュレータを記述するデプロイメント・プロファイルを作成します。デプロイメント・プロファイルの作成には、異なる向き(縦または横)や異なるデバイス(電話またはタブレット)でアプリケーションに使用する起動アイコンの選択が含まれます。「MAFアプリケーションのデプロイ」を参照してください。

  5. テストおよびデバッグ: テストおよびデバッグのステージでは、アプリケーションを様々なシミュレータとデバイスにデバッグ・モードでデプロイした後、JDeveloperおよびプラットフォーム固有のツールで提供されるデバッグ出力を確認して、アプリケーションを最適化します。「MAFアプリケーションのテストおよびデバッグ」を参照してください。

  6. 保護: アプリケーションの開発プロセス全体を通して、セキュリティ上のリスクを評価します。モバイル・アプリケーションには固有のセキュリティ上の問題が存在すると同時に、リモートで供給されるデータにアクセスするすべてのアプリケーションと同じ脆弱性も共有しています。クライアント側のセキュリティを保証するために、MAFでは次のような機能を提供しています。

    • SQLiteデータベースへのアクセスを保護する強いパスワードを生成し、そのデータを暗号化および復号化するAPI

    • SSLをサポートする一連のWebサービス・ポリシー

    • SSLでのデプロイメントを強化する、信頼性のある認証局のcacertsファイル。

    MAFのセキュリティ構成には、Oracle Access Mobile and Socialサーバーなどのログイン・サーバーまたは基本的なHTTP認証メカニズムによって保護されているいずれかのWebページの選択や、セッション管理(セッション・タイムアウトおよびアイドル・タイムアウト)の構成が含まれ、また、アプリケーションのユーザー・ロールをホストするアクセス制御サービスのWebサービスへのエンド・ポイントの設定も含まれます。「MAFアプリケーションの保護」を参照してください。

  7. サーバー側データへのアクセスの有効化: 基本レベルで想定どおりにアプリケーションが機能することを確認したら、サーバー側データにアクセスするためにJavaコードを実装したり、データ・コントロールを使用できます。

  8. 再デプロイ: 後続のデプロイメントでは、アプリケーションにセキュリティを追加し、サーバー側データへのアクセスを有効にした後、アプリケーション・デプロイメントが想定どおりに実行され、アプリケーションで最後のテストおよびデバッグを行う準備ができていることを確認します。

  9. 再テストおよびデバッグ: 最終回のテストとデバッグでは、セキュリティとサーバー側データのアクセス機能に重点を置き、これらの機能をアプリケーションと統合したときに、エラーや予期しない動作が発生しないことを確認します。

  10. 公開: アプリケーションを本番環境にデプロイする場合、通常は、エンタープライズ・サーバー、Apple App StoreまたはGoogle Playなどへの公開が行われます。MAFアプリケーションを公開すると、エンド・ユーザーは自分のモバイル・デバイスにダウンロードしたり、指定されたアイコンをタッチしてアクセスできるようになります。アプリケーション機能は指定された表示アイコンで表され、エンド・ユーザーやユーザーのデバイスに適した表示が行われます。

1.4 サンプルのMAFアプリケーション

MAFでは、様々なユースケースを実装するサンプル・アプリケーションを幅広く提供しています。これらのサンプル・アプリケーションはJDeveloperで開いて、ソース・コードを詳しく調べたり、デバイスまたはエミュレータ/シミュレータにデプロイして実行時動作を確認できます。

デバイス・ネイティブ機能へのアクセス、ローカル・データベースでの操作の実行、ジェスチャーの実装といった様々なMAFアプリケーションの機能の実装方法を示すサンプル・アプリケーションが存在します。

HelloWorldサンプル・アプリケーションは、ローカルHTMLファイルを使用して単一のアプリケーション機能を実装する方法を示します。HelloWorldアプリケーションを使用して、アプリケーションをコンパイルおよびデプロイするために開発環境が正しく設定されていることを確認することをお薦めします。

初心者向けに役立つその他のサンプル・アプリケーションには、次のようなものがあります。

  • CompGallery (コンポーネント・ギャラリ)は、これらのコンポーネントのすべてを示すことによって、MAF AMX UIコンポーネントを紹介する役割を果たします。このアプリケーションをデバイスまたはエミュレータ/シミュレータで使用して、コンポーネントの属性を変更し、変更の影響をリアルタイムで確認できます。

  • WorkBetterサンプル・アプリケーション(図1-3を参照)は、MAF AMX UI機能を示します。また、プログラム的にRESTサービスにアクセスする方法も示します。

MAF拡張機能をインストールしたら、jdev_install/jdeveloper/jdev/extensions/oracle.maf/Samplesディレクトリ内のPublicSamples.zipファイルからサンプル・アプリケーションを抽出できます。ほとんどの場合、アプリケーションのディレクトリの名前がアプリケーションの目的をよく表しています。たとえば、SkinningDemoディレクトリにあるアプリケーションは、MAFアプリケーションのスキンを変更する方法を示します。各サンプル・アプリケーションの説明は、抽出されたディレクトリにあるReadMe.txtファイルを参照してください。次のOracle Technology NetworkページからアクセスできるOracle Mobile Application Frameworkのサンプル・ページでも、サンプル・アプリケーションに関する情報が提供されています。http://www.oracle.com/technetwork/developer-tools/maf/learnmore/mafsamples-2227357.htmlを参照してください。

図1-3 WorkBetterサンプル・アプリケーション

WorkBetterサンプル・アプリケーションの1画面の表示。画面の左側には、エンド・ユーザーがダッシュボード、組織図、従業員名簿などのアプリケーション機能にアクセスできるアプリケーションのスプリングボードが表示されます。画面の右側には、従業員の名前、役職、写真のリストが表示されます。