ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Frameworkモバイル開発者ガイド
11g リリース2 (11.1.2.4.0)
B70750-02
  目次へ移動
目次

前
 
次
 

2 ADFモバイル・アプリケーション開発の概要

この章ではADFモバイル・アプリケーションの開発を行う方法を説明します。

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

2.1 ADFモバイル・アプリケーション開発の概要

ADFモバイル・アプリケーションの設計を最適化するために、反復型の段階的な開発プロセスに従うことをお薦めします。

ADFモバイル・アプリケーション自体に加えてアプリケーション機能を開発することが可能ですが、このワークフローは必ずしも標準的ではありません。アプリケーション開発には、ADFモバイル・アプリケーションの作成と、別の開発者が作成可能なアプリケーション機能の埋込みが含まれます。つまり、ADFモバイル・アプリケーションは、開発者が自分で作成したコンテンツと、別の開発者が別途開発してADFモバイル・アプリケーションに統合したコンテンツを結合することで作成します。ADFモバイル・アプリケーション自体と、アプリケーション機能の特定のコンテンツのどちらを作成する場合でも、XcodeまたはAndroidのアプリケーション開発に関する知識は特に必要ありません。

詳細は、第4章「ADFモバイル・アプリケーション開発の開始」を参照してください。

2.2 インフラストラクチャ要件

ターゲットのプラットフォームによって開発ニーズは様々ですが、ADFモバイル・アプリケーションを作成、構築およびテストするための最小要件は次のとおりです。

前提条件の詳細は、第3.2項「ADFモバイル・アプリケーション開発の前提条件」を参照してください。

2.3 サポートされるプラットフォーム、デバイスおよびデータベース

ADFモバイルは、次のプラットフォームをサポートしています。

次のモバイル・デバイスがサポートされています。

動作保証済およびサポート対象のモバイル・デバイスおよびプラットフォームの詳細は、Oracle JDeveloperおよびADFの動作保証およびサポート・マトリクスに記載されている、モバイル・デバイスとオペレーティング・システムに関する項を参照してください。

サポートされるデータベースはSQLiteです(第11章「ローカル・データベースの使用方法」を参照)。

2.4 ADFモバイル・アプリケーションのアーキテクチャ

ADFモバイル・アプリケーションに対して考えられるアーキテクチャは次のとおりです。

詳細は、次を参照してください:

2.5 一般的な開発段階

一般的に、ADFモバイル・アプリケーションを構築するときには、次のアクティビティを実行します。

ADFモバイル・アプリケーションの一般的な構築手順は次のようになります。

  1. 設計段階では、モバイル・ユーザーの実行するタスクを検討します。この際、ハンドヘルド・コンピュータの使用方法はラップトップまたはデスクトップ・コンピュータとは異なることに注意します。ADFモバイル・アプリケーションによってユーザーのジョブ実行を支援する方法や、ユーザーがデバイスと対話する方法について検討します。アプリケーションがすっきりと合理化されるほど、ユーザーの使用が増加します。

    次の手順では、アプリケーションを接続モードと切断モードのどちらで動作させる必要があるのかを決定し、デバイス・サービスの統合要件を理解し、サーバー側のデータ・ソースとプロトコルを決定します。

    サーバー側サービスを設計するときには、モバイル・アクセスの最適化を実現することが非常に重要です。サーバー側のWebサービスが非常に複雑な場合、モバイル・アプリケーションでこれらを使用するのは困難になります。これは、渡されるデータ量のみの問題ではなく、結果を処理するために記述する必要があるクライアント側ロジックの分量の問題でもあります。特にモバイル用に提供されている一連のサーバー側インタフェースを公開することをお薦めします。また、すべてのJavaモジュールや、作成する必要があるデータ・コントロールなど、開発する必要があるクライアント・ビジネス・サービスを理解することも必要です。さらに、アプリケーションのビューやタスク・フローのワイヤフレームを作成することも必要です。これにより、アプリケーション機能を視覚化し、開発プロセスを支援できます。

    設計の最終手順として、全体のアプリケーション機能を、機能グループおよび関連するビューを表す個別のアプリケーション機能にパーティション化する方法を検討する必要があります。これで、ワイヤフレームを作成することで、クライアント・ユーザー・インタフェースとタスク・フローの設計を開始できます。

    詳細は、Fusionアプリケーション: 完璧なユーザーの操作性を実現する新しい標準(http://www.oracle.com/webfolder/ux/applications/Fusion/index.html)を参照してください。

  2. 作業環境を設定するときには、ADFモバイルの拡張機能をダウンロードおよびインストールして、必要なコンポーネントをインストールし、開発およびデプロイに必要な設定を行います。詳細は、第3章「ADFモバイル環境の設定」を参照してください。

  3. JDeveloperを使用してADFモバイル・アプリケーションを作成する場合は、ADFモバイル・アプリケーションの作成ウィザードを使用します。アプリケーション作成の結果として作成されるアーティファクトには、ADFモバイル・アプリケーションおよびアプリケーション機能の識別子ファイル、サポートされるすべてのプラットフォームに対応するアイコンおよびタブのデフォルト・イメージ、およびモバイル・デバイスのサービス(カメラ、GPS、電子メールなど)にアクセスするために使用する一連のデータ・コントロールが含まれます。

    詳細は、次を参照してください:

  4. アプリケーション機能を実装するときには、ビジネス・ニーズの徹底的な評価を行って、ADFモバイル・アプリケーション内に含める必要があるアプリケーション機能を決定します。ADFモバイルが提供する概要エディタを使用する場合、アプリケーション機能を実装するためのタスクには、アプリケーション機能のタイプ(HTML、リモートURL、ADFモバイルAMX)、表示プロパティ(表示名、ナビゲーション・バー、Springboardアイコン)、およびモバイル・デバイスの機能とユーザー・ロールの両方によって指定される表示動作の特定などが含まれます。

    詳細は、次を参照してください:

  5. アプリケーション・デプロイメント段階では、最初に、それぞれのプラットフォームに対応するデバイスとシミュレータをサポートするデプロイメント・プロファイルを作成します。デプロイメント・プロファイルの作成には、ADFモバイル・アプリケーション自体で様々な向き(縦や横など)で使用する表示アイコンの選択や、アプリケーションの署名オプション(デバッグやリリースなど)の設定などが含まれます。

    次に、モバイル・デバイスまたはシミュレータへのアプリケーションのデプロイへと進みます。


    注意:

    ADFモバイル・アプリケーションでは、デバイスまたはシミュレータは、テストとデバッグを行う前にデプロイする必要があります(第19章「ADFモバイル・アプリケーションのテストとデバッグ」を参照)。アプリケーションはデプロイするまで実行できません。


    詳細は、第17章「ADFモバイル・アプリケーションのデプロイ」を参照してください。

  6. テストおよびデバッグ段階では、アプリケーションのテスト、デバッグおよび最適化を行います。詳細は、第19章「ADFモバイル・アプリケーションのテストとデバッグ」を参照してください。

  7. アプリケーションのセキュリティを有効化して構成する場合、通常はOracle Identity Connectサーバーなどのログイン・サーバーの構成が必要です。これは、基本的なHTTP認証メカニズムによって保護されているWebページにすることもできます。さらに、アクセス制御サーバーを設定する必要がある場合もあります。

    詳細は、第18章「ADFモバイル・アプリケーションのセキュリティ」を参照してください。

  8. 基本レベルで想定どおりにアプリケーションが機能することを確認したら、サーバー側データにアクセスするためのJavaコードを実装できます。

    • 接続アプリケーションの場合、これらのJavaクラスによってWebサービスを直接呼び出す必要があります。アプリケーションがSOAPまたはREST XMLベースのデータ・ソースを使用している場合、データ・コントロールを介してWebサービスを呼び出します。この場合は、コードから呼び出すことのできる一連のヘルパー・クラスにより、データ・コントロールを呼び出し、データを戻します。アプリケーションがJSONベースのデータ・ソースを使用している場合、コードによってJSONサービスを直接呼び出してデータを戻し、その後、サーバーでJSONデータを解析して、対応するデータ・コレクションを保持しているオブジェクトに移入する必要があります。

    • 切断されたアプリケーションの場合は、コードによってローカルのSQLiteデータベースにデータを移入する必要があります。次に、Webサービスを直接呼び出すかわりに、ユーザー・インタフェースを支えるコードがSQLiteデータベースからデータを取得できます。

    詳細は、次を参照してください:

  9. 第2回目のデプロイメントでは、アプリケーションにセキュリティを追加し、サーバー側データへのアクセスを有効にした後、アプリケーション・デプロイメントが想定どおりに実行され、アプリケーションで最後のテストおよびデバッグを行う準備ができていることを確認します。

  10. 最終回のテストとデバッグでは、セキュリティとサーバー側データのアクセス機能に重点を置き、これらの機能をアプリケーションと統合したときに、エラーや予期しない動作が発生しないことを確認します。

  11. アプリケーションを本番環境にデプロイする場合、通常は、エンタープライズ・サーバー、Apple App Storeまたはアプリケーション・マーケットプレイス(Google Playなど)への公開が行われます。ADFモバイル・アプリケーションを公開すると、エンド・ユーザーは自分のモバイル・デバイスにダウンロードしたり、指定されたアイコンをタッチしてアクセスできるようになります(付録D「ADFモバイル・アプリケーションの使用方法」を参照)。アプリケーション機能は指定された表示アイコンで表され、エンド・ユーザーやユーザーのデバイスに適した表示が行われます。

2.6 アプリケーションのライフサイクル

ADFモバイル・アプリケーションのライフサイクルは、モバイル・デバイスのオペレーティング・システム、JVMおよびADFモバイルのレベルで発生するイベントによって駆動されます。これらのイベントに対するアプリケーションのリアクションは、oracle.adfmf.application.LifeCycleListenerのメソッドを使用することで有効化されます。詳細は、第5.6項「ライフサイクル・イベント・リスナーについて」を参照してください。

2.7 サンプル・アプリケーション

デプロイメント環境の設定(第3章「ADFモバイル環境の設定」を参照)が完了したら、使用するデプロイメント・コンピュータのjdev_install/jdeveloper/jdev/extensions/oracle.adf.mobile/Samplesディレクトリ内のPublicSamples.zipファイルにあるADFモバイルのサンプル・アプリケーションを実行できます。

サンプル・アプリケーションは次の方法を示しています。

詳細は、付録F「サンプルのADFモバイル・アプリケーション」を参照してください。

2.8 ADFモバイルAMXアプリケーション機能

ADFモバイルAMXは、ADFモバイル内のサブフレームワークで、iOSとAndroidの両方のユーザー操作で適切に動作するアプリケーション機能が作成可能になる一連のレイアウト、フィールド、データ・コンポーネントを提供しています。ADFモバイルAMXは、次のレイヤーに属するいくつかのOracle ADFコンポーネント、データ・コントロール、バインディング、式言語をサポートしています。

モバイル・アプリケーションとWebアプリケーションとは本質的に異なるため、すべてのレイヤーに違いがあります。詳細は、第2.9項「ADFモバイルとサーバー・ベースのOracle ADFとの比較」を参照してください。

2.9 ADFモバイルとサーバー・ベースのOracle ADFとの比較

表2-1では、ADFモバイルによってサポートされる機能、コンポーネント、テクノロジをまとめ、サーバー・ベースのOracle ADFアプリケーションによってサポートされる内容と比較しています。

表2-1 ADFモバイルとサーバー・ベースのOracle ADFアプリケーションとの違い

レイヤー ADFモバイルによってサポートされる内容 サーバー・ベースのOracle ADFによってサポートされる内容

ADFモデル

  • SOAP、REST XMLおよびREST JSONベースのデータ・ソースとデータ・コントロール

  • モデル・レイヤーのJavaのサブセット (たとえば、Java Webサービス・プロキシに対するサポートはありません)

  • JDBC

データ・ソースとデータ・コントロールの全範囲

ビュー

  • ローカルでレンダリングされたADFモバイルAMXまたはカスタムのHTML5ページ

  • サーバーでレンダリングされたHTMLページ

  • サーバーでレンダリングされたもののみ

  • ADF Facesリッチ・クライアントおよびTrinidad JSFコンポーネント

コントローラ

ADFモバイルAMXアプリケーション機能の場合(第2.8項「ADFモバイルAMXアプリケーション機能」を参照):

  • Oracle ADFタスク・フロー・コンポーネントのサブセット

  • モバイル・デバイスに存在するロジック

完全なADFタスク・フロー

Javaサポート

JavaME CDCおよびJava 1.4

最新のJavaによるJava EE


表2-1に示すように、ADFモバイルでは、ビュー・レイヤーで、ユーザー・インタフェースの表示のためにローカルでレンダリングされたビューを使用するのか、サーバーでレンダリングされたビューを使用するのかを選択できます。ADFモバイルAMXでは、最もシームレスなユーザー・インタフェースを使用できます。サーバー・ベースのOracle ADFの場合、ユーザー・インタフェースはサーバー上でレンダリングされ、主にADF Facesリッチ・クライアント・コンポーネントまたはTrinidadコンポーネントを使用して提供されます。これらは両方ともJSFテクノロジに基づいています。

コントローラ・レイヤーでは、モバイル・アプリケーションでADFモバイルAMXコンテンツが使用されると、コンポーネントのサブセットをサポートするADFタスク・フローの短縮版が提供されます。ADFモバイルのタスク・フローでは、ビュー、制御フロー・ケース、ワイルド・カード、ワイルドカード制御フロー・ケース、メソッド・コールおよびルーターがサポートされますが、リージョンはサポートされません。ADFモバイルでは、ページ・フロー・ロジック全体がモバイル・デバイスに存在しているため、サーバーにラウンドトリップすることなくページのナビゲーションを行うことができます。

ADFモバイルは、ADFモデル・レイヤーで、SOAP、REST XMLおよびREST JSONをサーバー側のデータ・ソースとしてサポートします。また、ADFモバイルは、ローカル・データベースへのJDBC接続とAPIをサポートしますが、ADFビジネス・コンポーネントはサポートしません。さらに、ADFモバイルは、サーバー・ベースのADFによってサポートされるJavaメソッドをすべて実装するわけではありません。たとえば、プログラムによるアクセス・バインディング・コンテキストは使用できません。そのかわり、式言語(EL)の式を呼び出すことで、バインディング・データにアクセスできます。また、ADFモバイルは、WebサービスにプログラムによってアクセスするためにWebサービスのJavaプロキシをサポートしていないので、データ・コントロールをWebサービス起動ヘルパー・クラスと組み合せて使用する必要があります。

Javaのサポートのために、ADFモバイルの埋込みJava仮想マシンはJavaME CDC仕様に従っています。この仕様はJava 1.4に基づいているため、Java 1.5以上の機能はJavaコード内で使用できません。