C MAFアプリケーションとプロジェクト・ファイル

この付録では、モバイル・アプリケーション・フレームワークのアプリケーション・テンプレートを使用してMAFアプリケーションを作成する際に、JDeveloperによって生成されるファイルについて説明します。

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

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の説明が続きます
「図C-1 「アプリケーション・リソース」ペインからアクセスされるMAFアプリケーション・アーティファクト」の説明

アプリケーション全体のリソースが含まれるアプリケーション・コントローラ・プロジェクトは、モバイル・デバイスでのアプリケーションの表示方法を構成するためのメタデータ・ファイルが含まれるという点で、MAFアプリケーションのプレゼンテーション・レイヤーを提供しています。このプロジェクトはMAFアプリケーションのセキュリティを指定しており、アプリケーションのログイン・ページ、アプリケーション全体のリソースを含むことができます。アプリケーション・コントローラ・プロジェクトは、本質的には、アプリケーション機能とそのコンテンツを定義するビュー・コントローラ・プロジェクトのコンシューマです。「ビュー・コントローラ・プロジェクトのリソースについて」を参照してください。

表C-1 アプリケーション・リソースを介してアクセスされるMAFアプリケーション・レベルのアーティファクト

アーティファクト ファイルの場所 説明

maf-application.xml

アプリケーション・ワークスペース・ディレクトリ\.adf\Meta-INF

次にその例を示します。

JDevloper\mywork\アプリケーション名\.adf\META-INF

アプリケーションレベルの情報を定義するXMLファイル。アプリケーションの内容、ナビゲーションの動作およびそのユーザー認証要件を定義できます。

maf-config.xml

アプリケーション・ワークスペース・ディレクトリ\.adf\Meta-INF

次にその例を示します。

JDeveloper\mywork\アプリケーション名\.adf\META-INF

MAFアプリケーションに使用されるデフォルト・スキンの構成に使用されます。「MAFアプリケーションのスキニング」を参照してください。

アプリケーションのイメージ

アプリケーション・ワークスペース・ディレクトリ\Application Resources\resources\

アプリケーションのデプロイメントに必要とされる一連のイメージ。AndroidおよびWindowsの場合、ここには、アプリケーション・アイコンやスプラッシュ画面のイメージも含まれます。iOSの場合、ここには、アプリケーション・アイコンのイメージも含まれます。iOSデバイスにデプロイするMAFアプリケーションは、HTMLページを起動画面として使用します。

各イメージのファイル名は、その目的を示します。たとえば、Androidリソースに表示されるdisplay-port-ldpi-splashscreen.9.pngイメージは、Androidデバイスの横モードのスプラッシュ画面として使用します。

AndroidにデプロイするMAFアプリケーションのアプリケーション・アイコンおよびスプラッシュ画面をオーバーライドする方法は、「Androidアプリケーションへのカスタム・イメージの追加方法」を参照してください。

iOSにデプロイするMAFアプリケーションのアプリケーション・アイコンをオーバーライドする方法は、「iOSアプリケーションへのカスタム・イメージの追加」を参照してください。iOSデバイスの起動画面を変更するには、「iOSでのMAFアプリケーションの起動画面の変更」を参照してください。

cacerts

アプリケーション・ワークスペース・ディレクトリ\Application Resources\resources\Security\cacerts

次にその例を示します。

JDeveloper\mywork\アプリケーション名\resources\Security\cacerts

システム全体のキーストアであるcacerts証明書ファイル。Java仮想マシン(JVM)に対するCA証明書を識別します。このファイルは、Java keytoolユーティリティを使用して更新できます。「SSLのサポート」の説明に従って、keytoolを使用してカスタムの証明書ファイルを作成できます。証明書ファイルは、Securityディレクトリに置く必要があります。

logging.properties

アプリケーション・ワークスペース・ディレクトリ\ src\.META-INF\logging.properties

次にその例を示します。

JDeveloper\mywork\アプリケーション名\src\META-INF\logging.properties

ロギング・レベルやロギング・コンソールなど、アプリケーション・エラーのロギングを設定できます。「ロギングの使用方法と構成」を参照してください。

maf.properties

アプリケーション・ワークスペース・ディレクトリ\src\.META-INF\maf.properties

次にその例を示します。

JDeveloper\mywork\アプリケーション名\src\META-INF\maf.properties

JVMの構成ファイル。このファイルを使用して、アプリケーションの起動やヒープ領域の割当て、JavaおよびJavaScriptのデバッグ・オプションを構成します。「JavaコードおよびJavaScriptのデバッグを有効にする方法」を参照してください。

adf-config.xml

アプリケーション・ワークスペース・ディレクトリ\.adf\META-INF

次にその例を示します。

JDeveloper\mywork\アプリケーション名\.adf\META-INF

構成サービス・パラメータなど、アプリケーション・レベルの設定の構成に使用します。「MAFアプリケーションで使用するエンド・ポイントの構成」も参照してください。

connections.xml

アプリケーション・ワークスペース・ディレクトリ\.adf\META-INF

次にその例を示します。

JDeveloper\mywork\アプリケーション名\.adf\META-INF

MAFアプリケーションで定義されているすべての接続のリポジトリ。

wsm-assembly.xml

アプリケーション・ワークスペース・ディレクトリ\.adf\META-INF

次にその例を示します。

JDeveloper\mywork\アプリケーション名\.adf\META-INF

保護されたWebサービスに使用されるWebサービス・ポリシー定義を格納します。

ヒント:

アプリケーション・コントローラ・プロジェクト内には、アプリケーション・レベルのライフサイクル・リスナーなど、アプリケーション全体の機能をサポートするコードを配置してください。

JDeveloperでは、アプリケーション・コントローラ・プロジェクト自体の中に、表C-2にリストされたアーティファクトが作成されます。

表C-2 アプリケーション・コントローラのアーティファクト

アーティファクト ファイルの場所 説明

LifeCycleListenerImpl.java

アプリケーション・ワークスペース・ディレクトリ\ApplicationController\src\application

次にその例を示します。

JDeveloper\mywork\アプリケーション名\ApplicationController\src\application

MAFアプリケーションのデフォルトのアプリケーション・ライフサイクル・リスナー(ALCL)。

「MAFアプリケーションでのライフサイクル・リスナーの使用方法」を参照してください。

maf-skins.xml

アプリケーション・ワークスペース・ディレクトリ\ApplicationController\src\META-INF

次にその例を示します。

JDeveloper\mywork\アプリケーション名\ApplicationController\src\META-INF

使用可能なスキンを定義するもので、新しいスキンを定義することもできます。

「MAFアプリケーションのスキニング」を参照してください。

adfm.xml

アプリケーション・ワークスペース・ディレクトリ \ApplicationController\adfmsrc\META-INF

次にその例を示します。

JDeveloper\mywork\アプリケーション名\ApplicationController\adfmsrc\META-INF

.cpx.dcx.jpxおよび.xcfgファイル(メタデータのレジストリ)のパス(および相対パス)を維持します。

DataControls.dcx

アプリケーション・ワークスペース・ディレクトリ\ApplicationController\adfmsrc\

次にその例を示します。

JDeveloper\mywork\アプリケーション名\ApplicationController\adfmsrc\

データ・コントロールのレジストリ。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 ビュー・コントローラのアーティファクト

アーティファクト ファイルの場所 説明

maf-feature.xml

アプリケーション・ワークスペース・ディレクトリ\src\META_INF\maf-feature.xml

次にその例を示します。

JDeveloper\mywork\アプリケーション名\ViewController\src\META-INF

アプリケーション機能を定義できるようにする、スタブXMLの識別子ファイル。『Oracle Mobile Application Frameworkのインストール』の説明に従ってモバイル・プリファレンスを構成したら、デフォルトのデプロイメント・プロファイル設定を使用してこのアプリケーションをデプロイできます。「MAFアプリケーションのデプロイ」を参照してください。

アプリケーション固有のコンテンツ

アプリケーション・ワークスペース・ディレクトリ\ViewController\public_html

次にその例を示します。

JDeveloper\mywork\アプリケーション名\ViewController\public_html

maf-feature.xmlで定義されたアプリケーション機能は、public_htmlディレクトリに表示されます。モバイル・コンテンツには、MAF AMXページ、CSSファイルおよびタスク・フローを含めることができます。アプリケーション機能に追加するカスタム・イメージは、このディレクトリ内に配置する必要があります。「外部リソースの選択に関する必知事項」を参照してください。

MAFアプリケーションの構成ファイルについて

maf-application.xmlファイルは、MAFアプリケーションの基本構成を指定するだけでなく、ユーザーがMAFアプリケーションのユーザー・プリファレンス・ページを作成する際にも役立ちます。

maf-application.xmlファイルでは、表示名と一意のアプリケーションID (名前の競合を防ぐ)を指定し、実行時にMAFアプリケーションのSpringboardに表示するアプリケーション機能を選択することで、MAFアプリケーションの基本構成を指定します。さらに、maf-application.xmlファイルでは、MAFアプリケーションのユーザー・プリファレンス・ページも作成できます。

このファイルは、「MAFアプリケーションの作成」で説明されているように、アプリケーション作成ウィザードの完了後にJDeveloperによって生成されるもので、表C-4に示す要素が含まれています。

表C-4 アプリケーション識別子ファイルの要素

要素 説明

<adfmf:application>

maf-application.xmlのルート要素。

<adfmf:description>

アプリケーションの説明。

<adfmf:featureReference>

機能参照は、FAR (機能アーカイブ・ファイル)にパッケージ化されているか、maf-feature.xmlファイルで定義されているアプリケーション機能のうち、MAFアプリケーションのコンテンツに関連するものを指定します。機能参照を選択することで、MAFアプリケーションの特性とコンテンツを定義します。「MAFアプリケーション・コンテンツの再使用」を参照してください。

<adfmf:preferences>

ユーザー・プリファレンスのオプションおよび動作をアプリケーション・レベルで設定できます。maf-feature.xmlファイル内のアプリケーション機能に対するユーザー・プリファレンスの表示および動作方法も設定できます。「ユーザー・プリファレンスの有効化」を参照してください。

<adfmf:login>

アプリケーション機能のログイン・ページを設定できます。「MAFアプリケーションの保護」を参照してください。

<adfmf:navigation>

ナビゲーション・バーと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>要素の子要素

要素 説明

<adfmf:content>

特定のデバイスやユーザーに対してアプリケーション機能で使用される形式を記述します。アプリケーション機能のコンテンツ(通常はユーザー・インタフェース)は、MAF AMXページやHTML5ページとして記述することも、リモートWebサーバー上でホストされるWebページから配信することもできます。コンテンツをWebアプリケーションとして指定する方法の詳細は、「リモートURLを使用したアプリケーション機能コンテンツの実装」を参照してください。

<adfmf:constraint>

指定したアプリケーション機能を実行時にアプリケーションに表示できるようにするかどうかを決定します。制約を使用すると、ユーザー・ロールやデバイスのプロパティなどの基準に基づいてアプリケーション機能の使用を許可または回避できます。「アプリケーション機能に関する制約の設定」を参照してください。

例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>