Oracle Enterprise Pack for Eclipse Developing Mobile Applications with Oracle Mobile Application Framework (OEPE Edition)
Table of Contents
Show All | Collapse- Title and Copyright Information
- Preface
- 1 Introduction to Oracle Mobile Application Framework
- 2 Setting Up the Development Environment
- 3 Getting Started with Mobile Application Development
- 4 Defining a Mobile Application
- 4.1 Introduction to Defining Mobile Applications
- 4.2 Using the Oracle MAF Perspective
- 4.3 About the Mobile Application Configuration File maf-application.xml
- 4.4 Setting the Basic Information for a Mobile Application
- 4.5 Invoking a Mobile Application Using a Custom URL Scheme
- 4.6 Configuring the Springboard and Navigation Bar Behavior
- 4.6.1 How to Configure Application Navigation
- 4.6.2 What Happens When You Configure the Navigation Options
- 4.6.3 What Happens When You Set the Animation for the Springboard
- 4.6.4 What You May Need to Know About Custom Springboard Application Features with HTML Content
- 4.6.5 What You May Need to Know About Custom Springboard Application Features with MAF AMX Content
- 4.6.6 What You May Need to Know About the Runtime Springboard Behavior
- 4.7 Configuring the Application Features within a Mobile Application
- 4.8 About Lifecycle Event Listeners
- 4.8.1 Events in Mobile Applications
- 4.8.2 Timing for Mobile Application Events
- 4.8.3 Using the activate and deactivate Methods to Save Application State
- 4.8.4 About Application Feature Lifecycle Listener Classes
- 4.8.5 Timing for Activate and Deactivate Events in the Application Feature Lifecycle
- 4.8.6 Enabling Sliding Windows
- 4.9 About the Mobile Application Feature Configuration File
- 4.10 Setting the Basic Configuration for the Application Features
- 4.11 Defining the Content Types for an Application Feature
- 4.12 Working with Localized Content
- 4.13 Skinning Mobile Applications
- 4.13.1 About the maf-skins.xml File
- 4.13.2 What You May Need to Know About MAF Styles
- 4.13.3 About the maf-skins.xml File
- 4.13.4 How to Add a Custom Skin to an Application
- 4.13.5 How to Specify a Skin for an Application to Use
- 4.13.6 How to Register a Custom Skin
- 4.13.7 How to Version MAF Skins
- 4.13.8 What Happens When You Version Skins
- 4.13.9 Overriding the Default Skin Styles
- 4.13.10 What You May Need to Know About Skinning
- 4.13.11 Enabling Dynamic Skin Selection at Runtime
- 4.14 Working with Feature Archive Files
- 4.15 Integrating Cordova Plugins into Mobile Applications
- 5 Creating MAF AMX Pages
- 5.1 Introduction to the MAF AMX Application Feature
- 5.2 Creating Task Flows
- 5.2.1 How to Create a Task Flow
- 5.2.2 What You May Need to Know About Task Flow Activities and Control Flows
- 5.2.3 What You May Need to Know About the task-flow-definition.xml File
- 5.2.4 What You May Need to Know About the MAF Task Flow Diagrammer
- 5.2.5 How to Add and Use Task Flow Activities
- 5.2.6 How to Define Control Flows
- 5.2.7 What You May Need to Know About MAF Support for Back Navigation
- 5.2.8 How to Enable Page Navigation by Dragging
- 5.2.9 How to Specify Action Outcomes Using UI Components
- 5.2.10 How to Create and Reference Managed Beans
- 5.2.11 How to Specify the Page Transition Style
- 5.2.12 What You May Need to Know About Bounded and Unbounded Task Flows
- 5.3 Creating Views
- 6 Creating the MAF AMX User Interface
- 6.1 Introduction to Creating the User Interface for MAF AMX Pages
- 6.2 Designing the Page Layout
- 6.2.1 How to Use a View Component
- 6.2.2 How to Use a Panel Page Component
- 6.2.3 How to Use a Panel Group Layout Component
- 6.2.4 How to Use a Panel Form Layout Component
- 6.2.5 How to Use a Panel Stretch Layout Component
- 6.2.6 How to Use a Panel Label And Message Component
- 6.2.7 How to Use a Facet Component
- 6.2.8 How to Use a Popup Component
- 6.2.9 How to Use a Panel Splitter Component
- 6.2.10 How to Use a Spacer Component
- 6.2.11 How to Use a Table Layout Component
- 6.2.12 How to Use a Deck Component
- 6.2.13 How to Use the Fragment Component
- 6.3 Creating and Using UI Components
- 6.3.1 How to Use the Input Text Component
- 6.3.2 How to Use the Input Number Slider Component
- 6.3.3 How to Use the Input Date Component
- 6.3.4 How to Use the Output Text Component
- 6.3.5 How to Use Buttons
- 6.3.6 How to Use Links
- 6.3.7 How to Display Images
- 6.3.8 How to Use the Checkbox Component
- 6.3.9 How to Use the Boolean Switch Component
- 6.3.10 How to Use the Select Many Checkbox Component
- 6.3.11 How to Use the Select Many Choice Component
- 6.3.12 How to Use the Select Button Component
- 6.3.13 How to Use the Radio Button Component
- 6.3.14 How to Use the Choice Component
- 6.3.15 How to Use List View and List Item Components
- 6.3.16 How to Use the Carousel Component
- 6.3.17 How to Use the Film Strip Component
- 6.3.18 How to Use Verbatim Component
- 6.3.19 How to Use Output HTML Component
- 6.3.20 How to Enable Iteration
- 6.3.21 How to Load a Resource Bundle
- 6.3.22 How to Use the Action Listener
- 6.3.23 How to Use the Set Property Listener
- 6.3.24 How to Convert Date and Time Values
- 6.3.25 How to Convert Numerical Values
- 6.3.26 How to Enable Drag Navigation
- 6.3.27 How to Use the Loading Indicator
- 6.4 Enabling Gestures
- 6.5 Providing Data Visualization
- 6.5.1 How to Create an Area Chart
- 6.5.2 How to Create a Bar Chart
- 6.5.3 How to Create a Horizontal Bar Chart
- 6.5.4 How to Create a Bubble Chart
- 6.5.5 How to Create a Combo Chart
- 6.5.6 How to Create a Line Chart
- 6.5.7 How to Create a Pie Chart
- 6.5.8 How to Create a Scatter Chart
- 6.5.9 How to Create a Spark Chart
- 6.5.10 How to Create a Funnel Chart
- 6.5.11 How to Style Chart Components
- 6.5.12 How to Use Events with Chart Components
- 6.5.13 How to Create an LED Gauge
- 6.5.14 How to Create a Status Meter Gauge
- 6.5.15 How to Create a Dial Gauge
- 6.5.16 How to Create a Rating Gauge
- 6.5.17 How to Define Child Elements for Chart and Gauge Components
- 6.5.18 How to Create a Geographic Map Component
- 6.5.19 How to Create a Thematic Map Component
- 6.5.20 How to Use Events with Map Components
- 6.5.21 How to Create a Treemap Component
- 6.5.22 How to Create a Sunburst Component
- 6.5.23 How to Create a Timeline Component
- 6.5.24 How to Create an NBox Component
- 6.5.25 How to Define Child Elements for Map Components, Sunburst, Treemap, Timeline, and NBox
- 6.5.26 How to Create Databound Data Visualization Components
- 6.6 Styling UI Components
- 6.7 Localizing UI Components
- 6.8 Understanding MAF Support for Accessibility
- 6.9 Validating Input
- 6.10 Using Event Listeners
- 7 Using Bindings and Creating Data Controls
- 7.1 Introduction to Bindings and Data Controls
- 7.2 About Object Scope Lifecycles
- 7.3 Creating EL Expressions
- 7.3.1 About Data Binding EL Expressions
- 7.3.2 How to Create an EL Expression
- 7.3.3 What You May Need to Know About MAF Binding Properties
- 7.3.4 How to Reference Binding Containers
- 7.3.5 About the Categories in the Expression Builder
- 7.3.6 About EL Events
- 7.3.7 How to Use EL Expressions Within Managed Beans
- 7.4 Creating and Using Managed Beans
- 7.5 Exposing Business Services with Data Controls
- 7.6 Creating Databound UI Components from the Data Controls Palette
- 7.7 What Happens at Runtime: How the Binding Context Works
- 7.8 Working with Data Control Attributes
- 7.9 Creating and Using Bean Data Controls
- 7.10 Using the DeviceFeatures Data Control
- 7.10.1 How to Use the getPicture Method to Enable Taking Pictures
- 7.10.2 How to Use the SendSMS Method to Enable Text Messaging
- 7.10.3 How to Use the sendEmail Method to Enable Email
- 7.10.4 How to Use the createContact Method to Enable Creating Contacts
- 7.10.5 How to Use the findContacts Method to Enable Finding Contacts
- 7.10.6 How to Use the updateContact Method to Enable Updating Contacts
- 7.10.7 How to Use the removeContact Method to Enable Removing Contacts
- 7.10.8 How to Use the startLocationMonitor Method to Enable Geolocation
- 7.10.9 How to Use the displayFile Method to Enable Displaying Files
- 7.10.10 Device Properties
- 7.11 Validating Attributes
- 7.12 About Data Change Events
- 8 Using Web Services
- 8.1 Introduction to Using Web Services in MAF Applications
- 8.2 Creating Web Service Data Controls
- 8.3 Creating a New Web Service Connection
- 8.4 Adjusting the Endpoint for a Web Service Data Control
- 8.5 Accessing Secure Web Services
- 8.6 Invoking Web Services From Java
- 8.7 Configuring the Browser Proxy Information
- 9 Configuring End Points Used in MAF Applications
- 10 Using the Local Database
- 10.1 Introduction to the Local SQLite Database Usage
- 10.2 Using the Local SQLite Database
- 10.2.1 How to Connect to the Database
- 10.2.2 How to Use SQL Script to Initialize the Database
- 10.2.3 How to Initialize the Database on a Desktop
- 10.2.4 What You May Need to Know About Commit Handling
- 10.2.5 Limitations of the MAF's SQLite JDBC Driver
- 10.2.6 How to Use the VACUUM Command
- 10.2.7 How to Encrypt and Decrypt the Database
- 10.2.8 What You May Need to Know About the StockTracker Sample Application
- 11 Creating Custom MAF AMX UI Components
- 11.1 Introduction to Creating Custom UI Components
- 11.2 Using MAF APIs to Create Custom Components
- 11.2.1 How to Use Static APIs
- 11.2.2 How to Use AmxEvent Classes
- 11.2.3 How to Use the TypeHandler
- 11.2.4 How to Use the AmxNode
- 11.2.5 How to Use the AmxTag
- 11.2.6 How to Use the VisitContext
- 11.2.7 How to Use the AmxAttributeChange
- 11.2.8 How to Use the AmxDescendentChanges
- 11.2.9 How to Use the AmxCollectionChange
- 11.2.10 How to Use the AmxNodeChangeResult
- 11.2.11 How to Use the AmxNodeStates
- 11.2.12 How to Use the AmxNodeUpdateArguments
- 11.3 Creating Custom Components
- 12 Implementing Application Feature Content Using Remote URLs
- 12.1 Overview of Remote URL Applications
- 12.1.1 Enabling Remote Applications to Access Device Services through Whitelists
- 12.1.2 Enabling Remote URL Implementations to Access Apache Cordova
- 12.1.3 How Whitelisted Domains Access Device Capabilities
- 12.1.4 How to Create a Whitelist (or Restrict a Domain)
- 12.1.5 What Happens When You Add Domains to a Whitelist
- 12.1.6 What You May Need to Know About Remote URLs
- 12.2 Creating Whitelists for Application Components
- 12.3 Enabling the Browser Navigation Bar on Remote URL Pages
- 12.4 About Authoring Remote Content
- 12.1 Overview of Remote URL Applications
- 13 Enabling User Preferences
- 14 Setting Constraints on Application Features
- 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.4 About User Constraints and Access Control
- 14.2.5 About Hardware-Related Constraints
- 14.2.6 Creating Dynamic Constraints on Application Features and Content
- 15 Using AppXray for MAF Artifacts
- 16 Accessing Data on Oracle Cloud
- 17 Enabling Push Notifications
- 18 Handling Errors in MAF Applications
- 19 Deploying Mobile Applications
- 19.1 Introduction to Deployment of Mobile Applications
- 19.2 Working with Deployment Configurations
- 19.2.1 How to Create a Deployment Configuration
- 19.2.2 What Happens When You Create a Deployment Configuration
- 19.2.3 Differences Between Run Configurations and Debug Configurations
- 19.2.4 How to Create an Android Deployment Configuration
- 19.2.5 Deploying an Android Application
- 19.2.6 How to Create an iOS Deployment Configuration
- 19.2.7 Deploying an iOS Application
- 19.3 Deploying Feature Archive Files (FARs)
- 19.4 Creating a Mobile Application Archive File
- 19.5 Creating Unsigned Deployment Packages
- 20 Secure Development Practices
- 20.1 Weak Server-Side Controls
- 20.2 Insecure Data Storage on the Device
- 20.3 Insufficient Transport Layer Protection
- 20.4 Side-Channel Data Leakage
- 20.5 Poor Authorization and Authentication
- 20.6 Broken Cryptography
- 20.7 Client-Side Injection From Cross-Site Scripting
- 20.8 Security Decisions From Untrusted Inputs
- 20.9 Improper Session Handling
- 20.10 Lack of Binary Protections Resulting in Sensitive Information Disclosure
- 21 Securing Mobile Applications
- 21.1 About Mobile Application Framework Security
- 21.2 About the User Login Process
- 21.3 Overview of the Authentication Process for Mobile Applications
- 21.4 Configuring MAF Connections
- 21.4.1 How to Create a MAF Login Connection
- 21.4.2 How to Configure Basic Authentication
- 21.4.3 How to Configure Web SSO Authentication
- 21.4.4 How to Configure Authentication Using Oracle Mobile and Social Identity Management
- 21.4.5 How to Configure OAuth Authentication
- 21.4.6 How to Update Connection Attributes of a Named Connection at Runtime
- 21.4.7 How to Store Login Credentials
- 21.4.8 What You May Need to Know About Multiple Identities for Local and Hybrid Login Connections
- 21.4.9 What Happens When You Enable Cookie Injection into REST Web Service Calls
- 21.4.10 What You May Need to Know About Adding Cookies to REST Web Service Calls
- 21.4.11 What Happens at Runtime: When MAF Calls a REST Web Service
- 21.4.12 What You May Need to Know About Injecting Basic Authentication Headers
- 21.4.13 What You May Need to Know about Web Service Security
- 21.4.14 How to Configure Access Control
- 21.4.15 What You May Need to Know About the Access Control Service
- 21.4.16 How to Alter the Application Loading Sequence
- 21.4.17 What Happens When You Define a Multi-Tenant Connection
- 21.4.18 What Happens When You Create a Connection for a Mobile Application
- 21.5 Configuring Security for Mobile Applications
- 21.5.1 How to Enable Application Features to Require Authentication
- 21.5.2 How to Designate the Login Page
- 21.5.3 What You May Need to Know About Login Pages
- 21.5.4 What You May Need to Know About Login Page Elements
- 21.5.5 What Happens in Oracle Enterprise Pack for Eclipse When You Configure Security for Application Features
- 21.6 Allowing Access to Device Capabilities
- 21.7 Enabling Users to Log Out from Application Features
- 21.8 Supporting SSL
- 22 Testing and Debugging MAF Applications
- A Troubleshooting
- B Application Container APIs
- B.1 Using MAF APIs to Create a Custom HTML Springboard Application Feature
- B.2 The MAF Container Utilities API
- B.2.1 Using the JavaScript Callbacks
- B.2.2 Using the Container Utilities API
- B.2.3 getApplicationInformation
- B.2.4 gotoDefaultFeature
- B.2.5 getFeatures
- B.2.6 gotoFeature
- B.2.7 getFeatureByName
- B.2.8 getFeatureById
- B.2.9 resetFeature
- B.2.10 gotoSpringboard
- B.2.11 hideNavigationBar
- B.2.12 showNavigationBar
- B.2.13 invokeMethod
- B.2.14 invokeContainerJavaScriptFunction
- B.2.15 Application Icon Badging
- B.3 Accessing Files Using the getDirectoryPathRoot Method
- C Converting Preferences for Deployment
- D MAF Application Usage
- E Parsing XML
- F Mobile Application Framework Sample Applications