ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発
2.0
E56274-01
  目次へ移動
目次

前
 
次
 

3 モバイル・アプリケーション開発のスタート・ガイド

この章では、Oracle JDeveloperのウィザードおよびツールを使用してOracle Mobile Application Framework (MAF)を使用する基本的なアプリケーションを作成する方法について説明し、さらに、アプリケーションの作成時に自動的に生成されるアーティファクトについても説明します。

この章には次の項が含まれます:

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

MAFはJDeveloperデザインタイム内に統合されているため、単純なモバイル・アプリケーション(およびより複雑なモバイル・アプリケーションの大部分)は、コードを1行も記述することなく作成、デプロイおよびテストできます。

3.2 アプリケーション・ワークスペースの作成

Oracle Mobile Application Framework拡張機能により、JDeveloperには、基本ファイルによって完全なプロジェクトをシードするアプリケーション・テンプレートが提供されています。MAFアプリケーションを作成する最初のステップは、名前を割り当て、ソース・ファイルを保存するディレクトリを指定することです。JDeveloperに用意されているアプリケーション・テンプレートを使用してアプリケーションを作成すると、ワークスペースが必要な構成ファイルとともに自動的に編成され、プロジェクトに含められます。

3.2.1 モバイル・アプリケーション用のワークスペースの作成方法

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

始める前に

MAFアプリケーション拡張機能をダウンロードする必要があります。詳細は、第2.3項「JDeveloperの設定」を参照してください。すべてのターゲット・プラットフォームに対して、MAFアプリケーション拡張機能をダウンロードおよび構成する必要がある場合もあります。

モバイル・アプリケーションを作成するには:

  1. 「ファイル」「新規」「アプリケーション」を選択します。

    図3-1 MAFアプリケーション・テンプレートの選択

    この図は周囲のテキストで説明しています
  2. 図3-1に示す「新規ギャラリ」で、「モバイル・アプリケーション・フレームワーク」を選択して「OK」をクリックします。

  3. 「アプリケーション名」フィールドに、アプリケーションの名前を入力します(図3-2ではMobileApplication)。必要に応じて、「ディレクトリ」フィールドにプロジェクトの新しい場所を入力します。「アプリケーション・パッケージの接頭辞」フィールドに接頭辞を入力することで、アプリケーション・パッケージが一意となるようにします。「次へ」をクリックします。

    アプリケーションは、MAFアプリケーションの最上位構造になります。アプリケーションは、このウィザードの後続ページで定義する様々なプロジェクト層をまとめます。

    図3-2 MAFアプリケーションのネーミング

    この図は周囲のテキストで説明しています
  4. 図3-3に示すように、プロジェクト1の名前ページで、(必要に応じて)アプリケーション・コントローラ・プロジェクトの名前と場所を変更します。変更しない場合は、プロジェクトのデフォルト名、ApplicationControllerをそのまま使用します。このページの「プロジェクトの機能」ウィンドウには、アプリケーション・コントローラ・プロジェクトで使用できるテクノロジがリストされます。

    このプロジェクトにはアプリケーション全体のリソースがすべて格納されます。詳細は、表3-1を参照してください。

    図3-3 アプリケーション・コントローラ・プロジェクトとそのプロジェクト機能

    この図は周囲のテキストで説明しています
  5. 「次へ」をクリックして、アプリケーション・コントローラ・プロジェクトのJava設定ページ(図3-4に示すプロジェクト1のJava設定)に移動します。アプリケーション・コントローラ・プロジェクトのデフォルトのパッケージ名(application)と、Java SOURCEPATHディレクトリ(src)およびJava出力ディレクトリ(classes)の場所を、そのまま使用するか変更します。

    図3-4 アプリケーション・コントローラ・プロジェクトのJava設定の構成

    この図は周囲のテキストで説明しています
  6. 「次へ」をクリックして、必要に応じてビュー・コントローラ・プロジェクトの名前を変更できるプロジェクト2の名前ページに移動します。このページの「プロジェクトの機能」ウィンドウ(図3-5を参照)には、MAFビュー・コントローラ・プロジェクトで使用できるテクノロジがリストされます。ビュー・コントローラ・プロジェクト内で作成されるアーティファクトの詳細は、表3-2を参照してください。

    図3-5 MAFビュー・コントローラ・プロジェクト

    この図は周囲のテキストで説明しています
  7. 「次へ」をクリックします。ビュー・コントローラ・プロジェクトのJava設定ページ(図3-6を参照)で、アプリケーション・コントローラ・プロジェクトのデフォルトのパッケージ名(mobile)と、プロジェクトのJava SOURCEPATHディレクトリ(src)およびJava出力ディレクトリ(classes)の場所を、そのまま使用(または変更)します。

    図3-6 ビュー・コントローラ・プロジェクトのJava設定

    この図は周囲のテキストで説明しています
  8. 「終了」をクリックして、MAFアプリケーションとそのプロジェクトの作成を完了します。


ヒント:

前述の手順に従ってMAFアプリケーションを作成する以外にも、(開発用コンピュータのjdev_install/jdeveloper/jdev/extensions/oracle.maf/Samplesディレクトリ内のPublicSamples.zipファイルにある) HelloWorldサンプル・アプリケーションを開き、アプリケーション作成ウィザードの完了後にJDeveloperによって生成されたアーティファクトを表示できます。


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

MAFアプリケーション・プロジェクトを作成すると、JDeveloperによってアプリケーション・レベルおよびプロジェクト・レベルのアーティファクトが追加され、これらには、「アプリケーション」(図3-7を参照)からアクセスできます。これらのアーティファクトには、2つのスタブ・ディスクリプタ・ファイルが含まれています。1つは、アプリケーション名、アプリケーション・ライフサイクル・リスナー(LifeCycleListenerImpl.java)、埋込みアプリケーション機能用のログイン・サーバー接続など、MAFアプリケーション自体の構成に使用されるファイルで、もう1つは、MAFアプリケーションを構成するアプリケーション機能が記述されたファイルです。これらのファイル(maf-application.xmlおよびmaf-feature.xml)については、第3.2.2.1項「アプリケーション・コントローラ・プロジェクト・レベルのリソースについて」および第3.2.2.3項「ビュー・コントローラ・プロジェクトのリソースについて」でそれぞれ説明します。

JDeveloperでは、DeviceFeaturesデータ・コントロールも作成されます。このデータ・コントロールによってApache Cordova Java APIが抽象化され、MAF AMXとして実装されているアプリケーション機能は、デバイスに埋め込まれている様々なサービスにアクセスできるようになります。さらにJDeveloperは、ApplicationFeaturesデータ・コントロールも作成します。これによってSpringboardページの構築が可能になります。DeviceFeaturesデータ・コントロールによって提供される操作をMAF AMXページにドラッグ・アンド・ドロップすることで(第7.11項「DeviceFeaturesデータ・コントロールの使用方法」を参照)、デバイスに格納されたユーザーのコンタクト先の管理、電子メールとSMSテキスト・メッセージの作成と送信、デバイスの場所の確認、デバイスのカメラの使用、およびデバイスのファイル・システムに格納されたイメージの取得を行う機能を追加します。

図3-7 JDeveloperによって生成されるMAFアプリケーションのアーティファクト

この図は周囲のテキストで説明しています

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

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

図3-8 「アプリケーション・リソース」ペインからアクセスされるモバイル・アプリケーション・アーティファクト

この図は周囲のテキストで説明しています

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


ヒント:

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


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

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

maf-application.xml

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

次に例を示します。

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

MAFアプリケーションを定義できる、スタブXMLアプリケーションの識別子ファイル。ADF Fusion Webアプリケーションのアプリケーション識別子と同様に、このファイルによって、アプリケーションのコンテンツ、ナビゲーション動作およびユーザー認証要件を定義できます。詳細は、第4.2項「モバイル・アプリケーションの構成ファイルについて」を参照してください。

maf-config.xml

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

次に例を示します。

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

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

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

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

次に例を示します。

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

iOSおよびAndroidアプリケーションのデプロイメントに必要とされる一連のイメージ。ここには、アプリケーション・アイコンやスプラッシュ画面のPNGイメージも含まれます。iPhoneなどのiOSデバイスへのデプロイメントでは、様々なサイズのイメージ・セットが必要です。

プロジェクトで提供されるデフォルトのiOSイメージは次のとおりです。

  • デバイスが縦方向と横方向の両方の場合に使用されるイメージ。

  • Retinaディスプレイに使用されるイメージ(つまり、icon.pngおよびicon@2x.png)

  • iPadイメージ(icon-72.png)

これらのイメージをオーバーライドするには、第19.2.4.3項「iOSアプリケーションへのカスタム・イメージの追加」を参照してください。

cacerts

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

次に例を示します。

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

システム全体のキーストアであるcacerts証明書ファイル。JVM 1.4に対するCA証明書を識別します。このファイルは、Java keytoolユーティリティを使用して更新できます。第21.8項「SSLのサポート」で説明するように、keytoolを使用してカスタム証明書ファイルを作成できます。証明書ファイルはすべてSecurityディレクトリ内に配置する必要があります。

logging.properties

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

次に例を示します。

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

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

cvm.properties

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

次に例を示します。

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

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

adf-config.xml

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

次に例を示します。

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

構成サービス・パラメータなど、アプリケーション・レベルの設定の構成に使用します。第9章「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サービス・ポリシー定義を格納します。

sync-config.xml

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

次に例を示します。

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

REST Webサービスから戻されたデータのオフライン・キャッシュの構成ファイル。キャッシュを使用すると、パフォーマンスの向上によってユーザーの操作性が向上するだけでなく、ユーザーはオフライン・モードでの作業中にもデータを読み取ったり表示することができます。詳細は、第3.2.2.2項「sync-config.xmlファイルに関する必知事項」を参照してください。


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

図3-9 アプリケーション・コントローラ・プロジェクト

この図は周囲のテキストで説明しています

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

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

LifeCycleListenerImpl.java

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

次に例を示します。

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

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

maf-skins.xml

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

次に例を示します。

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

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

詳細は、第4.12項「モバイル・アプリケーションのスキニング」を参照してください。

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データ・コントロールの使用方法の詳細は、第7項「バインディングの使用とデータ・コントロールの作成」を参照してください。埋込みアプリケーション機能をコールするSpringboardページを作成できるようにするApplicationFeaturesデータ・コントロールの詳細は、第4.5.5項「MAF AMXコンテンツによるカスタムSpringboardアプリケーション機能に関する必知事項」を参照してください。


3.2.2.2 sync-config.xmlファイルに関する必知事項

キャッシュ機能は、アプリケーション・コード内に実装しなくても、sync-config.xmlファイル内のプロパティを編集して設定できます。例3-1はこのファイルのデフォルト・バージョンを示し、これは、JDeveloperでソース・エディタを使用して更新できます。MAFランタイムは、デプロイ後にこのファイルを読み取ります。通常、MAFではsync-config.xmlファイルがプラットフォーム固有の次の場所にコピーされます。Androidシステムでは、このファイルは次の場所にあります。

application workspace directory/deploy/deployment profile name/deployment profile name.apk/assets/assets.zip/.adf/META-INF/

iOSでは、sync-config.xmlファイルは次の場所にあります。

application workspace directory/deploy/deployment profile name/temporary_xcode_project/assets.zip/.adf/META-INF/

注意:

これはアプリケーション全体のリソースですが、sync-config.xmlファイルを機能アーカイブ(FAR)ファイルに含めることができます。connections.xmlファイルと同様、FARがMAFアプリケーションにより使用されると、そのsync-config.xmlファイルがアプリケーションのsync-config.xmlとマージされます。詳細は、第3.2.2.4項「自動的に生成されるデプロイメント・プロファイルについて」および第4.13.5項「FARを使用したsync-config.xmlファイルの更新に関する必知事項」を参照してください。


例3-1は、デフォルトのsync-config.xmlファイルを示しています。このファイル内のプロパティを使用すると、次のものに対するキャッシュ・ポリシーを構成できます。

  • ほとんど変更されない静的リスト。

  • 頻繁に変更される大規模なコレクション(リスト全体をリフレッシュせずにデルタをフェッチします)。

  • 高度に動的なデータ。結果の文脈依存性が高いため、キャッシュを使用せずにリフレッシュする必要があります。

  • 1対1および1対nのカーディナリティを持つ、個々のリソースおよびその直接の子のキャッシュ。

例3-1 sync-config.xmlファイル

<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://xmlns.oracle.com/sync/config">
  <BaseUri>http://127.0.0.1</BaseUri>
  <AppId/>
  <LazyPersistence/>
  <RefreshPolicy/>
  <DbStorageFolderPath/>
  <FileStorageFolderPath/>
  <Policies>
    <DefaultPolicy>
      <FetchPolicy>FETCH_FROM_SERVICE</FetchPolicy>
      <UpdatePolicy>UPDATE_IF_ONLINE</UpdatePolicy>
      <ExpirationPolicy>NEVER_EXPIRE</ExpirationPolicy>
      <EvictionPolicy>MANUAL_EVICTION</EvictionPolicy>
    </DefaultPolicy>
  </Policies>
</Settings>

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

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


ヒント:

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


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


注意:

MAFビュー・コントローラ・プロジェクトを別のMAFビュー・コントローラ・プロジェクトの依存性またはMAFアプリケーション・コントローラ・プロジェクトの依存性として追加すると、MAFアプリケーションをデプロイできなくなります。詳細は、第4.6.2項「機能参照IDと機能IDに関する必知事項」を参照してください。


図3-10 ビュー・コントローラ・プロジェクト

この図は周囲のテキストで説明しています

表3-3に示すように、これらのリソースには、maf-feature.xmlという名前のアプリケーション機能の構成ファイルが含まれます。

表3-3 ビュー・コントローラのアーティファクト

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

maf-feature.xml

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

次に例を示します。

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

アプリケーション機能を定義できるようにする、スタブXMLの識別子ファイル。詳細は、第4.8項「モバイル・アプリケーション機能の構成ファイルについて」を参照してください。第2.3.1項「プラットフォームとフォーム・ファクタに応じた開発環境の構成方法」の説明に従ってモバイル・プリファレンスを構成した後は、デフォルトのデプロイメント・プロファイル設定を使用して、このアプリケーションをデプロイできます。詳細は、第19章「モバイル・アプリケーションのデプロイ」を参照してください。

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

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

次に例を示します。

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

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


3.2.2.4 自動的に生成されるデプロイメント・プロファイルについて

デプロイメント・プロファイルは、ターゲット環境(モバイル・デバイス、エミュレータ、iOs App Storeのようなアプリケーション・マーケットプレイスなど)にデプロイされるアーカイブにアプリケーションがパッケージ化される方法を定義します。デプロイメント・プロファイルには、次の役割があります。

  • 作成されるアーカイブ・ファイルのフォーマットと内容を指定します。

  • パッケージ対象となるソース・ファイル、デプロイメント・ディスクリプタ、およびその他の補助ファイルをリストします。

  • 作成されるアーカイブ・ファイルのタイプおよび名前を記述します。

  • 依存情報、プラットフォーム固有の指示、およびその他の情報を示します。

アプリケーションを作成すると、MAFによって、デフォルトの設定とイメージ・ファイルでシードされたデプロイメント・プロファイルが生成されます。環境を正しく構成した場合、これらのプロファイルを使用して、MAFアプリケーションを作成直後にデプロイできます。これを行うには、図3-11に示すように、「アプリケーション」を選択した後、「デプロイ」を選択します。

図3-11 デフォルトのデプロイメント・プロファイル

この図は周囲のテキストで説明しています

その後、「デプロイメント・アクション」ページ(図3-12を参照)を使用し、適切なデプロイメント・ターゲットを選択します。

図3-12 デプロイメント・ターゲットの選択

この図は周囲のテキストで説明しています

注意:

iOSおよびAndroidアプリケーションをシミュレータとデバイスにデプロイする場合、それらの環境設定と構成に関する要件はそれぞれ異なります。詳細は、第19.3項「Androidアプリケーションのデプロイ」および第19.4項「iOSアプリケーションのデプロイ」全体の「始める前に」の項を参照してください。


図3-11に示すように、MAFでは、サポートされる両方のプラットフォーム(iOSとAndroid)に対応したアプリケーション・レベルのプロファイルが作成され、それらにiOS1およびAndroid1という名前が付けられます。


注意:

MAFでは、新しいデプロイメント・プロファイルが作成されるたびに、その名前に付加される数字が1ずつ増加します。たとえば、iOS2iOS3のようになります。


これらのプロファイルには、デフォルト値をそのまま使用するか、「アプリケーションのプロパティ」ダイアログの「デプロイメント」ページでプロファイルの名前を選択し、「編集」をクリックすることによって、それらの値を編集することもできます。図3-13は、デフォルトのAndroidアプリケーション・プロファイルの「オプション」ページを示しています。MAFアプリケーション・プロファイル用に構成する値の詳細は、第19.2.3項「Androidデプロイメント・プロファイルの作成方法」および第19.2.4項「iOSデプロイメント・プロファイルの作成方法」を参照してください。

図3-13 デフォルトのデプロイメント・プロファイルの編集

この図は周囲のテキストで説明しています

MAFでは、アプリケーション・コントローラ・プロジェクトとビュー・コントローラ・プロジェクトは、別々の機能アーカイブ(FAR)ファイルとしてパッケージ化されます。このようなMAFファイルのJARファイルは、他のアプリケーションのリソースとして使用されます(第19.5項「機能アーカイブ・ファイル(FAR)のデプロイ」を参照)。MAFでは、これらのFARファイルがMAFアプリケーション・プロファイルへの依存性として作成されるため、「アプリケーションのプロパティ」ダイアログの「プロファイルの依存性」ページを使用して、これらのファイルを追加または除外できます(図3-14を参照)。


注意:

アプリケーション・コントローラ・プロジェクトに含まれるFARプロファイルの依存性は1つである必要があります。そうでない場合、デプロイメントは失敗します。


図3-14 MAFプロジェクトからのFARコンテンツの編集

この図は周囲のテキストで説明しています

「プロジェクト・プロパティ」ダイアログのファイル・グループに関連するページを使用すると、ビュー・コントローラのFARファイルに含まれるコンテンツをカスタマイズできます(図3-15を参照)。「プロジェクト・プロパティ」ダイアログの詳細は、Oracle JDeveloperのオンライン・ヘルプおよびOracle Fusion Middleware Oracle JDeveloperによるアプリケーションの開発のデプロイメント・プロファイルの構成に関する項を参照してください。

図3-15 ビュー・コントローラ・プロジェクトのFARの編集

この図は周囲のテキストで説明しています

MAFでは、プラットフォーム固有のデプロイメント・プロファイルに加えて、MAFアプリケーションをモバイル・アプリケーション・アーカイブ(.maa)・ファイルとしてパッケージ化するために使用できるデプロイメント・プロファイルも作成されます。このファイルを使用すると、.maaファイルとしてパッケージ化された既存のアプリケーションを使用する新しいMAFアプリケーションを作成できます。詳細は、第19.6項「モバイル・アプリケーション・アーカイブ・ファイルの作成」および第19.7項「署名のないデプロイメント・パッケージの作成」を参照してください。

このデプロイメント・ファイルには、MAFアプリケーション名に_archiveが続く形式の名前がデフォルトで付けられます。図3-11に示すように、このプロファイルはEmployees_archiveと呼ばれ、必要に応じ、「アプリケーションのプロパティ」ダイアログを使用して編集できます。

図3-16 「アプリケーションのプロパティ」ダイアログを使用したデフォルトのデプロイメント・プロファイルの編集

この図は周囲のテキストで説明しています

「アプリケーションのプロパティ」ダイアログのページを使用したデプロイメント・プロファイルの編集の詳細は、Oracle Fusion Middleware Oracle JDeveloperによるアプリケーションの開発のデプロイメント・プロファイルのプロパティの表示と変更に関する項と、Oracle JDeveloperオンライン・ヘルプの「アプリケーションのプロパティ」および「プロジェクト・プロパティ」ダイアログに関する項を参照してください。

3.2.3 MAFアプリケーションとアプリケーション機能の編集に関する必知事項

アプリケーションを作成するとmaf-application.xmlファイルが生成され、これによりモバイル・アプリケーションおよびmaf-feature.xmlファイルも構成できるようになります。このファイルを使用して、モバイル・アプリケーション内に埋め込まれるアプリケーション機能を追加、削除または編集します。MAF拡張機能によってこれら両方のファイルに対する概要エディタが提供されているので、これらのファイルを宣言的に変更できます。図3-17に、maf-application.xmlファイルの概要エディタの例を示します。

図3-17 モバイル・アプリケーションの概要エディタ

この図は周囲のテキストで説明しています

図3-17に示すように、maf-application.xmlファイルは、「アプリケーション」ウィンドウの「アプリケーション・リソース」パネルで、「ディスクリプタ」および「ADF META-INF」ノードの下に表示されます。このファイルは、この場所からダブルクリックで開くことができます。このファイルにアクセスすると、JDeveloperによって、関連付けられた概要エディタが開かれるだけでなく、関連するページ・コンポーネントが「コンポーネント」ウィンドウ内に表示されます。これは、エディタの「ソース」ページか「構造」ウィンドウにドラッグ・アンド・ドロップできます(図3-18を参照)。maf-application.xmlページのコンポーネントの詳細は、第4.2項「モバイル・アプリケーションの構成ファイルについて」を参照してください。

図3-18 MAFアプリケーションに対するソース・エディタ、「構造」ウィンドウおよびプロパティ・エディタの使用方法

この図は周囲のテキストで説明しています

図3-19に示すように、maf-feature.xml構成ファイルは、「アプリケーション」ウィンドウの「プロジェクト」パネルで、「view controller」および「META-INF」ノードの下にあります。このファイルを使用して、MAFアプリケーションのコンテンツを構成します。

図3-19 アプリケーション機能の概要エディタ

この図は周囲のテキストで説明しています

maf-application.xmlファイルの概要エディタと同じように、JDeveloperによって、adfmf-features.xml構成ファイルの要素を構築するために使用するMAFコンポーネントが提示されます(第4.8項「モバイル・アプリケーション機能の構成ファイルについて」を参照)。「概要」ページを使用することも、「コンポーネント」ウィンドウからコンポーネントを「構造」ウィンドウまたはソース・エディタ自体へドラッグ・アンド・ドロップすることもできます。maf-feature.xmlファイルを選択すると、JDeveloperによって「コンポーネント」ウィンドウにMAF機能コンポーネントが移入されます。

図3-20 アプリケーション機能に対するソース・エディタ、「構造」ウィンドウおよび「コンポーネント」ウィンドウの使用方法

この図は周囲のテキストで説明しています

3.2.4 MAF AMXアプリケーション用のアプリケーション・ワークスペースの作成

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

図3-21 MAF AMXページの作成

このイメージについては周囲のテキストで説明しています。

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

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


ヒント:

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


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

図3-22 MAFタスク・フロー

このイメージについては周囲のテキストで説明しています。

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

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

この図は周囲のテキストで説明しています

3.2.4.1 MAF AMXページの作成方法

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

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

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

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

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

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

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

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

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

  6. MAF AMXページを作成します。AMXコンポーネントの使用方法の詳細は、第5.3.1.2項「MAF AMXページの作成」を参照してください。第4.10.1項「アプリケーション・コンテンツの定義方法」も参照してください。

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

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

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

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

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

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

    この図は周囲のテキストで説明しています
  5. MAF AMXページを作成します。詳細は、第5.3.1.2項「MAF AMXページの作成」を参照してください。

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

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

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

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

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

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

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

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

    この図は周囲のテキストで説明しています
  5. タスク・フローを構築します。第5.2項「タスク・フローの作成」も参照してください。

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

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

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

この図は周囲のテキストで説明しています

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

3.3 ADFモバイル・アプリケーションの移行

MAFでは、ADFモバイルのバージョン11.1.2.3.0および11.1.2.4.0で作成されたアプリケーションの構成が自動的に移行されます。ADFモバイル・アプリケーションのワークスペース(.jws)・ファイルを開くと、MAFでは、「警告」ダイアログ(図3-28を参照)が開いて、アプリケーションが現行バージョンでないという警告が表示され、移行を続行するか、ダイアログを閉じてファイルを閉じるかを選択するように求められます。

図3-28 「警告」ダイアログ

このイメージについては周囲のテキストで説明しています。

MAFでは、移行ステータスが「ログ」ウィンドウに書き込まれます(図3-29を参照)。移行プロセスで、移行するアプリケーションで古い構成サービスAPIが使用されていることが検出されると、次の警告も記録されます。

The MAF 2.0 Configuration Service API is not backwards compatible with previous
versions and cannot be migrated automatically. Refer to Section 9.3 "Migrating
the Configuration Service API" in Oracle Fusion Middleware Developing Mobile
Applications with Oracle Mobile Application Framework 2.0. for information on
migrating to the new API.

詳細は、第9.6項「構成サービスAPIの移行」を参照してください。

図3-29 移行ログ

このイメージについては周囲のテキストで説明しています。

3.3.1 ADFモバイル・アプリケーションの移行時に行われる処理

表3-4に、移行がADFモバイルのアーティファクトにどのような影響を与えるかを示します。

表3-4 ADFモバイルのアーティファクトおよび構成の移行

ファイル名 変更内容

adfmf-feature.xml

移行によって次の変更が行われます。

  • ファイル名がmaf-feature.xmlに変更されます。

  • credentials属性がsecurityEnabled=trueで置換されます。

  • ハイブリッド接続定義(<authenticationMode value="hybrid"/>)として(localremoteのいずれかとして定義されている) credentials属性定義がconnections.xmlファイル内に複写されます。

adfmf-application.xml

移行によって次の変更が行われます。

  • ファイル名がmaf-application.xmlに変更されます。

  • すべてのデバイス機能およびサービスへのアクセス権が付与されます(access = true)。不要なアクセス権は削除できます。

connections.xml

移行によって、<policy-references>要素で定義されているセキュアなSOAP Webサービス接続がconnections.xmlファイルから削除されます。これらの定義は、wsm-assembly.xmlファイルに移入されます。ADFモバイル・アプリケーションにconnections.xmlファイルが含まれていない場合、移行ではスタブ・ファイルconnections.xmlおよびwsm-assembly.xmlが作成されます。Webサービス・ポリシー定義を持たないconnections.xmlがADFモバイル・アプリケーションに含まれている場合、移行ではスタブ・ファイルwsm-assemblyが作成されます。

adfmf-config.xml

移行によって、ファイル名がmaf-config.xmlに変更されます。また、スキン・ファミリがデフォルト・スキン・ファミリであり、スキン・バージョンが指定されていない場合、そのスキン・ファミリのデフォルトのスキン・バージョンも追加されます。たとえば、次の値が含まれるようにmaf-config.xmlを変更できます。

<skin-family>mobileAlta</skin-family>  <skin-version>v1.1</skin-version>

adfmf-skins.xml

移行によって、ファイル名がmaf-skins.xmlに変更されます。

sync-config.xml

移行によって、このファイルがADF META-INFディレクトリに追加されます。


アプリケーションがADFモバイル・フレームワーク・テクノロジから移行され、モバイル・アプリケーション・フレームワーク・テクノロジがプロジェクト機能として使用されるようになります。図3-30に、モバイル・アプリケーション・フレームワーク・テクノロジを使用するアプリケーション・コントローラ・プロジェクトの「機能」ページを示します。「プロジェクト・プロパティ」「機能」を選択して、このダイアログを表示します。

図3-30 モバイル・アプリケーション・フレームワークのプロジェクト機能

このイメージについては周囲のテキストで説明しています。

MAFでは、ADFモバイル・アプリケーションに対して作成されたアイコン、スプラッシュ画面またはナビゲーション・バーのイメージはオーバーライドされず、アプリケーション・コントローラのresourcesファイル内のイメージ・ファイルが保持されます。同様に、アプリケーション機能に使用されるイメージもすべて保持されます。第3.2.2.1項「アプリケーション・コントローラ・プロジェクト・レベルのリソースについて」も参照してください。

3.3.1.1 Webサービス・ポリシー定義の移行について

MAFでは、Webサービス・ポリシー定義がwsm-assembly.xmlファイルに格納されます。ADFモバイル・アプリケーションはこの情報をconnections.xmlファイルに格納します。例3-2は、connections.xmlファイル内の<policy-references>要素によるoracle/wss_username_token_client_policyを示しています。

例3-2 connections.xmlファイル

<policy-references xmlns="http://oracle.com/adf">policy-reference category="security"
                   uri="oracle/wss_username_token_client_policy"
                   enabled="true"
                   id="oracle/wss_username_token_client_policy" xmlns=""/>
</policy-references>

例3-3は、wsm-assembly.xmlファイル内に定義されたポリシーを示しています。

例3-3 wsm-assembly.xmlファイル

<wsp:PolicyReference xmlns:wsp="http://www.w3.org/ns/ws-policy"                    
                     DigestAlgorithm="http://www.w3.org/ns/ws-policy/Sha1Exc"
                     URI="oracle/wss_username_token_client_policy"
                     orawsp:status="enabled"
                     orawsp:id="2"/>

3.3.2 移行済アプリケーションにおけるFARに関する必知事項

MAFでは、機能アーカイブ(FAR)ファイル内にパッケージ化されたadfmf-feature.xmlファイルは移行されません。移行済アプリケーションで使用されるADFモバイルFARを置換して、FARのmaf-feature.xmlファイル内でcredentials属性がsecurityEnabled=trueで置換されていることを確認します。

アプリケーションの移行後、次の手順を実行します。

  1. 「アプリケーションのプロパティ」→「ライブラリとクラスパス」を選択します。

  2. FARを選択し、「削除」をクリックします。

  3. 第4.13.1項「MAFアプリケーションでのFARコンテンツの使用方法」で説明されているように、移行済ビュー・コントローラが含まれるFARをインポートします。

  4. FARとしてパッケージ化されたビュー・コントローラ・プロジェクトが含まれるADFモバイル・アプリケーションを移行します。


    注意:

    1つのFARにadfmf-feature.xmlファイルとmaf-feature.xmlファイルの両方を含めることはできません。


    1. ビュー・コントローラ・プロジェクトをFARとしてデプロイします。

    2. 第4.13.1項「MAFアプリケーションでのFARコンテンツの使用方法」で説明されているように、FARを移行済アプリケーションにインポートします。

3.3.3 ヘッドレス・モードでのアプリケーションの移行

Oracle JDeveloperには、ojmigrateコマンド行ユーティリティを使用してアプリケーションを移行するための一連のマイグレータが用意されています。ワークスペース(.jws)・ファイル(およびそのすべてのプロジェクト・ファイル)を移行するには、まず、Oracle JDeveloper 12cインストールのjdev\binディレクトリ(Oracle_Home\jdeveloper\jdev\bin)に移動し、コマンド・プロンプトで次のように入力します。

ojmigrate workspace.jws

このコマンドを使用して、1つ以上のワークスペースを移行できます。たとえば、次のように.jwsファイルの場所を入力します。

ojmigrate C:\JDeveloper\mywork\ADFMobileApp1\ADFMobileApp1.jws

          C:\JDeveloper\mywork\ADFMobileApp2\ADFMobileApp2.jws

少数のワークスペース・ファイルはこの方法を使用して移行できますが、複数のファイルは、.jwsファイルの場所がリストされたテキスト・ファイルを使用して移行できます。構文は次のとおりで、テキスト・ファイルの場所の前にアットマーク(@)を付けます。

ojmigrate @file

たとえば、ojmigrate @C:\migrate.txtと入力します。

例3-4は、テキスト・ファイルの内容を示しています(ファイル場所はそれぞれ改行して入力する必要があります)。

例3-4 テキスト・ファイル内の.jwsファイルの場所のリスト

C:\JDeveloper\mywork\ADFMobileApp1\ADFMobileApp1.jws
C:\JDeveloper\mywork\ADFMobileApp2\ADFMobileApp2.jws
C:\JDeveloper\mywork\ADFMobileApp3\ADFMobileApp3.jws
C:\JDeveloper\mywork\ADFMobileApp4\ADFMobileApp4.jws
C:\JDeveloper\mywork\ADFMobileApp5\ADFMobileApp5.jws

ヒント:

LINUXまたはUNIXのfindコマンドを使用して次のように入力すると、テキスト・ファイルに.jwsの場所を自動的に移入できます。

find . -name "*.jws" -printf "%P\n" > filename.txt


このコマンドの実行後、アプリケーションの移行が完了したことを確認します。

テキスト・ファイルにリストされた最初のアプリケーションの移行が失敗した後に移行を停止する場合は、-failFastオプション(ojmigrate -failFast @file)を使用します。このコマンドを使用すると、移行の妨げとなっているエラーを分析できます。

アプリケーションに追加のデータが必要な場合は、次のように-generateDefaultsオプションを使用して、それらのデータを名前/値のペアとしてリストした出力ファイルを作成できます。

ojmigrate -generateDefaults @migrate.txt

アプリケーション・ファイルに追加のデフォルトが必要な場合、-generateDefaultsオプションを使用すると、.jwsファイルに基づく名前のプロパティ・ファイル(workspacefilename.migration.properties)が作成されます。.propertiesファイルを調べて、それに応じて値を変更した後、ojmigrateコマンドを-generateDefaultsオプションなしで使用して(例: ojmigrate @file)、ワークスペースを移行します。