2 MAFアプリケーション開発のスタート・ガイド
この章の内容は次のとおりです。
MAFアプリケーションの宣言的な開発の概要
MAFに用意されている概要エディタとウィザードを使用して、アプリケーションを開発し、そのアプリケーションの機能を定義し、機能にコンテンツを追加して、テスト環境またはデバイスにアプリケーションをデプロイします。
JDeveloperのOracle Mobile Application Framework (MAF)拡張機能には、MAFアプリケーションの開発、テストおよびデプロイメントを容易にする様々な概要エディタやその他のウィザードが用意されています。これらのウィザードを使用すると、MAFアプリケーションの作成、1つ以上のアプリケーション機能の定義、アプリケーション機能へのコンテンツの追加、およびMAFアプリケーションのテスト環境またはデバイスへのデプロイを比較的短時間に行えます。
次の図は、JDeveloperの「アプリケーション」ウィンドウにWorkBetterサンプル・アプリケーションを表示したものです。この図では、MAFアプリケーションの開発に使用する様々なアイテムが特定されています。
-
MAFアプリケーションを新規作成すると、デフォルトで
maf-features.xml
ファイルの概要エディタが開きます。この概要エディタを使用して、MAFアプリケーションに含めるアプリケーション機能を定義します。 -
maf-application.xml
ファイルの概要エディタは、特にMAFアプリケーションの名前、アプリケーション用にレンダリングされるデフォルトのナビゲーション・メニュー(ナビゲーション・バーまたはSpringboard)、セキュリティおよびアプリケーションのデバイス・アクセス・オプションを指定する場合に使用します。 -
デフォルトで、JDeveloperはMAFアプリケーションを2つのデータ・コントロール(ApplicationFeaturesとDeviceFeatures)とともに作成します。これらのデータ・コントロールでは、MAF AMXページにドラッグ可能な操作を公開し、ユーザーがその操作をページにドロップすると、操作の構成を実行するためのコンテキスト・メニューがJDeveloperによって表示されます。たとえば、
hideNavigationBar()
操作をページにドラッグすると、ユーザーがアプリケーションのナビゲーション・バーを非表示にするコントロールを構成するためのコンテキスト・メニューが、JDeveloperによって表示されます。
WorkBetterサンプル・アプリケーションは、MAFに用意されている様々なサンプル・アプリケーションの1つで、MAFを使用したモバイル・アプリケーションの作成方法を示します。「サンプルのMAFアプリケーション」を参照してください。
JDeveloperによってウィザードにデフォルト・オプションが提示されるので、次のように実行すると、1つのMAF AMXページを表示する、1つのアプリケーション機能を備えたMAFアプリケーションを作成できます。
-
「MAFアプリケーションの作成」の説明に従って、MAFアプリケーションを作成します。
-
「MAFアプリケーションのアプリケーション機能の定義」の説明に従って、MAFアプリケーションのアプリケーション機能を定義します。
-
「アプリケーション機能へのコンテンツの追加」の説明に従って、アプリケーション機能にコンテンツを追加します。
MAFアプリケーションの作成
MAFでアプリケーション開発を開始するには、「新規ギャラリ」の「アプリケーション」カテゴリにある「モバイル・アプリケーション・フレームワーク・アプリケーション」オプションから、モバイル・アプリケーション・フレームワーク・アプリケーションの作成ウィザードにアクセスして、このウィザードを使用します。
MAFアプリケーションを作成するには、事前にJDeveloperにMAF拡張機能をダウンロード、インストールおよび構成する必要があります。
Oracle Mobile Application FrameworkのインストールのJDeveloperとのモバイル・アプリケーション・フレームワークのインストールを参照してください。このタスクを完了したら、JDeveloperの作成ウィザードを使用してMAFアプリケーションを作成します。
MAFアプリケーションの作成方法
アプリケーションの作成ウィザードを使用して、JDeveloperでMAFアプリケーションを作成します。
MAFアプリケーションの作成手順:
- メイン・メニューで、「ファイル」を選択して、「アプリケーション」→「新規」を選択します。
- 「新規ギャラリ」の「アイテム」リストで、「モバイル・アプリケーション・フレームワーク・アプリケーション」をダブルクリックします。
- 「モバイル・アプリケーション・フレームワーク・アプリケーションの作成」ウィザードで、名前、ディレクトリ、デフォルトのパッケージなど、アプリケーションとプロジェクトの詳細情報を入力します。ウィザードのヘルプを参照するには、[F1]を押すか「ヘルプ」をクリックします。
- 「終了」をクリックします。
MAFアプリケーションの作成時に行われる処理
JDeveloperは、MAFアプリケーションを2つのプロジェクト(ApplicationControllerとViewController)および2つのデータ・コントロール(ApplicationFeaturesとDeviceFeatures)とともに作成します。また、MAFアプリケーションの構成用ファイルと、MAFアプリケーションをサポートされるプラットフォームにデプロイする際にそのアプリケーションで必要になるファイルも作成されます。
図に示すように、新規作成したMAFアプリケーションのViewControllerプロジェクト内にあるmaf-features.xml
ファイルの概要エディタがデフォルトで表示されます。この概要エディタを使用して、1つ以上のアプリケーション機能をMAFアプリケーションに追加します。MAFアプリケーションには、少なくとも1つのアプリケーション機能が必要です。「MAFアプリケーションのアプリケーション機能の定義」を参照してください。
MAFアプリケーションの作成時にJDeveloperによって生成されるファイルおよびアーティファクトの詳細は、「MAFアプリケーションとプロジェクト・ファイル」を参照してください。
MAFアプリケーションのアプリケーション機能の定義
MAFアプリケーションには、少なくとも1つのアプリケーション機能を定義する必要があります。
MAFアプリケーションには、少なくとも1つのアプリケーション機能が必要です。たとえば、WorkBetterサンプル・アプリケーションには4つのアプリケーション機能(ダッシュボード、人々、組織およびSpringboard)が含まれています。これらのうち3つのアプリケーション機能が、そのアプリケーションのカスタム・スプリングボードに表示されている様子を図に示します。
図2-3 WorkBetterアプリケーションのSpringboardに表示されるアプリケーション機能

「図2-3 WorkBetterアプリケーションのSpringboardに表示されるアプリケーション機能」の説明
アプリケーション機能へのコンテンツの追加
アプリケーション機能を定義すると、その機能のコンテンツとしてMAF AMXページ、MAFタスク・フロー、ローカルHTML、またはリモートHTMLを追加できるようになります。
アプリケーション機能を定義した後で行うタスクの1つに、アプリケーション機能へのコンテンツの追加があります。アプリケーション機能のコンテンツのレンダリング・タイプを次の中から選択します。
-
MAF AMXページ: アプリケーション機能をMAF AMXページとしてレンダリングする場合は、このコンテンツ・タイプを選択します。
-
MAFタスク・フロー: アプリケーション機能を、タスク・フローを構成するアクティビティのコレクションとしてレンダリングする場合は、このコンテンツ・タイプを選択します。タスク・フローに含めることのできるアクティビティには、ビュー(MAF AMXページの表示)、メソッド・コール(マネージドBeanのメソッドの起動)、タスク・フロー・コール(別のタスク・フローのコール)などがあります。
-
ローカルHTML: アプリケーション機能をHTMLページとしてレンダリングする場合に選択します。
-
リモートURL: アプリケーション機能をリモートURLからのコンテンツでレンダリングする場合に選択します。
アプリケーション機能にコンテンツ・タイプを追加する一般的なステップは、すべてのコンテンツ・タイプで同じです。具体的には、maf-features.xml
ファイルの概要エディタにある「機能」ページの「コンテンツ」タブで、アプリケーション機能に追加するコンテンツのタイプを選択します。各コンテンツ・タイプに固有のステップについては、「MAFアプリケーション機能のコンテンツ・タイプの定義」を参照してください。
MAFアプリケーションへのアプリケーション機能の追加
作成またはインポートするMAFアプリケーションに機能を追加します。機能は、アプリケーションの作成時に追加することも、アプリケーションの作成後に追加することもできます。
定義時にアプリケーション機能がMAFアプリケーションへ自動的に追加されるようにするには、「アプリケーション機能の定義方法」の説明に従って、「MAF機能の作成」ダイアログで「対応する機能参照をmaf-application.xmlに追加」チェック・ボックスを選択します。
MAFアプリケーションの作成時に追加していなかったアプリケーション機能を追加する場合は、maf-application.xml
ファイルの概要エディタの「機能参照」ページを使用します。
アプリケーション機能を機能アーカイブ(FAR)ファイルからインポートして、MAFアプリケーションに追加することもできます。MAFアプリケーションにアプリケーション機能を追加するには、事前にそのアプリケーション機能をMAFアプリケーションにインポートする必要があります。「MAFアプリケーション・コンテンツの再使用」を参照してください。
「機能参照」ページを図に示します。このページを使用してMAFアプリケーションにアプリケーション機能を追加します。
MAFアプリケーションへのアプリケーション機能の追加方法
MAFアプリケーションにアプリケーション機能を追加するには、maf-application.xml
ファイルの概要エディタの「機能参照」ページにアクセスして使用する手順を使用してください。
MAFアプリケーションにアプリケーション機能を追加するには、maf-application.xml
ファイルの概要エディタの「機能参照」ページを使用します。
MAFアプリケーションにアプリケーション機能を追加する手順:
- 「アプリケーション」ウィンドウで、「アプリケーション・リソース」パネルを展開します。
- 「アプリケーション・リソース」パネルで「ディスクリプタ」を展開し、「ADF META-INF」を展開します。
- maf-application.xmlファイルをダブルクリックし、表示される概要エディタで「機能参照」ナビゲーション・タブをクリックします。
- 「機能参照」ページで「追加」アイコンをクリックします。
- 「機能参照の挿入」ダイアログで、ドロップダウン・リストからアプリケーション機能のIDを選択します。
- 「OK」をクリックします。
機能参照IDと機能IDに関する必知事項
アプリケーション機能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"> ...
フォーム・ファクタに応じた開発環境の構成
フォーム・ファクタとは特定のデバイス構成のことです。各フォーム・ファクタは指定した名前で識別され、ここには、ピクセル単位の幅と高さで表された指定解像度に関する情報が含まれています。
プリファレンスで定義されているフォーム・ファクタはMAF AMXページの「プレビュー」タブで使用されるため(『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のプレビューの使用に関する項を参照)、MAF AMXアプリケーション機能をMAFアプリケーションの一部として含める予定で、デフォルト設定を使用しない場合は、この構成を実行するよう選択できます。開発時に、様々なフォーム・ファクタを選択したり切り替えたりして、MAF AMXページをレンダリングする方法を確認できます。分割画面ビューを使用すると、同じページに適用された複数のフォーム・ファクタを確認することもできます。
フォーム・ファクタを構成するには:
MAF AMXページおよびMAFタスク・フローの作成
アプリケーションのユーザー・インタフェースは、1つの機能またはアプリケーション全体で使用できるMAF AMXページを使用して作成します。AMXページ間の移動には、MAF AMXビュー・ページとその他のアクティビティをシーケンスに編成するMAFタスク・フローを使用します。
「MAF AMXページの作成」で説明されているように、MAF AMXコンポーネントを使用すると、プラットフォーム固有の言語で作成されたページとまったく同じように実行されるページを構築できます。MAF AMXページでは、コンポーネントのリッチなセットを使用してユーザー・インタフェースを宣言的に作成できます。MAF AMXページの宣言的な開発を図に示します。
これらのページは、(MAFアプリケーションを作成し、その中にアプリケーション機能を埋め込む)アプリケーション・アセンブラによって作成される場合や、別の開発者によって作成され、アプリケーション機能またはMAFアプリケーションに対するリソースとしてMAFアプリケーションに組み込まれる場合もあります。
MAF AMXページを作成するプロジェクトによって、このページが単一のアプリケーション機能のユーザー・インタフェース・コンテンツ配信に使用されるのか、またはMAFアプリケーション全体に対するリソースとして使用されるのかが決まります。たとえば、アプリケーション・コントローラ・プロジェクト内で作成されたページは、アプリケーション全体のリソースとして使用されます。
ヒント:
ページの保守を容易にするために、ページをページ・フラグメントと呼ばれる再利用可能なセグメントに分割できます。MAF AMXページは、1つ以上のページ・フラグメントで構成されます。
MAFでは、MAFタスク・フローによりMAF AMXビュー・ページおよび他のアクティビティを適切な順序に配置できます。「タスク・フローの作成」で説明されているように、MAFタスク・フローはアプリケーションのフローを視覚的に表現したものです。これは、(次の図に示すWorkBetterサンプル・アプリケーションのデフォルトのListページやDetailページなどのビュー・アクティビティのような) MAF AMXで作成されるユーザー・インタフェース・ページと、マネージドBeanでメソッドをコールできる非視覚的なアクティビティで構成されます。タスク・フローの非ビジュアル的な要素は、EL式の評価または別のタスク・フローの呼出しに使用できます。図に示すように、MAFではタスク・フロー・コンポーネントをダイアグラマにドラッグしてタスク・フローを宣言的に作成できます。MAFには、WorkBetterサンプル・アプリケーションのListページなどの単一のエントリ・ポイントを持つバインド・タスク・フローと、アプリケーション・フローへの複数のエントリ・ポイントを持つバインドなしタスク・フローの2つのタイプのタスク・フローがあります。WorkBetterサンプル・アプリケーションは、開発コンピュータ上のjdev_install
/jdeveloper/jdev/extensions/oracle.maf/Samples
ディレクトリのPublicSamples.zip
ファイル内にあります。
MAFタスク・フロー、AMXページ、MAFページ・フラグメントと呼ばれるMAF AMXページの再利用可能な部分、およびアプリケーション機能を追加するためにMAFに提供されているウィザードを次の図に示します。これらのウィザードにアクセスするには、「アプリケーション」ウィンドウでビュー・コントローラ・プロジェクトまたはアプリケーション・コントローラ・プロジェクトを選択して、「ファイル」→「新規」を選択します。「クライアント層」内の「モバイル・アプリケーション・フレームワーク」を選択した後、いずれかのウィザードを選択します。
MAF AMXページの作成方法
MAF AMXページ・ウィザードを使用して、アプリケーション機能のユーザー・インタフェースに使用されるAMXページや、MAFアプリケーションを構成するアプリケーション機能の間で共有可能なアプリケーション・レベルのリソース(ログイン・ページなど)として使用されるAMXページを作成できます。
アプリケーション機能コンテンツの詳細は、「MAFアプリケーション機能のコンテンツ・タイプの定義」を参照してください。
アプリケーション機能のコンテンツとしてMAF AMXページを作成するには:
-
「アプリケーション」ウィンドウで、ビュー・コントローラ・プロジェクトを右クリックします。
-
「ファイル」→「新規」を選択します。
-
「新規ギャラリ」の「クライアント層」ノードで、「MAF AMXページ」を選択して、「OK」をクリックします。
-
「ファイル名」フィールドに名前を入力して、「MAF AMXページの作成」ダイアログを完了します。「ディレクトリ」フィールドに、ファイルの場所を入力します。この場所は、ビュー・コントローラ・プロジェクトの
public_html
フォルダ内である必要があります。 -
「パネル・ページ」内で、ヘッダーおよびフッターの作成に使用する「ファセット」を選択(または選択解除)します。「OK」をクリックします。
「パネル・ページ・コンポーネントの使用方法」を参照してください。
-
ページ・レイアウトおよび関連するコンテンツ・レイアウト・オプションを有効にするには、「クイック・スタート・レイアウトの使用」チェック・ボックスを選択します。
「コンテンツ・レイアウト」リスト内のオプションは、選択した「ページ・レイアウト」オプションに応じて異なります。MAFは、選択したレイアウト・オプションを使用してAMXページを生成します。
-
生成されるAMXページにサマリー・セクションを含めるには、固定サマリー・ビューの使用を選択チェック・ボックスを選択します。
このセクションをレンダリングする生成されたAMXページ内に、次のようなエントリが表示されます。
<amx:facet name="top"> <amx:panelGroupLayout styleClass="summary-section-style" layout="horizontal" halign="center" id="pgl1"> <amx:outputText value="Summary Section" id="ot11"/> </amx:panelGroupLayout> </amx:facet>
-
MAF AMXページを構築します。AMXコンポーネントの使用の詳細は、「MAF AMXページの作成」を参照してください。また、「アプリケーション機能のコンテンツをMAF AMXページまたはタスク・フローとして定義する方法」も参照してください。
MAF AMXアプリケーションに対するリソースとしてMAF AMXページを作成するには:
MAFタスク・フローの作成方法
アプリケーション機能のコンテンツは、MAFタスク・フローとして配信できます。アプリケーション機能のタスク・フローを定義する「MAFタスク・フローの作成」ウィンドウにアクセスして使用する手順を使用してください。
アプリケーション機能のコンテンツとしてMAFタスク・フローを作成するには:
MAF AMXページおよびタスク・フローの作成時に行われる処理
MAF AMXページとタスク・フローを作成すると、それらは、アプリケーション・コントローラ・プロジェクトとビュー・コントローラ・プロジェクトのWebコンテンツにJDeveloperによって追加されます。JDeveloperは、タスク・フローの作成または更新に使用できるadfc-mobileconfig.xml
ファイルを生成します。
JDeveloperは、MAF AMXページとタスク・フローを、ビュー・コントローラ・プロジェクトの「Webコンテンツ」ノードに配置します(図のcustom_springboard.amx
およびViewController-task-flow.xml
を参照。これらは、このプロジェクト内で作成されるタスク・フローのデフォルト名です)。これらのアーティファクトはmaf-feature.xml
ファイル内で参照されています。バインドなしタスク・フローを管理するために、JDeveloperではadfc-mobile-config.xml
ファイルが生成されます。このファイルを使用して、ビュー(ユーザー・インタフェース・ページ)、様々なアクティビティ間の遷移を定義する制御ルール、およびタスク・フローのレンダリング・ロジックを管理するマネージドBeanなどの様々なタスク・フロー・コンポーネントを追加することで、タスク・フローを宣言的に作成または更新できます。
図2-12 アプリケーション・コントローラ・プロジェクトおよびビュー・コントローラ・プロジェクト内のMAF AMXページとタスク・フロー

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