C MAFアプリケーションとプロジェクト・ファイル
この付録の内容は次のとおりです。
MAFアプリケーションとプロジェクト・ファイルの概要
アプリケーションのApplicationControllerプロジェクトとViewControllerプロジェクトに生成されるファイルの内容を理解することは、MAFアプリケーションのデプロイメントに必要なアプリケーション、アプリケーション機能、またはファイルを構成する際に必要になります。
デフォルトで、JDeveloperはMAFアプリケーションを2つのプロジェクト(ApplicationControllerとViewController)とともに作成します。MAFアプリケーションのセキュリティを構成する場合、ApplicationControllerプロジェクトにはアプリケーション全体のリソース(ログイン・ページなど)が格納されます。ViewControllerプロジェクトには、アプリケーション機能のコンテンツとしてレンダリングされる、アプリケーション機能のリソース(HTML、AMX、タスク・フロー・ファイルなど)が格納されます。
複数のMAFアプリケーションで使用するアーティファクトを作成または格納するにはViewControllerプロジェクトを使用します。たとえば、MAFアプリケーションのルック・アンド・フィールを決定するMAFスキンについて考えます。このアーティファクトは複数のMAFアプリケーションで再利用する場合があります。同様に、複数のMAFアプリケーションで複数のデータ・コントロールを共有することが必要な場合があります。このため、MAFアプリケーションに追加のViewControllerプロジェクトを作成して、複数のMAFアプリケーション間で共有するこのようなアーティファクトを格納します。この追加のViewControllerプロジェクトは、「MAFアプリケーション・コンテンツの再使用」の説明に従ってFARにパッケージ化することで再使用できます。
「アプリケーション・コントローラ・プロジェクト・レベルのリソースについて」および「ビュー・コントローラ・プロジェクトのリソースについて」を参照してください。
これらのプロジェクト内には、MAFアプリケーションとアプリケーション機能の構成用ファイル、またはMAFアプリケーションをターゲット・プラットフォームにデプロイする際にそのアプリケーションで必要になるファイルもJDeveloperによって生成されます。例C-1に、新規作成したMAFアプリケーションに対してJDeveloperによって生成されるファイルを示します。
MAFアプリケーションの開発時に最もよく使用されるファイルは、maf-application.xml
ファイル(アプリケーションの構成)とmaf-features.xml
ファイル(機能の構成)の2つです。「MAFアプリケーションの構成ファイルについて」および「MAFアプリケーション機能の構成ファイルについて」を参照してください。
例C-1 新規作成したMAFアプリケーションのファイル
Application1.jws | +---.adf | \---META-INF | adf-config.xml | maf-application.xml | maf-config.xml | maf-plugins.xml | wsm-assembly.xml | +---.data | +---00000000 | | 00000000.jdb | | je.lck | | | \---ApplicationController | \---00000000 | 00000000.jdb | je.lck | +---ApplicationController | | ApplicationController.jpr | | | +---adfmsrc | | +---application | | | DataControls.dcx | | | | | \---META-INF | | adfm.xml | | | +---public_html | \---src | +---application | | LifeCycleListenerImpl.java | | | \---META-INF | maf-skins.xml | +---resources | +---android | | display-hdpi-icon.png | | display-land-hdpi-splashscreen.9.png | | // Additional image files omitted for brevity | | display-xxxhdpi-icon.png | | | +---default | | MissingIcon_144x144.png | | | +---ios | | Default-1104h@2x.png | | Default-568h@2x.png | | Default-667h@2x.png | | Default-Landscape-621@2x.png | | Default-LandscapeRetina.png | | Default-LandscapeRetina@2x.png | | Default-PortraitRetina.png | | Default-PortraitRetina@2x.png | | Default@2x.png | | Icon-120.png | | // Additional image files omitted for brevity | | iTunesArtwork.png | | | +---security | | cacerts | | java.security | | | \---windows | BadgeLogo.scale-100.png | // Additional image files omitted for brevity | splashscreen.scale-100.png | | Square150x150Logo.scale-100.png | | Wide310x150Logo.scale-100.png | // Additional image files omitted for brevity | +---src | \---META-INF | logging.properties | maf.properties | \---ViewController | ViewController.jpr | +---public_html \---src \---META-INF maf-feature.xml
アプリケーション・コントローラ・プロジェクト・レベルのリソースについて
アプリケーション・コントローラ・プロジェクトの各ファイルには、MAFアプリケーションのメタデータについて記述する構成情報が格納されています。これらのファイルには、「アプリケーション」ウィンドウの「アプリケーション・リソース」パネルからアクセスできます。
JDeveloperでは、アプリケーション・コントローラ・プロジェクト内にMAFアプリケーション用のファイルが生成されます。これらのファイル(表C-1を参照)は、MAFアプリケーションのメタデータを記述した構成情報を含んでいます。図に示すように、これらのファイルには「アプリケーション」ウィンドウの「アプリケーション・リソース」ペインからアクセスします。
図C-1 「アプリケーション・リソース」ペインからアクセスされるMAFアプリケーション・アーティファクト

「図C-1 「アプリケーション・リソース」ペインからアクセスされるMAFアプリケーション・アーティファクト」の説明
アプリケーション全体のリソースが含まれるアプリケーション・コントローラ・プロジェクトは、モバイル・デバイスでのアプリケーションの表示方法を構成するためのメタデータ・ファイルが含まれるという点で、MAFアプリケーションのプレゼンテーション・レイヤーを提供しています。このプロジェクトはMAFアプリケーションのセキュリティを指定しており、アプリケーションのログイン・ページ、アプリケーション全体のリソースを含むことができます。アプリケーション・コントローラ・プロジェクトは、本質的には、アプリケーション機能とそのコンテンツを定義するビュー・コントローラ・プロジェクトのコンシューマです。「ビュー・コントローラ・プロジェクトのリソースについて」を参照してください。
表C-1 アプリケーション・リソースを介してアクセスされるMAFアプリケーション・レベルのアーティファクト
アーティファクト | ファイルの場所 | 説明 |
---|---|---|
|
次にその例を示します。
|
アプリケーションレベルの情報を定義するXMLファイル。アプリケーションの内容、ナビゲーションの動作およびそのユーザー認証要件を定義できます。 |
|
次にその例を示します。
|
MAFアプリケーションに使用されるデフォルト・スキンの構成に使用されます。「MAFアプリケーションのスキニング」を参照してください。 |
アプリケーションのイメージ |
|
アプリケーションのデプロイメントに必要とされる一連のイメージ。AndroidおよびWindowsの場合、ここには、アプリケーション・アイコンやスプラッシュ画面のイメージも含まれます。iOSの場合、ここには、アプリケーション・アイコンのイメージも含まれます。iOSデバイスにデプロイするMAFアプリケーションは、HTMLページを起動画面として使用します。 各イメージのファイル名は、その目的を示します。たとえば、Androidリソースに表示される AndroidにデプロイするMAFアプリケーションのアプリケーション・アイコンおよびスプラッシュ画面をオーバーライドする方法は、「Androidアプリケーションへのカスタム・イメージの追加方法」を参照してください。 iOSにデプロイするMAFアプリケーションのアプリケーション・アイコンをオーバーライドする方法は、「iOSアプリケーションへのカスタム・イメージの追加」を参照してください。iOSデバイスの起動画面を変更するには、「iOSでのMAFアプリケーションの起動画面の変更」を参照してください。 |
|
次にその例を示します。
|
システム全体のキーストアである |
|
次にその例を示します。
|
ロギング・レベルやロギング・コンソールなど、アプリケーション・エラーのロギングを設定できます。「ロギングの使用方法と構成」を参照してください。 |
|
次にその例を示します。
|
JVMの構成ファイル。このファイルを使用して、アプリケーションの起動やヒープ領域の割当て、JavaおよびJavaScriptのデバッグ・オプションを構成します。「JavaコードおよびJavaScriptのデバッグを有効にする方法」を参照してください。 |
|
次にその例を示します。
|
構成サービス・パラメータなど、アプリケーション・レベルの設定の構成に使用します。「MAFアプリケーションで使用するエンド・ポイントの構成」も参照してください。 |
|
次にその例を示します。
|
MAFアプリケーションで定義されているすべての接続のリポジトリ。 |
|
次にその例を示します。
|
保護されたWebサービスに使用されるWebサービス・ポリシー定義を格納します。 |
ヒント:
アプリケーション・コントローラ・プロジェクト内には、アプリケーション・レベルのライフサイクル・リスナーなど、アプリケーション全体の機能をサポートするコードを配置してください。
JDeveloperでは、アプリケーション・コントローラ・プロジェクト自体の中に、表C-2にリストされたアーティファクトが作成されます。
表C-2 アプリケーション・コントローラのアーティファクト
アーティファクト | ファイルの場所 | 説明 |
---|---|---|
|
次にその例を示します。
|
MAFアプリケーションのデフォルトのアプリケーション・ライフサイクル・リスナー(ALCL)。 「MAFアプリケーションでのライフサイクル・リスナーの使用方法」を参照してください。 |
|
次にその例を示します。
|
使用可能なスキンを定義するもので、新しいスキンを定義することもできます。 「MAFアプリケーションのスキニング」を参照してください。 |
|
次にその例を示します。
|
|
|
次にその例を示します。
|
データ・コントロールのレジストリ。DeviceFeaturesデータ・コントロールの使用方法の詳細は、「MAF AMXでのバインディングの使用とデータ・コントロールの作成」を参照してください。埋込みアプリケーション機能をコールするSpringboardページを作成できるApplicationFeaturesデータ・コントロールの詳細は、「MAF AMXコンテンツによるカスタムSpringboardアプリケーション機能に関する必知事項」を参照してください。 |
ビュー・コントローラ・プロジェクトのリソースについて
ビュー・コントローラ・プロジェクトのメタデータ・ファイルには、アプリケーション機能レベルのリソースが記述されています。これらのファイルは、別のアプリケーションで再利用できます。
ビュー・コントローラ・プロジェクト(ViewControll
というデフォルト名で生成されます)には、アプリケーション機能のリソースが格納されます。アプリケーション・コントローラ・プロジェクトとは異なり、ビュー・コントローラ・プロジェクトのメタデータ・ファイルでは、アプリケーション機能レベルのリソース、特に、実行時にモバイル・デバイスでMAFアプリケーション自体のSpringboard内またはそのナビゲーション・バーに表示できるように1つのMAFアプリケーションに集約可能な様々なアプリケーション機能が記述されます。さらに、アプリケーション機能のメタデータ・ファイルでは、アプリケーション機能をHTMLページとMAF AMXページのどちらで構成するのかが記述されます。また、ビュー・コントローラ・プロジェクトには、これらのアプリケーション・ページと、アプリケーション機能レベルのリソース(MAFアプリケーション用に定義された、Springboardおよびナビゲーション・バー上のアプリケーション機能を表すアイコン・イメージなど)を含めることができます。
ヒント:
ビュー・コントローラ・プロジェクト内には、アプリケーション機能に固有のコードを格納します。アプリケーション・コントローラ・プロジェクトは、(特に別々のビュー・コントローラ・プロジェクト内で定義されている)アプリケーション機能間で共有されるコードの場所として使用してください。
ビュー・コントローラ・プロジェクトは、「MAFアプリケーション・コンテンツの再使用」で説明されているように、アプリケーション・コントローラ・プロジェクトから分離して、他のMAFアプリケーションで再使用するためのアーカイブ・ファイルとしてデプロイできます。また、稀なケースとして、アプリケーション・コントローラ・プロジェクトが複数のビュー・コントローラ・プロジェクトを使用することもできます。
注意:
MAFビュー・コントローラ・プロジェクトを別のMAFビュー・コントローラ・プロジェクトの依存性またはMAFアプリケーション・コントローラ・プロジェクトの依存性として追加すると、MAFアプリケーションをデプロイできなくなります。「機能参照IDと機能IDに関する必知事項」を参照してください。
表C-3に示すように、これらのリソースには、maf-feature.xml
という名前のアプリケーション機能の構成ファイルが含まれます。
表C-3 ビュー・コントローラのアーティファクト
アーティファクト | ファイルの場所 | 説明 |
---|---|---|
|
次にその例を示します。
|
アプリケーション機能を定義できるようにする、スタブXMLの識別子ファイル。『Oracle Mobile Application Frameworkのインストール』の説明に従ってモバイル・プリファレンスを構成したら、デフォルトのデプロイメント・プロファイル設定を使用してこのアプリケーションをデプロイできます。「MAFアプリケーションのデプロイ」を参照してください。 |
アプリケーション固有のコンテンツ |
次にその例を示します。
|
|
MAFアプリケーションの構成ファイルについて
maf-application.xml
ファイルは、MAFアプリケーションの基本構成を指定するだけでなく、ユーザーがMAFアプリケーションのユーザー・プリファレンス・ページを作成する際にも役立ちます。
maf-application.xml
ファイルでは、表示名と一意のアプリケーションID (名前の競合を防ぐ)を指定し、実行時にMAFアプリケーションのSpringboardに表示するアプリケーション機能を選択することで、MAFアプリケーションの基本構成を指定します。さらに、maf-application.xml
ファイルでは、MAFアプリケーションのユーザー・プリファレンス・ページも作成できます。
このファイルは、「MAFアプリケーションの作成」で説明されているように、アプリケーション作成ウィザードの完了後にJDeveloperによって生成されるもので、表C-4に示す要素が含まれています。
表C-4 アプリケーション識別子ファイルの要素
要素 | 説明 |
---|---|
|
|
|
アプリケーションの説明。 |
|
機能参照は、FAR (機能アーカイブ・ファイル)にパッケージ化されているか、 |
|
ユーザー・プリファレンスのオプションおよび動作をアプリケーション・レベルで設定できます。 |
|
アプリケーション機能のログイン・ページを設定できます。「MAFアプリケーションの保護」を参照してください。 |
|
ナビゲーション・バーとSpringboardの動作を定義できます。Springboardはホーム・ページで、ここには、埋め込まれたアプリケーション機能のすべてのアプリケーション・アイコンとラベルがリスト・ビューに整理されて表示されます。Springboardには、ユーザーが使用可能なすべてのアプリケーションの最上位のビューが表示されます。ユーザーは内容に目を通してアプリケーションを選択できます。「アプリケーションのナビゲーションの構成」を参照してください。 |
MAFアプリケーション機能の構成ファイルについて
maf-feature.xml
ファイルでは、MAFアプリケーションのmaf-application.xml
ファイル内の<adfmf:featureReference>
要素によって参照されるアプリケーション機能を構成します。
例C-2は、WorkBetterサンプル・アプリケーションのmaf-feature.xml
ファイル内に含まれている、人々および組織というアプリケーション機能を示しています。
maf-feature.xml
ファイル内の<adfmf:features>
ルート要素では、1つ以上の<adfmf:feature>
要素を使用して、MAFアプリケーションのアプリケーション機能のプロパティを定義します。例C-2では、WorkBetterサンプル・アプリケーションの人々および組織アプリケーション機能の名前とID、およびアイコン(スプリングボードとナビゲーション・バーでこれらのアプリケーション機能を表す)を定義するプロパティの値を指定します。さらに、<adfmf:feature>
要素では、アプリケーション機能用にレンダリングされるコンテンツも参照します。人々および組織アプリケーション機能では、タスク・フロー、.CSS
および.JS
の各ファイルを参照しています。
MAFアプリケーションはアプリケーション機能レベルでセキュリティを実装します。アプリケーション機能を保護するための1つの手段は、エンド・ユーザーがアプリケーション機能へアクセスできるようになる前に認証を要求することです。これを行うには、maf-feature.xml
ファイルでアプリケーション機能の「セキュリティ有効化」プロパティ(securityEnabled
)を構成します。「MAFアプリケーションのセキュリティの構成」を参照してください。
表C-5 <Feature>要素の子要素
要素 | 説明 |
---|---|
|
特定のデバイスやユーザーに対してアプリケーション機能で使用される形式を記述します。アプリケーション機能のコンテンツ(通常はユーザー・インタフェース)は、MAF AMXページやHTML5ページとして記述することも、リモートWebサーバー上でホストされるWebページから配信することもできます。コンテンツをWebアプリケーションとして指定する方法の詳細は、「リモートURLを使用したアプリケーション機能コンテンツの実装」を参照してください。 |
|
指定したアプリケーション機能を実行時にアプリケーションに表示できるようにするかどうかを決定します。制約を使用すると、ユーザー・ロールやデバイスのプロパティなどの基準に基づいてアプリケーション機能の使用を許可または回避できます。「アプリケーション機能に関する制約の設定」を参照してください。 |
例C-2 WorkBetterサンプル・アプリケーションのmaf-feature.xmlファイル
<?xml version="1.0" encoding="UTF-8" ?> <adfmf:features xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adfmf="http://xmlns.oracle.com/adf/mf"> <adfmf:feature id="People" name="People" icon="images/people.png" image="images/people.png"> <adfmf:content id="People.1"> <adfmf:amx file="People/taskflow.xml#taskflow"> <adfmf:includes> <adfmf:include type="StyleSheet" file="css/WorkBetter.css" id="i1"/> <adfmf:include type="JavaScript" file="js/customsearch.js" id="i2"/> </adfmf:includes> </adfmf:amx> </adfmf:content> </adfmf:feature> <adfmf:feature id="Organizations" name="Organizations" icon="images/departments.png" image="images/departments.png"> <adfmf:content id="Organizations.1"> <adfmf:amx file="Organizations/taskflow.xml#taskflow"> <adfmf:includes> <adfmf:include type="StyleSheet" file="css/WorkBetter.css" id="i3"/> <adfmf:include type="JavaScript" file="js/customsearch.js" id="i4"/> </adfmf:includes> </adfmf:amx> </adfmf:content> </adfmf:feature> ... </adfmf:features>