ヘッダーをスキップ

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

前 | 次 |

# 2 MAFアプリケーション開発のスタート・ガイド

この章では、JDeveloperでのMAFアプリケーションの作成方法と、アプリケーション作成時にJDeveloperによって生成されるファイルやその他のアーティファクトについて説明します。

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

- 第2.1項「MAFアプリケーションの宣言的な開発の概要」

- 2.2項「MAFアプリケーションの作成」

- 第2.3項「MAFアプリケーションのアプリケーション機能の定義」

- 第2.4項「アプリケーション機能へのコンテンツの追加」

- 第2.5項「MAFアプリケーションへのアプリケーション機能の追加」

- 第2.6項「MAF AMXページおよびMAFタスク・フローの作成」

## 2.1 MAFアプリケーションの宣言的な開発の概要

JDeveloperのOracle Mobile Application Framework (MAF)拡張機能には、MAFアプリケーションの開発、テストおよびデプロイメントを容易にする様々な概要エディタやその他のウィザードが用意されています。これらのウィザードを使用すると、MAFアプリケーションの作成、1つ以上のアプリケーション機能の定義、アプリケーション機能へのコンテンツの追加、およびMAFアプリケーションのテスト環境またはデバイスへのデプロイを比較的短時間に行えます。

図2-1は、JDeveloperの「アプリケーション」ウィンドウにWorkBetterサンプル・アプリケーションを表示したもので、このウィンドウではMAFアプリケーションの開発に使用する様々なアイテムを特定します。

1. MAFアプリケーションを新規作成すると、デフォルトで`maf-features.xml`ファイルの概要エディタが開きます。この概要エディタを使用して、MAFアプリケーションに含めるアプリケーション機能を定義します。

2. `maf-application.xml`ファイルの概要エディタは、特にMAFアプリケーションの名前、アプリケーション用にレンダリングされるデフォルトのナビゲーション・メニュー(ナビゲーション・バーまたはSpringboard)、セキュリティ、およびアプリケーションのデバイス・アクセス・オプションを指定する場合に使用します。

3. デフォルトで、JDeveloperはMAFアプリケーションを2つのデータ・コントロール(ApplicationFeaturesとDeviceFeatures)とともに作成します。これらのデータ・コントロールでは、MAF AMXページにドラッグ可能な操作を公開し、ユーザーがその操作をページにドロップすると、操作の構成を実行するためのコンテキスト・メニューがJDeveloperによって表示されます。たとえば、`hideNavigationBar()`操作をページにドラッグすると、エンド・ユーザーがアプリケーションのナビゲーション・バーを非表示にするコントロールを構成するためのコンテキスト・メニューが、JDeveloperによって表示されます。

WorkBetterサンプル・アプリケーションは、MAFに用意されている様々なサンプル・アプリケーションの1つで、MAFを使用したモバイル・アプリケーションの作成方法を示します。詳細は、付録G「サンプルのMAFアプリケーション」を参照してください。

JDeveloperによってウィザードにデフォルト・オプションが提示されるので、次のように実行すると、1つのMAF AMXページを表示する、1つのアプリケーション機能を備えたMAFアプリケーションを作成できます。

1. 第2.2項「MAFアプリケーションの作成」の説明に従って、MAFアプリケーションを作成します。

2. 第2.3項「MAFアプリケーションのアプリケーション機能の定義」の説明に従って、MAFアプリケーションのアプリケーション機能を定義します。

3. 第2.4項「アプリケーション機能へのコンテンツの追加」の説明に従って、アプリケーション機能にコンテンツを追加します。

図2-1 アプリケーション機能とアプリケーションの概要エディタ

## 2.2 MAFアプリケーションの作成

MAFアプリケーションを作成するには、事前にJDeveloperにMAF拡張機能をダウンロード、インストールおよび構成する必要があります。詳細は、『Oracle Mobile Application Frameworkのインストール』を参照してください。このタスクを完了したら、JDeveloperの作成ウィザードを使用してMAFアプリケーションを作成します。

### 2.2.1 MAFアプリケーションの作成方法

アプリケーションの作成ウィザードを使用して、JDeveloperでMAFアプリケーションを作成します。

MAFアプリケーションの作成手順:

1. メイン・メニューで「ファイル」を選択し、次に「アプリケーション」→「新規」を選択します。

2. 「新規ギャラリ」の「アイテム」リストで、「モバイル・アプリケーション・フレームワーク・アプリケーション」をダブルクリックします。

3. モバイル・アプリケーション・フレームワーク・アプリケーションの作成ウィザードで、名前、ディレクトリ、デフォルトのパッケージなど、アプリケーションとプロジェクトの詳細情報を入力します。ウィザードのヘルプを参照するには、[F1]を押すか「ヘルプ」をクリックします。

4. 「終了」をクリックします。

### 2.2.2 MAFアプリケーションの作成時に行われる処理

JDeveloperは、MAFアプリケーションを2つのプロジェクト(ApplicationControllerとViewController)および2つのデータ・コントロール(ApplicationFeaturesとDeviceFeatures)とともに作成します。また、MAFアプリケーションの構成用ファイルと、MAFアプリケーションをAndroidまたはiOSプラットフォームにデプロイする際にそのアプリケーションで必要になるファイルも作成されます。

デフォルトで、新規作成したMAFアプリケーションのViewControllerプロジェクト内にある`maf-features.xml`ファイルの概要エディタが表示されます(図2-2を参照)。この概要エディタを使用して、1つ以上のアプリケーション機能をMAFアプリケーションに追加します。MAFアプリケーションには、少なくとも1つのアプリケーション機能が必要です。MAFアプリケーションへのアプリケーション機能の追加の詳細は、第2.3項「MAFアプリケーションのアプリケーション機能の定義」を参照してください。

MAFアプリケーションの作成時にJDeveloperによって生成されるファイルおよびアーティファクトの詳細は、付録C「MAFアプリケーションとプロジェクト・ファイル」を参照してください。

図2-2 新規作成したMAFアプリケーション内のアプリケーション機能の概要エディタ

## 2.3 MAFアプリケーションのアプリケーション機能の定義

MAFアプリケーションには、少なくとも1つのアプリケーション機能が必要です。たとえば、WorkBetterサンプル・アプリケーションには4つのアプリケーション機能(ダッシュボード、人々、組織およびSpringboard)が含まれています。図2-3は、これらのうち3つのアプリケーション機能が、そのアプリケーションのカスタムSpringboardに表示されている様子を示しています。

図2-3 WorkBetterアプリケーションのSpringboardに表示されるアプリケーション機能

### 2.3.1 アプリケーション機能の定義方法

MAFアプリケーションのアプリケーション機能を定義するには、`maf-features.xml`ファイルの概要エディタを使用します。

MAFアプリケーションのアプリケーション機能を定義する手順:

1. 「Application」ウィンドウで、ViewControllerプロジェクトを展開し、「アプリケーション・ソース」およびMETA-INFを展開します。

2. maf-feature.xmlファイルをダブルクリックします。

3. 「機能」ページで「追加」アイコンをクリックします。

4. 次のようにして、「MAF機能の作成」ダイアログに必要な情報を入力します。

   - 機能名: アプリケーション機能の表示名を入力します。

   - 機能ID: アプリケーション機能の一意のIDを入力するか、JDeveloperによって生成される値をそのまま使用します。

   - ディレクトリ: アプリケーション機能のディレクトリを指定するか、JDeveloperによって生成される値をそのまま使用します。

   - 「対応する機能参照をmaf-application.xmlに追加」チェック・ボックスを選択し、アプリケーション機能をMAFアプリケーションに追加します。このチェック・ボックスはデフォルトで選択されています。

5. 「OK」をクリックします。

## 2.4 アプリケーション機能へのコンテンツの追加

アプリケーション機能を定義した後で行うタスクの1つに、アプリケーション機能へのコンテンツの追加があります。アプリケーション機能のコンテンツのレンダリング・タイプを次の中から選択します。

- MAF AMXページ: アプリケーション機能をMAF AMXページとしてレンダリングする場合は、このコンテンツ・タイプを選択します。

- MAFタスク・フロー: アプリケーション機能を、タスク・フローを構成するアクティビティのコレクションとしてレンダリングする場合は、このコンテンツ・タイプを選択します。タスク・フローに含めることのできるアクティビティには、ビュー(MAF AMXページの表示)、メソッド・コール(マネージドBeanのメソッドの起動)、タスク・フロー・コール(別のタスク・フローのコール)などがあります。

- ローカルHTML: アプリケーション機能をHTMLページとしてレンダリングする場合に選択します。

- リモートURL: アプリケーション機能をリモートURLからのコンテンツでレンダリングする場合に選択します。

アプリケーション機能にコンテンツ・タイプを追加する一般的な手順は、すべてのコンテンツ・タイプで同じです。具体的には、`maf-features.xml`ファイルの概要エディタにある「機能」ページの「コンテンツ」タブで、アプリケーション機能に追加するコンテンツのタイプを選択します。各コンテンツ・タイプに固有の手順については、第5章「MAFアプリケーション機能のコンテンツ・タイプの定義」を参照してください。

## 2.5 MAFアプリケーションへのアプリケーション機能の追加

定義時にアプリケーション機能がMAFアプリケーションへ自動的に追加されるようにするには、「MAF機能の作成」ダイアログで「対応する機能参照をmaf-application.xmlに追加」チェック・ボックスを選択します(第2.3.1項「アプリケーション機能の定義方法」を参照)。

作成時にMAFアプリケーションへ追加しなかったアプリケーション機能を追加する場合は、`maf-application.xml`ファイルの概要エディタの「機能参照」ページを使用し、`maf-application.xml`ファイルの概要エディタの「機能参照」ページを使用します。

アプリケーション機能を機能アーカイブ(FAR)ファイルからインポートして、MAFアプリケーションに追加することもできます。MAFアプリケーションにアプリケーション機能を追加するには、事前にそのアプリケーション機能をMAFアプリケーションにインポートする必要があります。FARファイルからのインポートの詳細は、第8章「MAFアプリケーション・コンテンツの再使用」を参照してください。

図2-4は、「機能参照」ページを示したもので、このページを使用してMAFアプリケーションにアプリケーション機能を追加します。

図2-4 「機能参照」ページを使用したアプリケーション機能の追加

### 2.5.1 MAFアプリケーションへのアプリケーション機能の追加方法

MAFアプリケーションにアプリケーション機能を追加するには、`maf-application.xml`ファイルの概要エディタの「機能参照」ページを使用します。

MAFアプリケーションにアプリケーション機能を追加する手順:

1. 「アプリケーション」ウィンドウで、「アプリケーション・リソース」パネルを開きます。

2. 「アプリケーション・リソース」パネルでDescriptorsを展開し、ADF META-INFを展開します。

3. maf-application.xmlファイルをダブルクリックし、表示される概要エディタで「機能参照」ナビゲーション・タブをクリックします。

4. 「機能参照」ページで「追加」アイコンをクリックします。

5. 「機能参照の挿入」ダイアログで、ドロップダウン・リストからアプリケーション機能のIDを選択します。

6. 「OK」をクリックします。

### 2.5.2 機能参照IDと機能IDに関する必知事項

MAFアプリケーションに追加するアプリケーション機能を参照するためのエントリが、JDeveloperによって`maf-application.xml`ファイルに書き込まれます。

`maf-application.xml`ファイルの`<adfmf:featureReference>`要素の`refId`属性は、`maf-feature.xml`ファイル内の対応するアプリケーション機能を特定します。このため、`maf-application.xml`ファイル内の`<adfmf:featureReference>`要素の`refId`属性の値は、`maf-feature.xml`ファイル内の`<adfmf:feature>`要素に対して定義された`id`属性の値と一致する必要があります。

一貫した命名規則を使用して、アプリケーション機能IDの一意性を確保します。アプリケーション機能IDはMAFアプリケーション全体を通して一意である必要があります。

例2-1に、WorkBetterサンプル・アプリケーションの`maf-application.xml`ファイルと`maf-feature.xml`ファイルに含まれている人々アプリケーション機能のエントリを示します。

例2-1 WorkBetterアプリケーションに含まれているアプリケーション機能の機能参照と機能ID

    <!-- Feature Reference ID in maf-application.xml File -->
    <adfmf:featureReference id="fr2" refId="People"/>
    ...
    <!-- Feature ID in maf-feature.xml File -->
    <adfmf:feature id="People" name="People" icon="images/people.png" image="images/people.png">
    ...

## 2.6 MAF AMXページおよびMAFタスク・フローの作成

第12章「MAF AMXページの作成」で説明されているように、MAF AMXコンポーネントを使用すると、プラットフォーム固有の言語で作成されたページとまったく同じように実行されるページを作成できます。MAF AMXページでは、豊富なコンポーネント・セットを使用して、ユーザー・インタフェースを宣言的に作成できます。図2-5に、MAF AMXページの宣言的な開発を示します。

図2-5 MAF AMXページの作成

これらのページは、(MAFアプリケーションを作成し、その中にアプリケーション機能を埋め込む)アプリケーション・アセンブラによって作成される場合や、別の開発者によって作成され、アプリケーション機能またはMAFアプリケーションに対するリソースとしてMAFアプリケーションに組み込まれる場合もあります。

MAF AMXページを作成するプロジェクトによって、このページが単一のアプリケーション機能のユーザー・インタフェース・コンテンツの配信に使用されるのか、またはMAFアプリケーション全体に対するリソースとして使用されるのかが決まります。たとえば、図2-9に示すような、アプリケーション・コントローラ・プロジェクト内で作成されたページは、アプリケーション全体のリソースとして使用されます。

ヒント: ページの保守を容易にするために、ページをページ・フラグメントと呼ばれる再利用可能なセグメントに分割できます。MAF AMXページは、1つ以上のページ・フラグメントで構成されます。

MAFでは、MAFタスク・フローを介してMAF AMXビュー・ページおよび他のアクティビティを配置して適切なシーケンスにすることができます。第12.2項「タスク・フローの作成」で説明されているように、MAFタスク・フローはアプリケーションのフローの視覚的に表現したものです。これは、(図2-6に示すWorkBetterサンプル・アプリケーションのデフォルトのListページやDetailページなどのビュー・アクティビティのような) MAF AMXで作成されるユーザー・インタフェース・ページや、マネージドBeanでメソッドをコールできる非視覚的なアクティビティで構成されます。タスク・フローの非視覚的な要素は、EL式を評価したり、別のタスク・フローをコールするために使用できます。図2-6で示されるように、MAFではタスク・フロー・コンポーネントをダイアグラマにドラッグしてタスク・フローを宣言的に作成できます。MAFには、バインド・タスク・フローとバインドなしタスク・フローという2種類のタスク・フローがあり、バインド・タスク・フローにはWorkBetterサンプル・アプリケーションのListページのような単一のエントリ・ポイントが含まれ、バインドなしタスク・フローにはアプリケーション・フローとなる複数のエントリ・ポイントが含まれることがあります。WorkBetterサンプル・アプリケーションは、開発コンピュータ上の``jdev_install`/jdeveloper/jdev/extensions/oracle.maf/Samples`ディレクトリの`PublicSamples.zip`ファイル内にあります。

図2-6 MAFタスク・フロー

図2-7に、MAFタスク・フロー、AMXページ、MAFページ・フラグメントと呼ばれるMAF AMXページの再利用可能な部分、およびアプリケーション機能を追加するためにMAFに提供されているウィザードを示します。これらのウィザードにアクセスするには、「アプリケーション」ウィンドウでビュー・コントローラ・プロジェクトまたはアプリケーション・コントローラ・プロジェクトを選択して、「ファイル」→「新規」を選択します。「クライアント層」内の「モバイル・アプリケーション・フレームワーク」を選択した後、いずれかのウィザードを選択します。

図2-7 アプリケーション機能のリソースを作成するウィザード

### 2.6.1 MAF AMXページの作成方法

MAF AMXページ・ウィザードを使用して、アプリケーション機能のユーザー・インタフェースに使用されるAMXページや、MAFアプリケーションを構成するアプリケーション機能の間で共有可能なアプリケーション・レベルのリソース(ログイン・ページなど)として使用されるAMXページを作成できます。アプリケーション機能コンテンツの詳細は、第5章「MAFアプリケーション機能のコンテンツ・タイプの定義」を参照してください。

アプリケーション機能のコンテンツとしてMAF AMXページを作成するには:

1. 「アプリケーション」ウィンドウで、ビュー・コントローラ・プロジェクトを右クリックします。

2. 「ファイル」を選択し、「新規」を選択します。

3. 「新規ギャラリ」の「クライアント層」ノードで、「MAF AMXページ」を選択して、「OK」をクリックします。

4. 「ファイル名」フィールドに名前を入力して、「MAF AMXページの作成」ダイアログの入力を完了します(図2-8を参照)。「ディレクトリ」フィールドに、ファイルの場所を入力します。この場所は、ビュー・コントローラ・プロジェクトの`public_html`フォルダ内である必要があります。

   図2-8 ビュー・コントローラ・プロジェクト内でのMAF AMXページの作成

5. 「パネル・ページ」内で、ヘッダーおよびフッターの作成に使用する「ファセット」を選択(または選択解除)します。「OK」をクリックします。

   詳細は、第13.2.2項「パネル・ページ・コンポーネントの使用方法」を参照してください。

6. MAF AMXページを作成します。AMXコンポーネントの使用方法の詳細は、第12.3.1.2項「MAF AMXページの作成」を参照してください。第5.3項「アプリケーション機能のコンテンツをMAF AMXページまたはタスク・フローとして定義する方法」も参照してください。

MAF AMXアプリケーションに対するリソースとしてMAF AMXページを作成するには:

1. 「アプリケーション」ウィンドウで、アプリケーション・コントローラ・プロジェクトを選択します。

2. 「ファイル」を選択し、「新規」を選択します。

3. 「新規ギャラリ」の「クライアント層」ノードで、「MAF AMXページ」を選択して、「OK」をクリックします。

4. 「ファイル名」フィールドに名前を入力して、「MAF AMXページの作成」ダイアログの入力を完了します(図2-9を参照)。「ディレクトリ」フィールドに、ファイルの場所を入力します。この場所は、アプリケーション・コントローラ・プロジェクトの`public_html`フォルダ内である必要があります。「OK」をクリックします。

   図2-9 アプリケーション・コントローラ・プロジェクト内でのMAF AMXページの作成

5. MAF AMXページを作成します。詳細は、第12.3.1.2項「MAF AMXページの作成」を参照してください。

### 2.6.2 MAFタスク・フローの作成方法

アプリケーション機能のコンテンツをMAFタスク・フローとして配信できます。

アプリケーション機能のコンテンツとしてMAFタスク・フローを作成するには:

1. 「アプリケーション」ウィンドウで、ビュー・コントローラ・プロジェクトを選択します。

2. 「ファイル」を選択し、「新規」を選択します。

3. 「新規ギャラリ」の「クライアント層」ノードで、「MAFタスク・フロー」を選択して、「OK」をクリックします。

4. 「ファイル名」フィールドに名前を入力して、「MAFタスク・フローの作成」ダイアログの入力を完了します(図2-10を参照)。「ディレクトリ」フィールドに、ファイルの場所を入力します。この場所は、ビュー・コントローラ・プロジェクトの`public_html`フォルダ内である必要があります。「OK」をクリックします。

   図2-10 ビュー・コントローラ・プロジェクト内でのMAFタスク・フローの作成

5. タスク・フローを構築します。第12.2項「タスク・フローの作成」も参照してください。

### 2.6.3 MAF AMXページおよびタスク・フローの作成時に行われる処理

JDeveloperは、MAF AMXページとタスク・フローを、ビュー・コントローラ・プロジェクトの「Webコンテンツ」ノードに配置します(`図2-11`の`custom_springboard.amx`およびViewController-task-flow.xmlを参照。これらは、このプロジェクト内で作成されるタスク・フローのデフォルト名です)。これらのアーティファクトは`maf-feature.xml`ファイル内で参照されています。カスタマイズされたアプリケーション・スプラッシュ画面(または起動)イメージやナビゲーション・バー・イメージなどの他のリソースも「Webコンテンツ」ノードにあります。バインドなしタスク・フローを管理するために、JDeveloperでは`adfc-mobile-config.xml`ファイルが生成されます。このファイルを使用して、ビュー(ユーザー・インタフェース・ページ)、様々なアクティビティ間の遷移を定義する制御ルール、タスク・フローのレンダリング・ロジックを管理するマネージドBeanなど、様々なタスク・フロー・コンポーネントを追加することにより、タスク・フローを宣言的に作成または更新できます。

図2-11 アプリケーション・コントローラ・プロジェクトおよびビュー・コントローラ・プロジェクト内のMAF AMXページとタスク・フロー

JDeveloperは、MAF AMXページとタスク・フローを、MAFアプリケーションに対するアプリケーション・リソースとして、アプリケーション・コントローラ・プロジェクトの「Webコンテンツ」ノードに配置します。図2-11に示すように、MAF AMXページ用のファイルは`application_resource.amx`という名前で、タスク・フローのファイルは`ApplicationController-task-flow.xml`という名前です(デフォルト名)。