Oracle® Fusion Middleware Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.0 E56274-01 |
|
前 |
次 |
この付録では、デプロイメント時、MAFがどのようにユーザー・プリファレンスを変換するかについて説明します。
このドキュメントには次の項が含まれます。
デプロイメント・ターゲットが呼び出されると、モバイル・アプリケーション・プリファレンスの、モバイル・プラットフォーム表現への変換が行われます。変換後、表C-1で説明されているネーミング・パターンにより、モバイル・プラットフォーム上で各プリファレンスを一意に識別できるようになります。maf-application.xml
およびmaf-feature.xml
ファイル内の各プリファレンス要素は、デプロイメントの前に、その兄弟要素の範囲内で一意に識別される必要があります。
識別子値の例は、次のとおりです。
application.gen.gps.trackGPS
feature.f0.gen.gps.trackGPS
表C-1は、完全修飾されたプリファレンス識別子の生成方法を示しています。
表C-1 プリファレンスに対するMAFのネーミング・パターン
式 | 説明 | 構文 |
---|---|---|
|
モバイル・プラットフォーム表現に変換されたプリファレンス要素の識別子値を表します。 |
|
|
|
<adfmf:preferences> <adfmf:preferenceGroup id="gen"> <adfmf:preferenceGroup id="gps"> <!-- The mobile-platform identifier would be "application.gen.gps.trackGPS" --> <adfmf:preferenceBoolean id="trackGPS"/> </adfmf:preferenceGroup> </adfmf:preferenceGroup> </adfmf:preferences> |
|
|
<adfmf:feature id="f0"> <adfmf:preferences> <adfmf:preferenceGroup id="gen"> <adfmf:preferenceGroup id="gps"> <!-- The mobile-platform identifier would be "feature.f0.gen.gps.trackGPS" --> <adfmf:preferenceBoolean id="trackGPS"/> </adfmf:preferenceGroup> </adfmf:preferenceGroup> </adfmf:preferences> </adfmf:feature> |
表C-1のコード例で引用されている<adfmf:preferences>
要素にはid
属性がなく、そのため、これはどのプリファレンス識別子でも表されません。
MAFのデプロイメントでは、XMLとXLSを使用して、アプリケーション機能とアプリケーション・レベルの両方で定義されているユーザー・プリファレンス・ページを、次の3つのXMLドキュメントに変換します。
preferences.xml
arrays.xml
strings.xml
このファイルには、maf-feature.xml
とmaf-application.xml
の両方のファイルからの変換済のプリファレンスが含まれています。
表C-2は、MAFのプリファレンス定義の、Androidテンプレート・プリファレンスおよびAndroidネイティブ・プリファレンスへのマッピングを示しています。
表C-2 MAFプリファレンスの、Androidプリファレンスへのマッピング
MAFプリファレンス定義 | カスタムまたはAndroidネイティブ・プリファレンス定義(MAFのデプロイメントで使用される) | Androidネイティブ・プリファレンス定義(MAFのデプロイメントで使用されない) |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Preferences.xml
ファイルには、strings.xml
およびarrays.xml
ファイルの両方に格納されている文字列リソースへの参照が含まれています。Android SDKでは、XMLファイル内のリソースの構文を@[<package_name>:]<resource_type>/<resource_name>と定義しています。このファイルには、文字列値への参照だけでなく、リスト・プリファレンスの名前と値のペアも含まれています。XSLは、文字列とリスト・プリファレンスに対して次のものを作成します。
<package_name>
は、リソースが存在するパッケージの名前です(同じパッケージのリソースを参照するときは必要ありません)。参照のこのコンポーネントは使用されません。
<resource_type>
は、リソース・タイプのRサブクラスです。このコンポーネントは、文字列参照の作成時はstring
、リスト・プリファレンスの作成時はarray
の値を持ちます。
<resource_name>
は、XML要素内のandroid:name
属性値です。android:title
属性を指定する場合、このコンポーネントの値は、<PreferenceIdentifier>_title
になります(<PreferenceIdentifier>
の定義については、第C.1項「プリファレンスのネーミング・パターン」を参照してください)。
表C-3と表C-4は、特定のMAFプリファレンスに対するMAF属性の、Androidプリファレンスへのマッピングを示しています。
この表では、
{X}というフォームのエントリ(表C-3の{default}
など)は、Xという名前のMAF属性の値を示しています。
<PreferenceIdentifier>
があるエントリは、第C.1項「プリファレンスのネーミング・パターン」で説明されているとおり、プリファレンス識別子の値を示しています。
アスタリスク(*)が付いている属性は、MAFの名前空間で定義されているカスタムのテンプレート属性であり、preferences.xml
にadfmf:<attributeName>
というフォームで存在している必要があります。それ以外の属性は、Androidの名前空間の一部であり、preferences.xml
にandroid:<attributeName>
として存在している必要があります。
表C-3 MAFプリファレンス属性の、Androidプリファレンスへのマッピング
MAFの属性定義 | テンプレート・カスタムまたはAndroidネイティブ・プリファレンス属性 | Android属性値 | 適用対象 |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
指定された |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
次の場合、maf-application.xml
およびmaf-feature.xml
ファイル用の概要エディタでは、XMLからの属性名と値は除外されます。
属性タイプがxsd:boolean
である。
属性値に<default>
値オプションがある。
ユーザーが値として<default>
を指定している。
XSLは、ブール・タイプのMAF属性と、対応するデフォルト値を認識している必要があります。XSLはその後、適切なAndroidまたはテンプレート・カスタム属性値を指定します(ユーザーによって選択された場合)。
表C-4は、変換されるMAFプリファレンスにdefault
属性が含まれていない場合に、デプロイメントでandroid:defaultValue
属性に対して指定されるものを示しています。
preferences.xml
ファイルには、<PreferenceScreen>
と呼ばれるルート要素があります。Androidテンプレートでは、この要素に次のXML名前空間定義が存在している必要があります。
xmlns:adfmf="http://schemas.android.com/apk/res/<Application Package Name>
ここで、<Application Package Name>
要素は、AndroidManifest.xml
ファイル内にあるものと同じアプリケーション・パッケージ名として定義されます。<Android Package Name>
は、AndroidManifest.xml
ファイルで指定されているAndroidパッケージ名を定義します。詳細は、第4.3.1項「モバイル・アプリケーションのIDおよび表示動作の設定方法」を参照してください。
デプロイメントでは、Androidデプロイメント・プロファイルのアプリケーション・バンドルID値が使用されます(存在する場合)。プロファイルにアプリケーション・バンドルID値が存在しない場合は、maf-application.xml
ファイルに含まれているアプリケーションの表示名およびアプリケーションIDからこの値が取得されます。デプロイメントJavaコードは、この値をXSLドキュメントにパラメータとして渡します。
例C-1は、maf-feature.xml
ファイルに含まれているMAFプリファレンスを示しています。
例C-1 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/jdev/adfmf"> <adfmf:feature id="oracle.hello" name="Hello" icon="oracle.hello/navbar-icon.png" image="oracle.hello/springboard-icon.png"> <adfmf:content id="Hello.Generic"> <adfmf:localHTML url="oracle.hello/index.html"/> </adfmf:content> <adfmf:preferences> <adfmf:preferenceGroup id="prefGroup" label="preference group"> <adfmf:preferenceBoolean id="boolPref" label="boolPref perference" default="true"/> <adfmf:preferenceNumber id="numPref" label="numPref preference" default="1" min="1" max="10"/> <adfmf:preferenceText id="textPref" label="textPref preferences" default="Foo"/> <adfmf:preferenceList id="listPref" label="listPref preference" default="value2"> <adfmf:preferenceValue name="name1" value="value1"/> <adfmf:preferenceValue name="name2" value="value2"/> </adfmf:preferenceList> </adfmf:preferenceGroup> </adfmf:preferences> </adfmf:feature> </adfmf:features>
arrays.xml
ファイルは、preferences.xml
ファイルから参照されるリスト・プリファレンスの名前と値を列挙する文字列配列要素で構成されています。maf-application.xml
およびmaf-feature.xml
ファイルに含まれている各<preferenceList>
要素は、2つの文字列配列要素(1つは名前用、もう1つは値用)に変換されます。たとえば、例C-2に記載されているMAFのpreferenceList
定義は、例C-3に示されているように、arrays.xml
ファイル内の<string-array name="feature.oracle.hello.prefGroup.MyList___entry_values">
および<string-array name="feature.oracle.hello.prefGroup.MyList___entries">
に変換されます。
例C-2 maf-feature.xmlファイルにおけるPreferenceList定義
<adfmf:features xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adfmf="http://xmlns.oracle.com/jdev/adfmf"> <adfmf:feature id="oracle.hello" name="Hello" icon="oracle.hello/navbar-icon.png" image="oracle.hello/springboard-icon.png"> ... <adfmf:preferences> <adfmf:preferenceGroup id="prefGroup"> <adfmf:preferenceList id="MyList" label="My List"> <adfmf:preferenceValue name="name1" value="value1"/> <adfmf:preferenceValue name="name2" value="value2"/> <adfmf:preferenceValue name="name3" value="value3"/> </adfmf:preferenceList> </adfmf:preferenceGroup> </adfmf:preferences> </adfmf:feature> ...
例C-3は、arrays.xml
ファイルに含まれている、<preferenceList>
要素から変換された文字列配列要素のペアを示しています。
例C-3 arrays.xmlにおける、<string-array>要素に変換されたプリファレンス・リスト
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:adfmf="http://schemas.android.com/apk/res/oracle.myandroidapp"> <string-array name="feature_oracle_hello_prefGroup.MyList___entry_values"> <item>name1</item> <item>name2</item> <item>name3</item> </string-array> <string-array name="feature_oracle_hello_prefGroup.MyList___entries"> <item>value1</item> <item>value2</item> <item>value3</item> </string-array> </resources>
例C-4は、preferences.xml
で参照されている<string-arrays>
を示しています。
例C-4 preferences.xmlファイルからのPreferenceList参照
<oracle.adfmf.preferences.AdfMFPreferenceList android:key="feature.oracle.hello.MyList" android:title="@string/feature_oracle_hello_prefGroup.MyList___title" android:entries="@array/feature_oracle_hello_prefGroup.MyList___entries" android:entryValues="@array/feature_oracle_hello_prefGroup.MyList___entry_values" />
例C-5で示されているstrings.xml
ファイルは、preferences.xml
ファイルによって参照される文字列要素、およびmaf-application.xml
およびmaf-feature.xml
ファイルで定義されているリソース・バンドル参照で構成されています。各文字列要素には、文字列および文字列値を一意に識別するname
属性があります。
例C-5 strings.xmlファイル
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:adfmf="http://schemas.android.com/apk/res/oracle.myandroidapp"> ... <string name="feature.PROD.bundle.FeatureName">Products</string> <string name="feature.oracle.hello.prefGroup.MyBooleanPreference___title">My feature boolean pref</string> ... </resources>
文字列のソースがリソース・バンドル文字列への参照でない場合、name
属性の命名規則は<PreferenceIdentifier>___<androidAttributeName>
です。
例C-6 maf-feature.xmlファイルで定義されているリソース・バンドル参照
<adfmf:features xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adfmf="http://xmlns.oracle.com/jdev/adfmf"> <adfmf:loadBundle basename="mobile.ViewControllerBundle" var="bundle"/> <adfmf:feature id="oracle.hello" name="Hello" icon="oracle.hello/navbar-icon.png" image="oracle.hello/springboard-icon.png"> <adfmf:feature id="PROD" name="#{bundle.FeatureName}" icon="openMore.png" image="G.png" credentials="none"> ... <adfmf:preferences> <adfmf:preferenceGroup id="prefGroup"> <adfmf:preferenceBoolean default="true" id="MyBooleanPreference" label="My feature boolean pref"/> </adfmf:preferenceGroup> </adfmf:preferences> </adfmf:feature>
MAFデプロイメントは、表C-4に記載されているMAFプリファレンスを、iOS設定アプリケーションで必要なプリファレンス・リスト(.plist
)ファイル表現に変換します。
表C-5 MAFプリファレンスと、対応するiOS表現
MAFプリファレンス・コンポーネント | iOS表現 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
プリファレンス・リスト(.plist
)ファイルのiOS要件については、iOS Developer Library (http://developer.apple.com/library/ios/navigation/
)で入手できる『Preferences and Settings Programming Guide』を参照してください。