In the view layer, for ADF Mobile, you have the option of using locally rendered or server rendered views to present the user interface. For the most native user experience, you would use the new AMX component. For the server based ADF, the user interface is rendered on the server only. User interface support is primarily provided through ADF Faces Rich Client components or Trinidad components. Both of these component types are based on JavaServer Faces technology. While the underlying technologies are different, it is worth emphasizing that development paradigms are the same between the two technology stacks. You do not need to learn new development skills to develop for mobile, if you already know how to develop an ADF application.In the controller layer, when ADF Mobile AMX contents are used in an application, you can use a simplified version of ADF Task Flow for the mobile application. ADF Mobile task flow supports a subset of components when compared with server-based ADF task flows. ADF Mobile task flow supports views, control flow case, wild card control flow case, method calls, and routers. It does not support regions. However, the page flow logic resides entire on the device, enabling page navigation without any round trip to the server.In the ADF Model layer, ADF Mobile supports SOAP, REST-XML, and REST-JSON as the server-side data sources. ADF Mobile also supports JDBC connection and APIs to the local database. It does not support, for example, ADF Business Components. Furthermore, ADF Mobile does not implement all of the java methods supported by the server-based ADF. For example, you cannot programmatic access binding context. You would need to get to the binding data by invoking EL Expressions instead. There is also no Java proxy support for web services. Therefore, to access web services programmatically, you must invoke through data control, using the web services invocation helper classes.Lastly, for Java support, ADF Mobile’s embedded Java virtual machine follows the JAvaME CDC spec, which is based on Java version 1.4. Therefore, when writing Java code, please note that you cannot leverage any Java 1.5 and above features.
EL: Expression Language is a syntax that defines the linkage in an AMX page to another source. This is resolved during rendering of the page and ties data to the UI. EL expressions are typically “active” connections and when the underlying data that the EL expression points to changes, the corresponding UI is updated.Bindings: Each AMX page has a backing page that holds its bindings called a Page Definition File. There is a file called the datacontrols.cpx file that tells the framework the names of each backing page def for each AMX page.Data Controls: A data control is a wrapper that allows the framework to bind to data in an abstract way regardless of it’s source. The data can be a java class, a web service or any other source. The datacontrols.dcx file contains the listing of all datacontrols defined for the project. Data controls are visualized in the Data Controls palette which allows the developer to drag and drop from there to the source/structurePane in order to create data-bound components.Managed Beans: A managed bean is simply a Java class defined on a taskflow with an identifier and a scope. You can define managed beans in the top level unbounded taskflow (adfc-mobile-config.xml) or in individual bounded taskflows. The scope of the managed beans comprise of: Application (the entire application can access this instance), pageFlow (any other page in the same taskflow can access this instance), or view (only the page that created it can access this instance). Data Object: A java class that is defined to be a data holder for the object. It represents a single “row” of data and defines the attributes with appropriate getters/setters for the data. It does not, itself, do the retrieval of data from another store.ServiceObject: A java class that is used to define the CRUD operations on an object. It returns other data objects from a store based on functions provided by the developer. There is no specific interface for this object and it’s definition is left for the developer but we define its definition here. It is typical for a Service Object to use JDBC to access a local store or use web services to get it’s data and then fill arrays of Data Objects to be returned. A Service Object is also the class that a developer would create a data control wrapper on to expose it’s methods in the Data Control palette.
Service Object: A java class that returns collections of data objects. The actual implementation of the data retrieval can be JDBC to a SQLite database, access to REST-JSON objects via the restServiceAdapter class, or by invoking other data controls like a Web Service Data Control or URL Data Control to invoke SOAP or REST-XML web services. Service objects can also use another other java methods like file I/O to retrieve data as well.