1/33
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
Part I Understanding ADF Mobile
1
Introduction to ADF Mobile
1.1
Introduction to ADF Mobile
1.2
ADF Mobile Runtime Architecture
2
Introduction to ADF Mobile Application Development
2.1
Introduction to ADF Mobile Application Development
2.2
Infrastructure Requirements
2.3
Supported Platforms, Devices, and Databases
2.4
ADF Mobile Application Architecture
2.5
Typical Development Stages
2.6
The Application Lifecycle
2.7
Sample Applications
2.8
ADF Mobile AMX Application Feature
2.9
Comparison of ADF Mobile and Server-Based Oracle ADF
Part II Getting Started
3
Setting Up the ADF Mobile Environment
3.1
Introduction to the ADF Mobile Environment
3.2
Prerequisites for Developing ADF Mobile Applications
3.2.1
What You Need to Create an Application
3.2.2
What You Need to Deploy an ADF Mobile Application to a Development Environment
3.3
Setting Up JDeveloper
3.3.1
How to Configure the Development Environment for Platforms and Form Factors
3.3.1.1
Configuring the Environment for Form Factors
3.3.1.2
Configuring the Environment for Target Platforms
3.4
Setting Up Development Tools for iOS Platform
3.4.1
How to Configure JDeveloper for iOS Development
3.4.2
How to Prepare Xcode
3.4.3
How to Set Up an iPhone or iPad
3.4.4
How to Set Up an iPhone or iPad Simulator
3.5
Setting Up Development Tools for Android Platform
3.5.1
How to Configure JDeveloper for Android Development
3.5.2
How to Install the Android SDK
3.5.3
How to Set Up an Android-Powered Device
3.5.4
How to Set Up an Android Emulator
3.5.4.1
Saving the Emulator State
3.5.4.2
Creating, Saving, and Reusing the SD Card
3.5.4.3
Configuring the Network
3.5.4.4
Configuring the Network Proxy
4
Getting Started with ADF Mobile Application Development
4.1
Introduction to Declarative Development for ADF Mobile Applications
4.2
Creating an Application Workspace
4.2.1
How to Create a Workspace for an ADF Mobile Application
4.2.2
What Happens When You Create an ADF Mobile Application
4.2.2.1
About the Application-Level Resources
4.2.2.2
About the View Controller Project
4.2.3
What You May Need to Know About Editing ADF Mobile Applications and Application Features
4.2.4
Creating an Application Workspace for an ADF Mobile AMX Application
4.2.4.1
How to Create an ADF Mobile AMX Page
4.2.4.2
How to Create ADF Mobile Task Flows
4.2.4.3
What Happens When You Create ADF Mobile AMX Pages and Task Flows
Part III Developing ADF Mobile Applications
5
Defining an ADF Mobile Application
5.1
Introduction to Defining ADF Mobile Applications
5.1.1
Using the Overview Editor for adfmf-applications.xml
5.2
About the Mobile Application Configuration File
5.3
Setting the Basic Information for an ADF Mobile Application
5.3.1
How to Set the ID and Display Behavior for a Mobile Application
5.4
Configuring the Springboard and Navigation Bar Behavior
5.4.1
How to Configure Application Navigation
5.4.2
What Happens When You Configure the Navigation Options
5.4.3
What Happens When You Set the Animation for the Springboard
5.4.4
What You May Need to Know About Custom Springboard Application Features with HTML Content
5.4.5
What You May Need to Know About Custom Springboard Application Features with ADF Mobile AMX Content
5.5
Configuring the Application Features within a Mobile Application
5.5.1
How to Designate the Content for a Mobile Application
5.5.2
What You May Need to Know About Feature Reference IDs and Feature IDs
5.6
About Lifecycle Event Listeners
5.6.1
Events in ADF Mobile Applications
5.6.2
Timing for Mobile Application Events
5.6.3
About Application Feature Lifecycle Listener Classes
5.6.4
Timing for Activate and Deactivate Events in the Application Feature Application Lifecycle
5.7
About the Mobile Feature Application Configuration File
5.8
Setting the Basic Configuration for the Application Feature
5.8.1
How to Define the Basic Information for the Application Feature
5.9
Defining the Content Types for an Application Feature
5.9.1
How to Define the Application Content
5.9.2
What You May Need to Know About Selecting External Resources
5.10
Working with Resource Bundles
5.10.1
How to Create Project-Level Resource Bundles
5.10.2
What Happens When You Add a Resource Bundle
5.10.2.1
What Happens When You Create Project-Level Resource Bundles for ADF Mobile AMX Components
5.10.3
What You May Need to Know About Localizing Image Files
5.10.4
What You May Need to Know About XLIFF Files for iOS Applications
5.10.5
Internationalization for iOS Applications
5.11
Skinning ADF Mobile Applications
5.11.1
About the adfmf-config.xml File
5.11.2
About the adfmf-skins.xml File
5.11.2.1
About the ADF Mobile Skin Identifiers
5.11.3
How to Change the Default Skin Family
5.11.4
Overriding the Default Skin Styles
5.11.4.1
How to Apply New Style Classes to an Application Feature
5.11.4.2
What Happens When You Apply a Skin to a Feature Application
5.11.5
What You May Need to Know About Skinning
5.12
Working with Feature Archive Files
5.12.1
How to Use FAR Content in an ADF Mobile Application
5.12.2
What Happens When You Add a Feature Archive JAR to a Classpath
5.12.3
What You May Need to Know About Enabling the Reuse of Feature Archive Resources
6
Controlling the Display of Application Features
6.1
Using ADF Mobile APIs to Create a Custom Springboard Application Feature
6.2
The ADF Mobile Container Utilities API
6.2.1
Using the JavaScript Callbacks
6.2.2
Using the Container Utilities API
6.2.3
checkforNewConfiguration
6.2.4
getApplicationInformation
6.2.5
gotoDefaultFeature
6.2.6
getFeatures
6.2.7
gotoFeature
6.2.8
getFeatureByName
6.2.9
getFeatureById
6.2.10
resetFeature
6.2.11
gotoSpringboard
6.2.12
hideNavigationBar
6.2.13
showNavigationBar
6.2.14
invokeMethod
6.2.15
invokeContainerJavaScriptFunction
6.3
Accessing Files Using the getDirectoryPathRoot Method
Part IV Creating ADF Mobile AMX Application Features
7
Creating ADF Mobile AMX Pages
7.1
Introduction to the ADF Mobile AMX Application Feature
7.2
Creating Task Flows
7.2.1
How to Create a Task Flow
7.2.2
What You May Need to Know About Supported Activities and Control Flows
7.2.3
What You May Need to Know About the ViewController-task-flow.xml File
7.2.4
What You May Need to Know About the ADF Mobile Task Flow Diagrammer
7.2.5
How to Add ADF Mobile Activities
7.2.6
How to Add View Activities
7.2.7
How to Add a Wildcard Control Flow Rule
7.2.8
How to Enable Page Navigation Using Control Flow Case
7.2.9
How to Specify Action Outcomes Using UI Components
7.2.10
How to Create and Reference Managed Beans
7.2.11
How to Specify the Page Transition Style
7.3
Creating Views
7.3.1
How to Work with ADF Mobile AMX Pages
7.3.1.1
Interpreting the ADF Mobile AMX Page Structure
7.3.1.2
Creating ADF Mobile AMX Pages
7.3.1.3
What Happens When You Create an ADF Mobile AMX Page
7.3.1.4
Using UI Editors
7.3.1.5
Accessing the Page Definition
7.3.2
How to Add UI Components and Data Controls to an ADF Mobile AMX Page
7.3.2.1
Adding UI Components
7.3.2.2
Using the Preview
7.3.2.3
Configuring UI Components
7.3.2.4
Adding Data Controls to the View
7.3.2.5
What You May Need to Know About Element Identifiers and Their Audit
8
Creating ADF Mobile AMX User Interface
8.1
Introduction to Creating UI for ADF Mobile AMX Pages
8.2
Designing the Page Layout
8.2.1
How to Use a View Component
8.2.2
How to Use a Panel Page Component
8.2.3
How to Use a Panel Group Layout Component
8.2.4
How to Use a Panel Form Layout Component
8.2.5
How to Use a Panel Label And Message Component
8.2.6
How to Use a Facet Component
8.2.7
How to Use List View and List Item Components
8.2.7.1
Configuring List View Paging
8.2.7.2
Rearranging List View Items
8.2.7.3
Configuring Layout Using Styles
8.2.7.4
What You May Need to Know About Using a Static List View
8.2.8
How to Use a Popup Component
8.2.9
How to Use a Panel Splitter Component
8.2.10
How to Use a Table Layout Component
8.3
Creating and Using UI Components
8.3.1
How to Use the Input Text Component
8.3.2
How to Use the Input Number Slider Component
8.3.3
How to Use the Input Date Component
8.3.4
How to Use the Output Text Component
8.3.5
How to Use Buttons
8.3.5.1
Displaying Default Style Buttons
8.3.5.2
Displaying Back Style Buttons
8.3.5.3
Displaying Highlight Style Buttons
8.3.5.4
Displaying Alert Style Buttons
8.3.5.5
Using Buttons Within the Application
8.3.5.6
Enabling the Back Button Navigation
8.3.5.7
What You May Need to Know About the Order of Processing Operations and Attributes
8.3.6
How to Use Links
8.3.7
How to Display Images
8.3.8
How to Use the Checkbox Component
8.3.8.1
Support for Checkbox Components on iOS Platform
8.3.8.2
Support for Checkbox Components on Android Platform
8.3.9
How to Use the Select Many Checkbox Component
8.3.9.1
What You May Need to Know About the User Interaction with Select Many Checkbox Component
8.3.10
How to Use the Choice Component
8.3.10.1
What You May Need to Know About the User Interaction with Choice Component on iOS Platform
8.3.10.2
What You May Need to Know About the User Interaction with Choice Component on Android Platform
8.3.10.3
What You May Need to Know About Differences Between Select Items and Select Item Components
8.3.11
How to Use the Select Many Choice Component
8.3.12
How to Use the Boolean Switch Component
8.3.12.1
Support for Boolean Switch Components on iOS Platform
8.3.12.2
Support for Boolean Switch Components on Android Platform
8.3.13
How to Use the Select Button Component
8.3.14
How to Use the Radio Button Component
8.3.15
How to Use Carousel Component
8.3.16
How to Use Verbatim Component
8.3.17
How to Enable Iteration
8.3.18
How to Load a Resource Bundle
8.3.19
How to Use the Action Listener
8.3.20
How to Use the Set Property Listener
8.3.21
How to Convert Date and Time Values
8.3.21.1
What You May Need to Know About Date and Time Patterns
8.3.22
How to Convert Numerical Values
8.4
Enabling Gestures
8.5
Providing Data Visualization
8.5.1
How to Create an Area Chart
8.5.2
How to Create a Bar Chart
8.5.3
How to Create a Horizontal Bar Chart
8.5.4
How to Create a Bubble Chart
8.5.5
How to Create a Combo Chart
8.5.6
How to Create a Line Chart
8.5.7
How to Create a Pie Chart
8.5.8
How to Create a Scatter Chart
8.5.9
How to Create a Spark Chart
8.5.10
How to Create a LED Gauge
8.5.11
How to Create a Status Meter Gauge
8.5.12
How to Create a Dial Gauge
8.5.13
How to Define Child Elements for Chart and Gauge Components
8.5.13.1
Defining Chart Data Item
8.5.13.2
Defining Legend
8.5.13.3
Defining X Axis, YAxis, and Y2Axis
8.5.13.4
Defining Pie Data Item
8.5.13.5
Defining Spark Data Item
8.5.13.6
Defining Reference Object
8.5.13.7
Defining Threshold
8.5.14
How to Create a Geographic Map Component
8.5.14.1
Configuring Geographic Map Components With the Map Provider Information
8.5.15
How to Create a Thematic Map Component
8.5.15.1
How to Define Custom Markers
8.5.15.2
How to Define Isolated Areas
8.5.15.3
How to Enable Initial Zooming
8.5.15.4
How to Define a Custom Base Map
8.5.15.5
How to Apply Custom Styling to the Thematic Map Component
8.5.16
How to Create Databound Data Visualization Components
8.6
Styling UI Components
8.6.1
How to Use Component Attributes to Define Style
8.6.2
What You May Need to Know About Skinning
8.6.3
How to Style Data Visualization Components
8.7
Localizing UI Components
8.8
Understanding ADF Mobile Support for Accessibility
8.8.1
How to Configure UI Components for Accessibility
8.8.2
What You May Need to Know About the Basic WAI-ARIA Terms
8.8.3
What You May Need to Know About the Oracle Global HTML Accessibility Guidelines
8.9
Validating Input
8.10
Using Event Listeners
8.10.1
What You May Need to Know About Constrained Type Attributes for Event Listeners
9
Using Bindings and Creating Data Controls
9.1
Introduction to Binding Layer Components and Data Controls
9.2
Understanding EL Support
9.2.1
ADF Mobile AMX EL Implementation
9.2.1.1
Immediate and Deferred Evaluation
9.2.1.2
Enumerated Types
9.2.2
How to Reference Binding Containers
9.2.3
EL Events
9.2.3.1
Configuration Properties
9.2.4
EL Expression Builder
9.2.4.1
ADF Bindings
9.2.4.2
ADF Managed Beans
9.2.4.3
ADF Mobile Objects
9.2.4.4
Method Expression Builder
9.2.4.5
Non EL-Properties
9.3
Understanding Binding Layer Components
9.3.1
Sequencing
9.3.2
Validation of EL Bindings for ADF Mobile AMX Pages
9.4
Creating and Using the Bean Data Control
9.4.1
What You May Need to Know About Serialization of Bean Class Variables
9.5
Using the DeviceFeatures Data Control
9.5.1
How to Use the getPicture Method
9.5.2
How to Use the SendSMS Method
9.5.3
How to Use the sendEmail Method
9.5.4
How to Use the createContact Method
9.5.5
How to Use the findContacts Method
9.5.6
How to Use the updateContact Method
9.5.7
How to Use the removeContact Method
9.5.8
How to Use the startLocationMonitor Method
9.5.9
Device Properties
9.6
Performing Validation
9.6.1
How to Add Validation Rules
9.6.2
What You May Need to Know About the Validator Metadata
9.7
Data Change Events
10
Using Web Services
10.1
Introduction to Using Web Services
10.2
Creating a Web Service Data Control
10.2.1
How to Create a Web Service Data Control Using SOAP
10.2.2
How to Create a Web Service Data Control Using REST
10.3
Creating a New Web Service Connection
10.4
Adjusting the Endpoint for a Web Service Data Control
10.5
Accessing Secure Web Services
10.5.1
How to Enable Access to SOAP-Based Web Services
10.5.2
How to Enable Access to REST-Based Web Services
10.5.3
What You May Need to Know About Credential Injection
10.5.4
Limitations of Secure WSDL File Usage
10.6
Invoking Web Services From Java
10.6.1
How to Use REST Web Services Adapter
10.6.1.1
Support for Non-Text Responses
10.6.2
What You May Need to Know About Invoking Data Control Operations
10.7
Administering Web Services
10.7.1
What You May Need to Know About the URL Construction
11
Using the Local Database
11.1
Introduction to the Local SQLite Database Usage
11.1.1
Differences Between SQLite and Other Relational Databases
11.1.1.1
Concurrency
11.1.1.2
SQL Support and Interpretation
11.1.1.3
Data Types
11.1.1.4
Database Transactions
11.1.1.5
Authentication
11.2
Using the Local SQLite Database
11.2.1
How to Connect to the Database
11.2.2
How to Use SQL Script to Initialize the Database
11.2.3
How to Initialize the Database on a Desktop
11.2.4
What You May Need to Know About Commit Handling
11.2.5
Limitations of the ADF Mobile's SQLite JDBC Driver
11.2.6
How to Encrypt and Decrypt the Database
Part V Advanced Topics
12
Implementing Application Features as Remote URLs
12.1
Overview of Remote URL Applications
12.2
Overview of Enabling Remote URL Implementations to Access PhoneGap
12.3
Enabling Remote Application to Access Device Services through Whitelists
12.3.1
How to Control Access to Device Capabilities
12.3.2
How to Create a Whitelist
12.3.3
What Happens When You Add Domains to a Whitelist
12.3.4
What You May Need to Know About Remote URLs
12.4
Creating Whitelists for Application Components
12.5
Enabling the Browser Navigation Bar on Remote URL Pages
12.5.1
How to Add the Navigation Bar to a Remote URL Application Feature
12.5.2
What Happens When You Enable the Browser Navigation Buttons for a Remote URL Application Feature
13
Enabling User Preferences
13.1
Creating User Preference Pages for an ADF Mobile Application
13.1.1
How to Create Mobile Application-Level Preferences Pages
13.1.1.1
How to Create a New User Preference Page
13.1.1.2
What Happens When You Add a Preference Page
13.1.1.3
How to Create User Preference Lists
13.1.1.4
What Happens When You Create a Preference List
13.1.1.5
How to Create a Boolean Preference List
13.1.1.6
What Happens When You Add a Boolean Preference
13.1.1.7
How to Add a Text Preference
13.1.1.8
What Happens When You Define a Text Preference
13.1.2
What Happens When You Create an Application-Level Preference Page
13.2
Creating User Preference Pages for Application Features
13.3
Using EL Expressions to Retrieve Stored Values for User Preference Pages
13.3.1
What You May Need to Know About preferenceScope
13.3.2
Reading Preference Values in iOS Native Views
13.4
Platform-Dependent Display Differences
14
Setting Constraints
14.1
Introduction to Constraints
14.2
Defining Constraints for Application Features
14.2.1
How to Define the Constraints for an Application Feature
14.2.2
What Happens When You Define a Constraint
14.2.3
About the property Attribute
14.2.3.1
User Constraints
15
Accessing Data on Oracle Cloud
15.1
Enabling ADF Mobile Applications to Access Data Hosted on Oracle Cloud
15.1.1
How to Authenticate Against Oracle Cloud
15.1.2
How to Create a Web Service Data Control to Access Oracle Java Cloud
15.1.2.1
Configuring the Policy for SOAP-Based Web Services
15.1.3
What Happens When You Deploy an ADF Mobile Application that Accesses Oracle Java Cloud Service
Part VI Completing Your Application
16
Deploying ADF Mobile Applications
16.1
Introduction to Deployment of Mobile Applications
16.1.1
How ADF Mobile Deploys Applications
16.1.1.1
Deployment of Project Libraries
16.1.1.2
Deployment of the JVM 1.4 Libraries
16.2
Working with Deployment Profiles
16.2.1
How to Create a Deployment Profile
16.2.2
What Happens When You Create a Deployment Profile
16.2.3
How to Create an Android Deployment Profile
16.2.3.1
Setting the Options for the Application Details
16.2.3.2
Setting Deployment Options
16.2.3.3
Defining the Android Signing Options
16.2.3.4
How to Add a Custom Image to an Android Application
16.2.3.5
What Happens When JDeveloper Deploys Images for Android Applications
16.2.3.6
What Happens in JDeveloper When You Deploy an Application to an Android Emulator or Android-Powered Device
16.2.4
How to Create an iOS Deployment Profile
16.2.4.1
Defining the iOS Build Options
16.2.4.2
Setting the Device Signing Options
16.2.4.3
Adding a Custom Image to an iOS Application
16.2.4.4
What You May Need to Know About iTunes Artwork
16.2.4.5
How to Restrict the Display to a Specific Device Orientation
16.2.4.6
What Happens When You Deselect Device Orientations
16.3
Deploying an Android Application
16.3.1
How to Deploy an Android Application to an Android Emulator
16.3.2
How to Deploy an Application to an Android-Powered Device
16.3.3
How to Publish an Android Application
16.3.4
What Happens in JDeveloper When You Create an .apk File
16.3.5
Selecting the Most Recently Used Deployment Profiles
16.3.6
What You May Need to Know About Using the Android Debug Bridge
16.4
Deploying an iOS Application
16.4.1
How to Deploy an iOS Application to an iOS Simulator
16.4.2
How to Deploy an Application to an iOS-Powered Device
16.4.3
What Happens When You Deploy an Application to an iOS Device
16.4.4
What You May Need to Know About Deploying an Application to an iOS-Powered Device
16.4.4.1
Creating iOS Development Certificates
16.4.4.2
Registering an Apple Device for Testing and Debugging
16.4.4.3
Registering an Application ID
16.4.5
How to Distribute an iOS Application to iTunes
16.4.5.1
What Happens in JDeveloper When You Deploy an Application to an iOS Simulator or iOS-Powered Device
16.5
Deploying Feature Archive Files (FARs)
16.5.1
How to Create a Deployment Profile for a Feature Archive
16.5.2
How to Deploy the Feature Archive Deployment Profile
16.5.3
What Happens When You Deploy a Feature Archive File Deployment Profile
16.6
Deploying ADF Mobile Applications from the Command Line
16.6.1
Using OJDeploy to Deploy ADF Mobile Applications
17
ADF Mobile Application Security
17.1
Introduction to Security for an ADF Mobile Application
17.2
Introduction to the User Login Process
17.3
Introduction to Authentication
17.4
Configuring Security for ADF Mobile Applications
17.4.1
How to Enable Application Features to Require Authentication
17.4.2
How to Designate the Login Page
17.4.3
What Happens When You Create an ADF Mobile Connection
17.4.4
What You May Need to Know About Configuring ADF Mobile to Respond to Unsuccessful Login Attempts
17.4.5
What Happens in JDeveloper When You Configure Security
17.4.6
What You May Need to Know About the Access Control Service
17.4.7
What Happens When You Enable Cookie Injection into REST Web Service Calls
17.4.8
What You May Need to Know About Injecting Cookies into REST Web Service Calls
17.4.9
What You May Need to Know about Web Service Security
17.4.10
What Happens When You Designate a Custom Login Page
17.4.11
What You May Need to Know About Login Pages
17.4.11.1
The Default Login Page
17.4.11.2
The Custom Login Page
17.4.11.3
Creating a Custom Login HTML Page for an iOS-Powered Device
17.5
Adding Private Certificates
18
Testing and Debugging ADF Mobile Applications
18.1
Introduction to Testing and Debugging ADF Mobile Applications
18.2
Testing ADF Mobile Applications
18.2.1
How to Perform Accessibility Testing on iOS-Powered Devices
18.3
Debugging ADF Mobile Applications
18.3.1
How to Debug on iOS Platform
18.3.2
How to Debug on Android Platform
18.3.3
How to Debug the ADF Mobile AMX Content
18.3.4
How to Enable Debugging of Java Code and JavaScript
18.4
Using the Debug Mode
18.5
Using and Configuring Logging
18.5.1
How to Configure Logging Using the Properties File
18.5.2
How to Use JavaScript Logging
18.5.3
How to Use Embedded Logging
Part VII Appendixes
A
Troubleshooting
A.1
Problems with Input Components on iOS Simulators
B
Converting Preferences for Deployment
B.1
Naming Patterns for Preferences
B.2
Converting Preferences for Android
B.2.1
Preferences.xml
B.2.1.1
Preferences Element Mapping
B.2.1.2
Preference Attribute Mapping
B.2.1.3
Attribute Default Values
B.2.1.4
Preferences Screen Root Element
B.2.2
arrays.xml
B.2.3
Strings.xml
B.3
Converting Preferences for iOS
C
ADF Mobile Application Usage
C.1
Introduction to ADF Mobile Application Usage
C.2
Installing the ADF Mobile Application on a Mobile Device
C.2.1
How End Users Install ADF Mobile Applications on iOS-Powered Devices
C.2.2
How End Users Install ADF Mobile Applications on Android-Powered Devices
C.2.3
How End Users Uninstall an ADF Mobile Application
C.3
End User Navigation Between Application Features
C.3.1
How End Users Navigate Between Application Features on iOS-Powered Devices
C.3.1.1
What You May Need to Know About Navigation Using the Springboard
C.3.1.2
What You May Need to Know About Single-Featured Applications
C.3.2
How to Navigate on Android-Powered Devices
C.4
Setting Preferences
C.4.1
How to Set Preferences on iOS-Powered Devices
C.4.2
How to Set Preferences on Android-Powered Devices
C.5
Limitations to the Application Usage
C.5.1
List View Component Limitations
C.5.2
Data Visualization Components Limitations
C.5.3
Device Back Button Limitations on Android Platform
D
Parsing XML
D.1
Parsing XML Using kXML Library
E
ADF Mobile Sample Applications
E.1
Overview of the ADF Mobile Sample Applications
Scripting on this page enhances content navigation, but does not change the content in any way.