ヘッダーをスキップ

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

前 | 次 |

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

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

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

- 第C.1項「MAFアプリケーションとプロジェクト・ファイルの概要」

- 第C.2項「アプリケーション・コントローラ・プロジェクト・レベルのリソースについて」

- 第C.3項「ビュー・コントローラ・プロジェクトのリソースについて」

- 第C.4項「MAFアプリケーションの構成ファイルについて」

- 第C.5項「MAFアプリケーション機能の構成ファイルについて」

## C.1 MAFアプリケーションとプロジェクト・ファイルの概要

デフォルトで、JDeveloperはMAFアプリケーションを2つのプロジェクト(ApplicationControllerとViewController)とともに作成します。MAFアプリケーションのセキュリティを構成する場合、ApplicationControllerプロジェクトにはアプリケーション全体のリソース(ログイン・ページなど)が格納されます。ViewControllerプロジェクトには、アプリケーション機能のコンテンツとしてレンダリングされる、アプリケーション機能のリソース(HTML、AMX、タスク・フロー・ファイルなど)が格納されます。これらのプロジェクトの詳細は、第C.2項「アプリケーション・コントローラ・プロジェクト・レベルのリソースについて」および第C.3項「ビュー・コントローラ・プロジェクトのリソースについて」を参照してください。

これらのプロジェクト内には、MAFアプリケーションとアプリケーション機能の構成用ファイル、またはMAFアプリケーションをターゲット・プラットフォームにデプロイする際にそのアプリケーションで必要になるファイルもJDeveloperによって生成されます。例C-1に、新規作成したMAFアプリケーションに対してJDeveloperによって生成されるファイルを示します。

MAFアプリケーションの開発時に最もよく使用されるファイルは、`maf-application.xml`ファイル(アプリケーションの構成)と`maf-features.xml`ファイル(機能の構成)の2つです。これらのファイルの詳細は、第C.4項「MAFアプリケーションの構成ファイルについて」および第C.5項「MAFアプリケーション機能の構成ファイルについて」を参照してください。

例C-1 新規作成したMAFアプリケーションのファイル

    RootApplicationDirectory
    |   MAFApplication.jws
    |
    +---.adf
    |   \---META-INF
    |           adf-config.xml
    |           maf-application.xml
    |           maf-config.xml
    |           maf-plugins.xml
    |           sync-config.xml
    |
    +---.data
    |   \---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
    |   |       // Additional image files omitted for brevity
    |   |       display-xhdpi-icon.png
    |   |
    |   +---default
    |   |       MissingIcon_144x144.png
    |   |
    |   +---ios
    |   |       Default-1104h@2x.png
    |   |       // Additional image files omitted for brevity
    |   |       iTunesArtwork.png
    |   |
    |   \---security
    |           cacerts
    |
    +---src
    |   \---META-INF
    |           logging.properties
    |           maf.properties
    |
    \---ViewController
        |   ViewController.jpr
        |
        +---public_html
        \---src
            \---META-INF
                    maf-feature.xml

## C.2 アプリケーション・コントローラ・プロジェクト・レベルのリソースについて

JDeveloperでは、アプリケーション・コントローラ・プロジェクト内にMAFアプリケーション用のファイルが生成されます。これらのファイル(表C-1を参照)は、MAFアプリケーションのメタデータを記述した構成情報を含んでいます。これらのファイルには、「アプリケーション」ウィンドウの「アプリケーション・リソース」ペイン(図C-1を参照)からアクセスします。

図C-1 「アプリケーション・リソース」ペインからアクセスされるMAFアプリケーション・アーティファクト

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

表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アプリケーションに使用されるデフォルト・スキンの構成に使用されます。詳細は、第7章「MAFアプリケーションのスキニング」を参照してください。
アプリケーション・イメージ | `アプリケーション・ワークスペース・ディレクトリ`\`Application Resources\resources\ios` 次に例を示します。 `JDeveloper\mywork\アプリケーション名\resources\ios` | iOSおよびAndroidアプリケーションのデプロイメントに必要とされる一連のイメージ。ここには、アプリケーション・アイコンやスプラッシュ画面のPNGイメージも含まれます。iPhoneなどのiOSデバイスへのデプロイメントでは、様々なサイズのイメージ・セットが必要です。 プロジェクトで提供されるデフォルトのiOSイメージは次のとおりです。 デバイスが縦方向と横方向の両方の場合に使用されるイメージ。 Retinaディスプレイに使用されるイメージ(つまり、`icon.png`および`icon@2x.png`) iPadイメージ(`icon-72.png`) これらのイメージをオーバーライドするには、第27.2.5.3項「iOSアプリケーションへのカスタム・イメージの追加」を参照してください。
`cacerts` | `アプリケーション・ワークスペース・ディレクトリ`\`Application Resources\resources\Security\cacerts` 次に例を示します。 `JDeveloper\mywork\アプリケーション名\resources\Security\cacerts` | システム全体のキーストアである`cacerts`証明書ファイル。Java仮想マシン(JVM)に対するCA証明書を識別します。このファイルは、Java keytoolユーティリティを使用して更新できます。第29.8項「SSLのサポート」で説明するように、keytoolを使用してカスタム証明書ファイルを作成できます。証明書ファイルはすべて`Security`ディレクトリ内に配置する必要があります。
`logging.properties` | `アプリケーション・ワークスペース・ディレクトリ``\ src\.META-INF\logging.properties` 次に例を示します。 `JDeveloper\mywork\アプリケーション名\src\META-INF\logging.properties` | ロギング・レベルやロギング・コンソールなど、アプリケーション・エラーのロギングを設定できます。詳細は、第30.4項「ロギングの使用方法と構成」を参照してください。
`maf.properties` | `アプリケーション・ワークスペース・ディレクトリ``\src\.META-INF\maf.properties` 次に例を示します。 `JDeveloper\mywork\アプリケーション名\src\META-INF\maf.properties` | JVMの構成ファイル。このファイルを使用して、アプリケーションの起動やヒープ領域の割当て、JavaおよびJavaScriptのデバッグ・オプションを構成します。詳細は、第30.3.5項「JavaコードおよびJavaScriptのデバッグを有効にする方法」を参照してください。
`adf-config.xml` | `アプリケーション・ワークスペース・ディレクトリ``\.adf\META-INF` 次に例を示します。 `JDeveloper\mywork\アプリケーション名\.adf\META-INF` | 構成サービス・パラメータなど、アプリケーション・レベルの設定の構成に使用します。第16章「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)。 詳細は、第11章「MAFアプリケーションでのライフサイクル・リスナーの使用方法」を参照してください。
`maf-skins.xml` | `アプリケーション・ワークスペース・ディレクトリ``\ApplicationController\src\META-INF` 次に例を示します。 `JDeveloper\mywork\アプリケーション名\ApplicationController\src\META-INF` | 使用可能なスキンを定義するもので、新しいスキンを定義することもできます。 詳細は、第7章「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データ・コントロールの使用方法の詳細は、第14項「MAF AMXでのバインディングの使用とデータ・コントロールの作成」を参照してください。埋込みアプリケーション機能をコールするSpringboardページを作成できるようにするApplicationFeaturesデータ・コントロールの詳細は、第4.6項「MAF AMXコンテンツによるカスタムSpringboardアプリケーション機能に関する必知事項」を参照してください。

## C.3 ビュー・コントローラ・プロジェクトのリソースについて

ビュー・コントローラ・プロジェクト(`ViewControll`というデフォルト名で生成されます)には、アプリケーション機能のリソースが格納されます。アプリケーション・コントローラ・プロジェクトとは異なり、ビュー・コントローラ・プロジェクトのメタデータ・ファイルでは、アプリケーション機能レベルのリソース、特に、実行時にモバイル・デバイスでMAFアプリケーション自体のSpringboard内またはそのナビゲーション・バーに表示できるように1つのMAFアプリケーションに集約可能な様々なアプリケーション機能が記述されます。さらに、アプリケーション機能のメタデータ・ファイルでは、アプリケーション機能をHTMLページとMAF AMXページのどちらで構成するのかが記述されます。また、ビュー・コントローラ・プロジェクトには、これらのアプリケーション・ページと、アプリケーション機能レベルのリソース(MAFアプリケーション用に定義された、Springboardおよびナビゲーション・バー上のアプリケーション機能を表すアイコン・イメージなど)を含めることができます。

ヒント: ビュー・コントローラ・プロジェクト内には、アプリケーション機能に固有のコードを格納します。アプリケーション・コントローラ・プロジェクトは、(特に別々のビュー・コントローラ・プロジェクト内で定義されている)アプリケーション機能間で共有されるコードの場所として使用してください。

ビュー・コントローラ・プロジェクトはアプリケーション・コントローラ・プロジェクトと分離して、別のMAFアプリケーションで再使用できるように、アーカイブ・ファイルとしてデプロイできます(第8章「MAFアプリケーション・コンテンツの再使用」を参照)。また、稀なケースとして、アプリケーション・コントローラ・プロジェクトが複数のビュー・コントローラ・プロジェクトを使用することもできます。

注意: MAFビュー・コントローラ・プロジェクトを別のMAFビュー・コントローラ・プロジェクトの依存性またはMAFアプリケーション・コントローラ・プロジェクトの依存性として追加すると、MAFアプリケーションをデプロイできなくなります。詳細は、第2.5.2項「機能参照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のインストール』の説明に従ってモバイル・プリファレンスを構成したら、デフォルトのデプロイメント・プロファイル設定を使用してこのアプリケーションをデプロイできます。詳細は、第27章「MAFアプリケーションのデプロイ」を参照してください。
アプリケーション固有のコンテンツ | `アプリケーション・ワークスペース・ディレクトリ``\ViewController\public_html` 次に例を示します。 `JDeveloper\mywork\アプリケーション名\ViewController\public_html` | `maf-feature.xml`で定義されたアプリケーション機能は、`public_html`ディレクトリに表示されます。モバイル・コンテンツには、MAF AMXページ、CSSファイルおよびタスク・フローを含めることができます。アプリケーション機能に追加するカスタム・イメージは、このディレクトリ内に配置する必要があります。詳細は、第5.4項「外部リソースの選択に関する必知事項」を参照してください。

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

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

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

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

要素 | 説明
--- | ---
`<adfmf:application>` | `maf-application.xml`のルート要素。
`<adfmf:description>` | アプリケーションの説明。
`<adfmf:featureReference>` | 機能参照は、FAR (機能アーカイブ・ファイル)にパッケージ化されているか、`maf-feature.xml`ファイルで定義されているアプリケーション機能のうち、MAFアプリケーションのコンテンツに関連するものを指定します。機能参照を選択することで、MAFアプリケーションの特性とコンテンツを定義します。FARの詳細は、第8章「MAFアプリケーション・コンテンツの再使用」を参照してください。
`<adfmf:preferences>` | ユーザー・プリファレンスのオプションおよび動作をアプリケーション・レベルで設定できます。`maf-feature.xml`ファイル内のアプリケーション機能に対するユーザー・プリファレンスの表示および動作方法も設定できます。詳細は、第21章「ユーザー・プリファレンスの有効化」を参照してください。
`<adfmf:login>` | アプリケーション機能のログイン・ページを設定できます。詳細は、第29章「MAFアプリケーションの保護」を参照してください。
`<adfmf:navigation>` | ナビゲーション・バーとSpringboardの動作を定義できます。Springboardはホーム・ページで、ここには、埋め込まれたアプリケーション機能のすべてのアプリケーション・アイコンとラベルがリスト・ビューに整理されて表示されます。Springboardには、ユーザーが使用可能なすべてのアプリケーションの最上位のビューが表示されます。ユーザーは内容に目を通してアプリケーションを選択できます。詳細は、第4章「アプリケーションのナビゲーションの構成方法」を参照してください。

## C.5 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、およびアイコン(Springboardとナビゲーション・バーでこれらのアプリケーション機能を表す)を定義するプロパティの値を指定します。さらに、`<adfmf:feature>`要素では、アプリケーション機能用にレンダリングされるコンテンツも参照します。人々および組織アプリケーション機能では、タスク・フロー、`.CSS`および`.JS`の各ファイルを参照しています。

MAFアプリケーションはアプリケーション機能レベルでセキュリティを実装します。アプリケーション機能を保護するための1つの手段は、エンド・ユーザーがアプリケーション機能へアクセスできるようになる前に認証を要求することです。これを行うには、`maf-feature.xml`ファイルでアプリケーション機能の「セキュリティ有効化」プロパティ(`securityEnabled`)を構成します。詳細は、第29.5項「MAFアプリケーションのセキュリティの構成」を参照してください。

表C-5 <Feature>要素の子要素

要素 | 説明
--- | ---
`<adfmf:content>` | 特定のデバイスやユーザーに対してアプリケーション機能で使用される形式を記述します。アプリケーション機能のコンテンツ(通常はユーザー・インタフェース)は、MAF AMXページやHTML5ページとして記述することも、リモートWebサーバー上でホストされるWebページから配信することもできます。コンテンツをWebアプリケーションとして指定する方法の詳細は、第20章「リモートURLを使用したアプリケーション機能コンテンツの実装」を参照してください。
`<adfmf:constraint>` | 指定したアプリケーション機能を実行時にアプリケーションに表示できるようにするかどうかを決定します。制約を使用すると、ユーザー・ロールやデバイスのプロパティなどの基準に基づいてアプリケーション機能の使用を許可または回避できます。詳細は、第22章「アプリケーション機能に関する制約の設定」を参照してください。

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