Overview
Topics covered in this lesson include:
• Introduction
• Platform Support
• Setup Development Environment
• Configuring for iOS Platform
• Configuring for Android Platform
• Form Factors
• Roadmap for Mobile Development
• Application & Project Artifacts
Oracle’s Mobile Approach
ORACLE MOBILE APPS
ORACLE APPLICATION DEVELOPMENT FRAMEWORK
ISV / CUSTOM APPS
• One common
platform for both
desktop-based and
mobile enterprise
applications
• Extend enterprise
applications
and data to mobile
clients
• Support multiple
channels and
platforms
Oracle ADF Mobile
• One framework, two delivery channel:
• Mobile browser
• On-device rich mobile application
• Build once, and deploy to many mobile platforms
• Deliver mobile-optimized user experience
• Mobile-enable enterprise middleware and apps
• Enhance developer productivity
• Support remote and on-device content and interactions
Hybrid Mobile Application Platform
• Thin Native Framework on each platform• Allows for native application install
• Allows for device interaction
• HTML/JavaScript frontend
• PhoneGap integration
• Java technology
• SQLite integration
• Encryption Extension
• Access Control and Security
ADF Mobile Architecture
Supported Platforms
• ADF Mobile runs on mobile devices powered by iOS
and Android platforms
• iOS
• Develop and Deploy on a Mac
• Requires Xcode and iOS SDK
• Android
• Development and Deployment are supported
in either a Mac, Windows PC, or Linux
• Requires Android SDK
• Download SDKs for the latest
supported Android OS
JDeveloper Setup & Configuration
1. Install the ADF Development Environment
• Oracle JDeveloper (Studio Edition) 11.1.2.3 or above
• ADF Mobile extension (Help – Check for Updates)
• Verify ADF Mobile Installed
2. Install and Configure Deployment
Environment• iOS Simulator to be used, xcodebuild and iTunes
• Android SDK and Platform locations
3. Define Forms Factors
• Specify devices to be used
• Define device size and resolution
Installing ADF Mobile Extension
In Studio Edition:
1. Select Help, then
Check for Updates
2. Select ADF Mobile
update
3. Restart JDeveloper
Check whether or not ADF Mobile was successfully added
to JDeveloper:
1. Navigate to the New Gallery
2. In the Categories pane, expand the Applications node
and make sure it contains ADF Mobile Application
iOS Development Environment
For developing iOS Mobile Apps:
• Requires a Mac
• 4 GB Minimum/8 GB of RAM recommended
• Intel Duo Core/i5 processor or above
• Mac OS 10.6.8 (Snow Leopard) (or above)
• XCode 4.2+ and iOS SDK 5.0+ (or above)
• JDeveloper 11gR2 update 3 or above
• ADF Mobile Extension
• To deploy to device:
• Join an Apple iOS Developer Program
iOS Developer Programs
• Free Program
• Anyone with an Apple ID can register as a developer for free
• Allows developer to download older versions of Xcode
• Standard Program
• Charge $99 USD or equivalent fee per year
• All of the free program features, plus
• Deploy to devices registered as development devices
• Distribute iOS application through the Apple AppStore
• Enterprise Program
• Charge $299 USD or equivalent per year
• All features of the standard program, except direct
distribution is allowed to any devices within an enterprise
Setup an iOS Platform
1. Set up certificates and provisioning profiles in the
Apple Developer Portal
2. Install certificates and profiles to the development
Mac
3. Install Xcode and iOS SDK with Simulator
4. Configure JDeveloper for iOS Development
• iOS SDK location
• iTunes location
• Certificate name
• Provisioning Profile location
Android Development
Environment
For developing Android Mobile Apps
• PC, Mac, or Linux
• 4GB Minimum/8 GB RAM Recommended
• Intel Duo Core/i5 processor or above
• OS requirement depends on Android SDK and
JDeveloper support
• Android SDK 4.x
• Although ADF Mobile Runtime supports
devices running lower versions of Android,
only 4.x or above Emulators are supported
• JDeveloper 11gR2 update 3
• ADF Mobile Extension
Setup an Android Platform
1. Install the Android SDK Manager
2. Download Android SDK Tools and API Packages
3. Configure Android emulator with SDK API level 15
or above
4. Generate Private Key and Key Store for building
in release mode
5. Configure JDeveloper for Android Development
• SDK location
• Platform location
• Release Mode Key Store Location
Platforms and Form Factors
• A form factor is a specific device configuration.
• Identified by a name that you specify
• Form factors defined in preferences
• Resolution denoted by number of pixels
• Switch between form factors to see how page is rendered
• View multiple form factors using the split screen view
• Available for both iOS and Android platforms
Roadmap for Mobile Development
1. Identify Application Requirements based on Use Cases
2. Design Application: Client & Server sides
3. Define Application and Features
4. Create Client-side Data Access Layers with Stub Data Objects
and Data Controls
5. Develop Task Flow and UI Backed by Stub Data
6. Deploy, Test, & Refine to Ensure Optimal User Experiences
6. Develop Server-side Data Services in Parallel
7. Configure and Enable Security
8. Connect to Server-side Data Services
9. Test in Simulators and Devices, and Optimize for Performance
10. Deploy to Production Environment
Roadmap for Mobile Development
1. Identify Application Requirements based on Use
Cases
• What business processes will the mobile users want to perform?
• Where will mobile users be performing these actions?
• On-the-go, in front of the customers, at service site, etc.
• Will there be network connectivities?
• What data will mobile users need to access?
• Are there any device services that will assist in user performing these tasks?
• Response time requirement – data entry/rapid response, search, push notifications, etc.
Roadmap for Mobile Development
2. Design Application: Client and Server sides
• Determine target device form factors (tablet vs. phone)
• Partition application functionality into features
• Create mobile application wireframes to determine page flow,
user interaction requirements, and data requirement
• Tablet and phone typically would have separate
application wireframes
• Refine wireframe with mobile users in iterations
• Determine application data access patterns (online vs. offline):
• If online, determine and optimize frequency of data
retrieval vs. amount of data retrieved.
• If offline, determine synchronized data set
Roadmap for Mobile Development
3. Define Application and Features
• Create new ADF Mobile application and default projects
• Determine Features that need to be created
• Create Features and define
• Icons
• Lifecycle Event Code
• Constraints
• Content
• Pull in Feature Archives as needed
• Add preferences
Roadmap for Mobile Development
4. Create Client Side Data Access Layer with Stub Data
Objects and Data Controls
• Create Web Services/XML Data Control and skip the
following, if Data Control alone meets data requirement
• Create Data Objects (POJOs) that correspond to client-side
data model
• Objects and Attributes
• Hierarchical relationship between data objects
• Create Factory Objects (POJOs) that instantiate and
populate the Data Objects
• Initially populate with stub data locally
• Create Bean Data Control based on POJOs
Roadmap for Mobile Development
5. Develop Task Flow, and UI backed by Stub Data
• Add application feature content (AMX, Local/Remote HTML)
• Define/develop application and feature lifecycle event code
• For Local or Remote HTML Features
• Configure URL endpoints, constraints, additional
white-listed URLs, preferences, and security
• For each AMX Feature
• Create ADF Mobile Task Flow
• Create AMX Pages and user interface with Bean
Data Controls with Stub Data
Roadmap for Mobile Development
6. Deploy, Test, and Refine Mobile Application to Ensure Optimal User Experiences
• Create deployment profiles for the different mobile platforms
• Deploy to simulator or devices in Debug mode for Java and JavaScript debugging
• Deploy to devices in Release mode for performance testing and user testing
• Refine user interface and data access patterns based on test results
• Ease of use/meeting use cases and requirement
• Streamline number of user clicks
• Optimize the amount of data displayed and retrieved for each user operation
Roadmap for Mobile Development
7. Develop Server-Side Data Services in Parallel
• Expose server data for mobile consumption
• For example, define Service Interface for ADF BC
• Implement data delivery and integration mechanisms
• For example, to integrate with Oracle EBS, may need to create new SOA app using Oracle Application Connector
• Optimize for mobile data delivery
• For example, using SOA Suite and Oracle ESB to expose data as REST services
• Set up network infrastructure to expose data
• May need to set up a server in DMZ for direct internet access
Roadmap for Mobile Development
8. Configure and Enable Security
• Test out server connectivity and services without security first if possible
• Server side:
• Configure Web Services security policies
• Setting up login Server such as Oracle Mobile and Social Access Services
• Set up Access Control Server
• Client (ADF Mobile app) side:
• Specify Authentication and Access Control URLs
• Configure for SSL and register (Private) SSL Cert
• Create custom login screen as needed
Roadmap for Mobile Development
9. Connect to Server-Side Data Services
• Create Web Services Data Control (for SOAP) or URL Data Control (for XML)
• Create URL connection for the REST/JSON service
• Add or modify the “Factory” Objects in the data services layer on the client side to invoke server-side services
• For SOAP and XML, use invokeDataControlMethod APIs
• For JSON, use RestServiceAdapter APIs
• Add code to populate local database from server-side data to support offline-capable use cases
• Configure OWSM policies for SOAP-based web services in the WS data control
Roadmap for Mobile Development
10. Retest in Simulators and Devices, and Optimize for Overall Application Performance
• Enable debugging and test in simulator for data access and display
• Obtain and configure certificates, provisioning profiles, and keys, for on-device deployment
• Generate application binary in device native format (e.g. ipa or apk), and deploy to test device
• Test for application functionality and features, such as integration to device services
• Test for application performance with actual calls to server-side services
• Optimize client and server side code as needed
Roadmap for Mobile Development
11. Deploy to Production Environment
• Determine distribution mechanism
• App Stores (Apple AppStore, Google Play, etc.)
• Enterprise Internal Distribution
• Distribution through App Store:
• Obtain App Store account
• Submit application for review/distribution
• Distribution within an Enterprise:
• Over-the-air via web server
• Through third party app provisioning and enterprise store front server
• Setup Configuration Server as needed
Default ADF Mobile Project Files
Application Controller
• Contains application life-cycle event code (Startup -
shutdown)
• Houses application-wide resources
• Device Data Controls
View Controller
• Houses the feature level resources
• Task flows, Views, Web Services Data Controls,
and Java Beans
• Describes resources at the application feature level
• May contain one or more features
• Deploys to a Feature Archive
• An App may contain one or more ViewController projects
Mobile App Configuration Files
• adfmf-application.xml: Defines application
parameters such as name, application-level navigation
such as springboard and navigation bar, feature
configuration, application-level preferences, login page,
authentication/access control server, and white listing
• connections.xml: Defines all connections in the ADF
Mobile application
• cvm.properties.xml: Use this file to configure JVM
Memory allotment, enable/configure Java and JavaScript
debugging
• logging.properties: Configure logging level and
format
• connections.xml: Defines all services and login
connections in the ADF Mobile application
Application Controller Files
• adfmf-skins.xml: Defines the available skins and also
enables you to define new skins
• adfm.xml: Maintains the paths (and relative paths) for the
.cpx, .dcx, .jpx, and .xcfg files (registries of metadata).
There is typically no need to ever modify this file
• DataControls.dcx: Contains data controls registry for
Device Services. May contain other data controls you may
define at the Application Controller level
View Controller Files
• adfmf-feature.xml: A stub XML descriptor file that
enables you to define application features
• DataControls.dcx: Contains registry for all data controls
(such as SOAP or XML) defined in the project. This is also where you can define WS security policy.
• Application-Specific Content: The application
features defined in adfmf-feature.xml display in the
(application_workspace\ViewController\publi
c_html) directory and may include:
• ADF Mobile AMX pages
• CSS files
• Task flows
• Any custom images
Summary
Topics we covered in this lesson were:
• Introduction
• Platform Support
• Setup Development Environment
• Configuring for iOS Platform
• Configuring for Android Platform
• Form Factors
• Roadmap for Mobile Development
• Application & Project Artifacts
<Insert Picture Here>
Learn More
• Oracle.com/mobile
• Download
• Tutorials
• Discussion forum
• Samples
• ADF Developer Guide
• More…