ヘッダーをスキップ

Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.1.1.0.0 E64867-01 |
| 目次

前 | 次 |

# 1 Oracle Mobile Application Frameworkの概要

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

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

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

- 第1.2項「MAFランタイム・アーキテクチャについて」

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

- 第1.4項「サンプル・アプリケーション」

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

MAFは、ハイブリッド・モバイル・アーキテクチャで、ユーザー・インタフェースのレンダリングにHTML5およびCSSを使用し、アプリケーション・ビジネス・ロジックにJavaを使用し、GPSアクティビティや電子メールなどのデバイス機能へのアクセスにApache Cordovaを使用します。MAFではこれらのクロス・プラットフォーム・テクノロジを使用するため、プラットフォーム固有のツールを使用する必要なく、AndroidとiOSの両方のデバイス上で動作するアプリケーションを構築できます。MAFアプリケーションをデバイスにデプロイすると、そのアプリケーションはObjective CやAndroid SDKなどのプラットフォーム固有のツールを使用して作成されたアプリケーションと同じように動作します。さらに、MAFを使用すると、スマートフォンまたはタブレット用に同じアプリケーションを構築できるため、同じアプリケーションのビジネス・ロジックを再利用して、様々なタイプのデバイス、画面サイズおよび機能をターゲットにできます。開発環境の設定、構成および移行の詳細は、『Oracle Mobile Application Frameworkのインストール』を参照してください。

MAFアプリケーションは1つ以上のアプリケーション機能で構成され、それらは図1-1に示すように、アプリケーションのSpringboardまたはナビゲーション・バー内にアイコンとして表示されます。

図1-1 MAFアプリケーションのSpringboard

アプリケーション機能は再利用可能な、アプリケーションの機能性を持つ自己完結型モジュールです。各アプリケーション機能によって一連の特定のタスクが実行され、これらの機能をグループ化して、相互の機能が補完されるようにできます。たとえば、顧客のコンタクト先を提供するアプリケーション機能を、製品在庫用のアプリケーション機能と組み合せることができます。各アプリケーション機能には独自クラス・ローダーおよびWebビュー(基本的には、ブラウザとして機能するネイティブUIコンポーネント)があるため、機能は相互に独立しており、1つのMAFアプリケーションを、いくつかの異なる開発チームにより作成されたアプリケーション機能が集められたものとすることができます。また、アプリケーション機能を他のMAFアプリケーションで再利用することもできます。MAFアプリケーション自体を別のアプリケーションのベースとして再利用できることにより、ISV (独立系ソフトウェア・ベンダー)は、特定の顧客が構成できるアプリケーションを作成できます。

デバイス上でローカルに実行するハイブリッド・モバイル・アプリケーションに加え、モバイル・アプリケーションおよび使用可能なリソースの要件に応じて、アプリケーション機能を次のモバイル・アプリケーション・タイプのいずれかとして実装できます。

- モバイルWebアプリケーション: これらのアプリケーションはサーバー上でホストされます。プラットフォーム間でコードを移植できるものの、これらのアプリケーションはデバイスのブラウザによって管理されるため、アプリケーションからのデバイス機能およびローカル記憶域へのアクセスは制限される可能性があります。

- ネイティブ・アプリケーション: これらのアプリケーションはXcodeまたはAndroid SDKのいずれかを使用して作成されているため、両方のプラットフォームへの対応には制限があります。コードの再利用も同様に制限されます。

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

図1-2に示すように、MAFはデバイスにデプロイされたシン・ネイティブ・コンテナです。MAFは、モデル・レイヤーとコントローラ・ロジックからプレゼンテーションを区別するmodel-view-controller (MVC)開発アプローチに従っています。シン・ネイティブ・コンテナによって、MAFアプリケーションが両方のプラットフォーム(iOSとAndroid)でネイティブ・アプリケーションとして機能できます。プッシュ通知も有効になります。

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

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

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

    - 第12章「MAF AMXページの作成」

    - 第13章「MAF AMXユーザー・インタフェースの作成」

    - 第14章「MAF AMXでのバインディングの使用とデータ・コントロールの作成」

    - 第15章「MAF AMXでのWebサービスの使用方法」

    - 第16章「MAFアプリケーションで使用されるエンド・ポイントの構成」

    - 第17章「MAF AMXでのローカル・データベースの使用方法」

    - 第18章「MAF AMXアプリケーション機能アーティファクトのカスタマイズ」

    - 第19章「カスタムMAF AMX UIコンポーネントの作成」

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

  - サーバーHTML: このコンテンツ・タイプでは、ユーザー・インタフェースは、アプリケーション機能のWebビュー内で開くことができる、サーバーが生成したWebページから提供されます。MAFのコンテキストにおいて、このコンテンツ・タイプはリモートURLと呼ばれます。これらのブラウザベースのページのリソースは、デバイス上には存在しません。かわりに、ユーザー・インタフェース、ページ・フロー・ロジックおよびビジネス・ロジックはリモート・サーバーから配信されます。リモートでホストされたこれらのWebページのいずれかがWebビュー内で開くことを許可されている場合、Cordova JavaScript APIを使用して、指定されたデバイス・ネイティブな機能またはサービス(カメラやGPS機能など)にアクセスできます。リモートURLコンテンツを使用した機能を実装する場合、モバイル使用に最適化された既存のブラウザベース・アプリケーションを活用したり、特定のタイプのモバイル・デバイスにあわせて特別に記述されたブラウザベース・アプリケーションを使用できます。デスクトップまたはタブレットのいずれかのブラウザ内で実行可能なアプリケーションの場合は、Oracle ADF Facesのリッチ・クライアント・ベースのコンポーネントを介して作成されたアプリケーションを使用して、リモートURLコンテンツを実装できます。特に携帯電話をターゲットとするアプリケーションの場合は、ADFモバイル・ブラウザを使用して作成されたWebページから、リモートURLコンテンツを配信できます。ADFモバイル・ブラウザを使用して作成されたアプリケーションは、様々なスマートフォンでレンダリングできるだけでなく、Apache TrinidadのJavaServer Faces (JSF)コンポーネントを使用して作成されたユーザー・インタフェースおよび動的に選択されるスタイルシートによって、フィーチャー・フォンで使用できるように、問題ない範囲で機能を縮小することもできます。詳細は、第20章「リモート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仕様に準拠しています。詳細は、第14章「MAF AMXでのバインディングの使用とデータ・コントロールの作成」を参照してください。

  - モデル: ビジネス・ロジック・コンポーネントをユーザー・インタフェースに接続するバインディング・レイヤーが含まれます。また、このバインディング・レイヤーでは、RESTまたはSOAPベースのWebサービスを起動するための実行ロジックが提供されます。詳細は、第1.3.1項「接続アプリケーションおよび切断されたアプリケーションについて」を参照してください。

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

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

- 資格証明管理、シングル・サインオン(SSO)およびアクセス制御: MAFでは、Oracle Access Management Mobile and Social (OAMMS) IDM SDKを使用して、ユーザー認証および資格証明管理を処理します。MAFアプリケーションではオフライン認証が実行される(つまり、接続中にユーザーがアプリケーションにログインすると、MAFによってユーザー名とパスワードがデバイス上にローカルに保持される)ため、ユーザーは、認証サーバーへの接続を使用できなくなった場合でも、アプリケーションへのアクセスを続行できます。MAFでは、ローカルに格納されているユーザー情報およびローカルSQLiteデータベースに格納されているデータが暗号化されます。ログイン・サーバーに対して認証した後、ユーザーはこの接続によって保護されるすべてのアプリケーション機能にアクセスできます。また、MAFでは、ユーザー・ロールと権限を適用してアプリケーション機能(またはアプリケーション機能の特定機能)へのアクセスを制限することにより、アクセス制御の概念もサポートしています。リモートで供給されるWebコンテンツの場合、MAFでは、ホワイトリストを使用して、アプリケーション機能のWebビュー内では意図したURIのみを開くことができ、かつそのURIのみがデバイス機能にアクセスできるようにします。詳細は、第29章「MAFアプリケーションの保護」を参照してください。

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

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

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

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

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

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

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

- APNおよびGCMのプッシュ・サービス: Apple Push Notification Service (APNs)およびGoogle Cloud Messaging (GCM)は、通知イベントをMAFアプリケーションに送信する通知プロバイダです。

- SOAPおよびRESTサービス: リモートでホストされているSOAPベースまたはRESTベースのWebサービスで、Javaレイヤーまたはデータ・コントロールを介してアクセスできます。詳細は、第15章「MAF AMXでのWebサービスの使用方法」を参照してください。

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

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

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

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

- 要件の収集

- 設計

- 開発

- デプロイ

- テストおよびデバッグ

- 保護

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

- 再デプロイ

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

- 公開

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

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

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

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

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

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

   詳細は、次を参照してください。

   - 第2章「MAFアプリケーション開発のスタート・ガイド」

   - 第3章「MAFアプリケーションのコンテンツの構成」

   - 第12章「MAF AMXページの作成」

   - 第13章「MAF AMXユーザー・インタフェースの作成」

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

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

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

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

   - クロスサイト・スクリプティング(XSS)やクロスサイト・リクエスト・フォージェリ(CSRF)などのインジェクション攻撃を防ぐホワイトリスト

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

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

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

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

7. サーバー側データへのアクセスの有効化: 基本レベルで想定どおりにアプリケーションが機能することを確認したら、サーバー側データにアクセスするためにJavaコードを実装したり、データ・コントロールを使用できます。詳細は、第1.3.1項「接続アプリケーションおよび切断されたアプリケーションについて」を参照してください。

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

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

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

### 1.3.1 接続アプリケーションおよび切断されたアプリケーションについて

MAFアプリケーションは、ネットワークへの接続中に機能しますが、携帯電話の信号がないような切断モードでも機能します。次に例を示します。

- Webサービス・データ・コントロールによって直接支えられているユーザー・インタフェースを含む基本的な接続アプリケーション(このWebサービス・データ・コントロールは、サーバーでホストされているWebサービスを起動します)。

- 中程度の(または複雑な)データ・サービスを使用する接続アプリケーション。このタイプのアプリケーションの場合、データ・コントロールにより公開されたJavaクラス(POJO)は、ユーザー・インタフェースとサービス・データ・ソースの間のデータ問合せをディスパッチします。

- SQLiteデータベースに格納されたデータを操作する、切断されたアプリケーションでは、アプリケーション・ユーザーがオフラインで作業できます。アプリケーションはWebサービスからデータを取得する必要がある場合がありますが、接続が失われている場合、接続がリストアされると、データはローカルに格納され、同期されます。

## 1.4 サンプル・アプリケーション

デプロイメント環境の設定(『Oracle Mobile Application Frameworkのインストール』を参照)が完了したら、`jdev_install``/jdeveloper/jdev/extensions/oracle.maf/Samples`ディレクトリ内の`PublicSamples.zip`ファイルにあるMAFサンプル・アプリケーションを実行できます。

図1-3に示すようなWorkBetterアプリケーションなどのサンプル・アプリケーションは、アプリケーションでWebサービスを使用してリモート・データと連動させたり、SQLiteデータベースと相互作用する方法など、MAFアプリケーション機能の範囲を示しています。サンプル・アプリケーションは次の方法を示しています。

- 基本的なHello Worldアプリケーションの作成方法

- アプリケーションがライフサイクル・イベントに反応できるようにする方法

- スキニングの使用方法

- MAF AMXアプリケーション機能の開発方法(ユーザー・インタフェース、ナビゲーション、マネージドBean、データ変更イベントなど)

詳細は、付録G「サンプルのMAFアプリケーション」を参照してください。

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