This appendix includes the following section:
Mobile Application Framework ships with a set of a sample applications that provide different development scenarios, such as creating the basic artifacts, accessing such device-native features as SMS and e-mail, or performing CRUD (Create, Read, Update, and Delete) operations on a local SQLite database. The sample applications are available from File > New > MAF Examples.
These applications, which are described in Table E-1, are complete. Except where noted otherwise, these applications can be deployed to a simulator after you configure the development environment as described in .
Tip:
To get an idea of how to create a mobile application, review these applications in the order set forth in Table E-1.
Table E-1 MAF Sample Applications
Application Name | Description | Additional Resources Required to Run the Sample Application |
---|---|---|
HelloWorld |
The "hello world" application for MAF, which demonstrates the basic structure of the framework. This basic application has a single application feature that is implemented with a local HTML file. Use this application to ascertain that the development environment is set up correctly to compile and deploy an application. See also What Happens When You Create an MAF Application. |
|
APIDemo |
This application demonstrates how to invoke custom JavaScript methods from within a MAF AMX page. Use this approach to invoke the Apache Cordova APIs that are not included in the DeviceFeatures data control. You can also use this approach to add custom JavaScript methods to an application and invoke them as well. This application also demonstrates calling back to Java from the JavaScript methods. For more information, see The MAF Container Utilities API. |
|
BarcodeDemo |
This application demonstrates how to make use of a Cordova plugin by calling the BarcodeScanner plugin from embedded JavaScript that is invoked from a backing bean. For more information, see Using Plugins in MAF Applications. |
|
BeaconDemo |
This application demonstrates how to make use of a Cordova plugin to detect iBeacons. |
|
CompGallery |
This application serves as an introduction to the MAF AMX UI components by demonstrating all of these components. Using this application, you can change the attributes of these components and see the effects of those changes in real time without recompiling and redeploying the application after each change. See generally Creating the MAF AMX User Interface. |
|
ConfigServiceDemo |
This application demonstrates the use of the Configuration Service to change the end points used in a MAF application. Changes to end points in |
|
CRUDDemo |
This application demonstrates how to build CRUD operations using the SQLite database and Java bean data controls. This application displays a list of employees and allows you to create, update, and delete employees. This application uses a local SQLite database to store its data, persisting the data during CRUD operations. In addition, this application shows how to use CREATE and DELETE operations to add or delete items to and from a collection. For more information, see Using the Local Database in MAF AMX. |
|
DeviceDemo |
This application shows you how to use the DeviceFeatures Data Control to expose device features such as geolocation, e-mail, SMS, and contacts, as well as how to query the device for its properties. This feature demonstrates how to use |
You must also run this application on an actual device, because SMS and some of the device properties do not function on an iOS simulator or Android emulator. |
ExpandCollapseComponent |
This application demonstrates how to create a custom component which can act as a container for any type of AMX component and provides an expand, collapse functionality. For more details look at the |
|
FakeBeacon |
This application demonstrates how to make use of a Cordova plugin to pretend to be an iBeacon. This application can be used in conjunction with the BeaconDemo application if you do not have an actual iBeacon for testing |
|
FragmentDemo |
This application shows how you can use fragments to define reusable artifacts that can used as templates. It demonstrates how you can have multiple content types for each feature, one for tablet, one for phone, and use the fragment so that you don't have to code the list/form each time. |
|
GestureDemo |
This application demonstrates how gestures can be implemented and used in MAF applications. See also Enabling Gestures. |
|
Java8Example |
This applications demonstrates use of Java 8 language features in an AMX application. |
|
LayoutDemo |
This application demonstrates various MAF AMX UI constructs and techniques, focusing on a variety of page layouts (flowing, stretch, or split view). |
|
LifecycleEvents |
This application implements lifecycle event handlers on the mobile application itself and its embedded application features. This application shows you where to insert code to enable the applications to perform their own logic at certain points in the lifecycle. See also Introduction to Lifecycle Listeners in MAF Applications. |
For iOS, the LifecycleEvents sample application logs data to the Console application, located at Applications-Utilities-Console application. |
LocalNotificationDemo |
This application demonstrates how to schedule and receive local notifications within a MAF application.See also Enabling and Using Notifications. |
|
MAFMCSUtility |
This example provides the MAF MCS Utility source code in its MAFMCSUtilityView project. |
|
MAFMCSUtilitySample |
This application demonstrates the use of the MAF MCS utility to access Oracle Mobile Cloud Service (MCS). It is optimized for use with Android and iOS tablets. The MAF MCS utility jar shipped with this application provides a set of APIs that make it easier for MAF developers to use MCS core services like analytics, diagnostics, and storage collections. The source of the utility classes is included for reference. |
To run this sample app, you need an Oracle MCS subscription so you can connect to the Oracle Mobile Cloud Service. Within the Oracle MCS instance you need to create at least one mobile user, a mobile backend (MBE) to test against, and one or more sample storage collections that you then assign to the MBE. |
Navigation |
This application demonstrates the various navigation techniques in MAF, including bounded task flows and routers. It also Securing MAF Applications.demonstrates the various page transitions. See also Creating Task Flows. |
|
PrefDemo |
This application demonstrates application-wide and application feature-specific user setting pages. See generally Enabling User Preferences |
|
PushDemo |
This application demonstrates how to register for and receive push notifications from the Apple Push Notification and Google Could Messaging servers. For more information, see Enabling Push Notifications. |
|
RangeChangeDemo |
This sample demonstrates how to invoke a |
|
RESTEasy |
This example used the REST Service Editor feature in OEPE to declaratively build a MAF application that invokes REST services. For more information, see Working with REST Services. |
To run this example, a mock REST server is provided to test against. See As provided, the example is configured to run in an Android emulator, but can easily be re-configured to run in an iOS simulator. (The difference stems from how the different tools reference a port on the host machine; in practice, a device would always be configured to access a specific server, and not a relative host process.) To switch between Android and iOS, use one of the following methods. In the Connections view (lower left in the default MAF perspective), double click |
SecurityDemo |
This application demonstrates how to secure a MAF application, configure authentication and the login server, use the Access Control Service, and access secure web services. For more information, see Securing MAF Applications. |
This sample application connects to the To deploy the |
SkinningDemo |
This application demonstrates how to skin applications and add a unique look and feel by either overriding the supplied style sheets or extending them with their own style sheets. This application also shows how skins control the styling of MAF AMX UI components based on the type of device. It also demonstrates the ability to change skin families (out-of-the-box or custom) at runtime. See also Skinning MAF Applications. |
|
SlidingWindows |
This application demonstrates the use of the |
|
StockTracker |
This sample demonstrates how data change events use Java to enable data changes to be reflected in the user interface. It has a variety of layout use cases, gestures, and basic mobile patterns. This sample also demonstrates how to use client-side validations with the |
|
URLSchemeDemo |
This application demonstrates how to define a custom URL scheme for your application so that you can invoke it from a URL link in a browser or e-mail. See also Using Custom URL Schemes in MAF Applications. |
|
WorkBetter |
This human resources application contains two features: People and Organizations.People: This feature includes a search component, which allows you to search for people. It also demonstrates the ability to create custom components as well as how to build reusable layouts as fragments and use them between different features. It demonstrates how to use various DVT visualization components to display performance, compensation, and timeline- related information. Organizations: Like the People feature, this feature demonstrates how to build reusable layouts as fragments and use them between different features. It also demonstrates how to create views for different form factors and configure them. This application is meant to be an end-to-end demo of the various UI techniques and components available. It shows a variety of layout patterns and demonstrates various uses for both common and more complex components. It is not meant to showcase a compete application but rather focus on the user interface. Please consult other samples for things like data-model or web services. |