This chapter introduces ADF Mobile—an application development framework within Oracle JDeveloper that enables you to create multi-featured applications for iOS and Android-powered devices. The applications run natively on mobile devices.
This chapter includes the following sections:
ADF Mobile enables you to create an application that can house different types of content that run on mobile devices powered by the iOS and Android platforms. Within the framework of the application, the contained functional areas are referred to as application features and represent one or more specific pieces of the application's functionality.
Although each ADF Mobile application feature may have its own set of user-defined preferences, ADF Mobile enables you to apply a uniform style of user preferences to each of the application features embedded into the ADF Mobile application. Further, you can improve the end-user experience by grouping these mobile application features by functionality. For example, you can group a mobile application feature that provides customer contacts together with one for product inventory into the same ADF Mobile application. You can also control the display of the application features by such criteria as user role or device version.
From the end-user perspective, an application built using ADF Mobile is launched by clicking its application icon on the mobile device (see Figure 1-1).
After the ADF Mobile application opens, the end user clicks an icon for an application feature. The application features can display as icons on a navigation bar (see the bottom portion of Figure 1-2) or in a page format with larger icons in a homescreen page, commonly referred to as a springboard (see Figure 1-3).
Because ADF Mobile supports integration of these application features with the mobile device services, the end user can, for example, place a call from the mobile device by clicking a name listed in the contacts for an application feature for a mobile field service report form or scan a receipt to update a mobile expense report. For more information on ADF Mobile user experience, see Appendix C, "ADF Mobile Application Usage."
The following types of application features can coexist within the same ADF Mobile application:
The workflows of ADF Mobile AMX pages are portable across platforms.
For more information, see the following:
Remote URL (also known as server HTML)—this implementation approach allows you to point to a resource on the web by specifying a URL endpoint. You can use JDeveloper to implement an ADF Mobile application feature as a remote URL.
The URL endpoints are portable across platforms.
For more information, see the following:.
An ADF Mobile application enables the integration of its embedded application features with such native device services as phone, camera, GPS, and so on. These services can be accessed from the local HTML, ADF Mobile AMX, Java, and remote web applications.
An extension of the PhoneGap framework (see
http://www.phonegap.com/home), the ADF Mobile architecture enables HTML5, as well as ADF-defined pages and task flows to be rendered in the same downloadable application.
ADF Mobile consists of the following parts:
Model provided by Oracle ADF.
The model layer provides the facility to connect to a local database.
View expressed as HTML or XML.
Controller defined with XML.
Java runtime powered by an embedded Java VM bundled with each application.
ADF Mobile's model-view-controller stack resides on a mobile device and represents reimplementation of ADF's model-view-controller layers. UI metadata is rendered to native components on device and is bound to the model through the ADF Model.
Figure 1-4 shows the overall runtime architecture of ADF Mobile.
As shown in Figure 1-4, the following elements comprise the ADF Mobile runtime architecture:
Device-Native Container represents an application container, or template, compiled as a device-native application binary. This container provides the runtime environment for an ADF Mobile application to run as an on-device, native application in the mobile device's operating system (for example, iOS). Besides hosting the client-side components for an ADF Mobile application, it provides navigation utilities, such as a springboard and navigation bar, which enable access to particular application features.
Web View is a part of the device native container that uses a mobile device's web engine to display and process web-based content. In an ADF Mobile application, the web view is the primary mechanism to render and deliver the application user interface.
ADF Controller is represented by a mobile version of Oracle ADF controller that supports a subset of Oracle ADF task flow components available to a server-based Oracle ADF application. Both bounded and unbounded Oracle ADF task flows are supported, as well as a subset of events and scopes that are supported by the server-based ADF. For more information, see Section 7.2, "Creating Task Flows."
Java provides a Java runtime environment for an ADF Mobile application. This Java Virtual Machine (JVM) is implemented in device-native code, and is embedded (or compiled) into each instance of the ADF Mobile application as part of the native application binary. The JVM is based on the JavaME Connected Device Configuration (CDC) specification.
Managed Beans are Java classes that can be created to extend the capabilities of ADF Mobile, such as provide additional business logic for processing data returned from the server. Managed beans are executed by the embedded Java support, and therefore must conform to the JavaME CDC specifications. For more information, see Chapter 9, "Using Bindings and Creating Data Controls."
ADF Model in an ADF Mobile application supports a subset of business logic components available to a server-based Oracle ADF application. ADF model contains the binding layer that provides an interface between the business logic components and user interface, as well as the execution logic to invoke REST or SOAP-based web services. For more information, see Chapter 9, "Using Bindings and Creating Data Controls."
Application Configuration refers to services that allow key application configurations to be downloaded and refreshed. For example, URL endpoints for a web service or remote URL connection. Application configuration services download the configuration information from a WebDav-based server-side service. For more information, see Section 10.7, "Administering Web Services."
Credential Management and Access Control refers to client-side services that provide security-related services for an ADF Mobile application. For example, a local credential store that securely caches user credentials to support an offline authentication or access control services that display or hide application features based on user access privileges. For more information, see Chapter 17, "ADF Mobile Application Security."
Local Data refers to data stores that reside on the device. In ADF Mobile, these are implemented as encrypted SQLite databases. Create Retrieve Update Delete (CRUD) operations are supported to this local data store through the Java layer, using JDBC-based APIs. For more information, see Chapter 11, "Using the Local Database."
On the server side, the Configuration Server refers to a WebDav-based server that hosts configuration files used by the application configuration services. The configuration server is delivered as a reference implementation. Any common WebDav services hosted on a common J2EE server can be used for this purpose. For more information, see Section 10.7, "Administering Web Services."
On the server side, the ADF Mobile Browser refers to a framework for developing server-side applications that can be used for implementation of the remote URL ADF Mobile application feature. For more information, see Chapter 12, "Implementing Application Features as Remote URLs."