Download - Delivering Mobile Apps to the Field
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
DELIVERING MOBILE APPS TO THE FIELD WITH ORACLE
Simon Haslam
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
ABOUT ME
Simon Haslam
• Platform / Infrastructure Architect
• Focus includes HA, DR, security, automation
Relevant to this session
• Worked on a mobile project before “mobile” and “app” where things ☺
• Technical lead on:MAF projects from 6/2017JET project from 7/2018
@simon_haslam
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
ABOUT EPROSEED
• Focussed only on Oracle technology
• Globally distributed with centralised delivery management and local resources
• 5 active ACE Directors, 2 Dev Champions, 8 OCM
• 19 Oracle Excellence Awards in 8 years
25 Oracle Specializations… and counting.
Local offices in UK, NL, PT… & Head Office in Luxembourg
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
3 Membership Tiers• Oracle ACE Director• Oracle ACE• Oracle ACE Associate
bit.ly/OracleACEProgram
500+ Technical Experts Helping Peers Globally
Connect:
Nominate yourself or someone you know: acenomination.oracle.com
@oracleace
Facebook.com/oracleaces
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential5
• Real-world ‘field’ environments & Oracle technologies
• Oracle MAF
• Apache Cordova
• Oracle JET for mobile apps
• User experience
• Learning points & summary
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
WHY APPS FOR MOBILE DEVICES?
• Nature of work - desktop or laptop is not suitable for many job roles:
– Outside, materials handling, etc (e.g. warehouse)
– Highly mobile (e.g. sales rep, ticket collector/issuer)
– Hazardous or clinical conditions (e.g. doctor or electrician)
• Reduce barrier for customer interaction
• Bring your own device - extending corporate IT
• Tablet might simply be better means of interacting with IT
6
Photo fromhttps://www.pexels.com
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
BUT FIRSTLY: HOW RETAIL “APPS” HAVE EVOLVED
7
UK car importer/distributor
App calculates personalised finance termsfor a customer, e.g. at end of test drive
IT to assist salesperson in a car showroom
1997
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
AGENDA
• Real-world ‘field’ environments
• Oracle JET for mobile apps
• Typical integration challenges
• User experience
• Learning points & summary
8
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
WHAT DO YOU NEED FOR A MOBILE ENTERPRISE APP?
9
Data services
‘Functional’ services
Offlinepersistence
App devtools
MobileDevice
Management
SDLCtools
Securitytools
Notificationservices
Tracking & analytics
Operating System inc app
packagingDevice-specific
features
Identity services
API
….and this is before you consider microservices!
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
ORACLE PRODUCTS TO MEET THESE NEEDS
10
Data services
‘Functional’ services
Offlinepersistence
App devtools
MobileDevice
Management
SDLCtools
Securitytools
Notificationservices
Tracking & analytics
Operating System inc app
packagingDevice-specific
features
Identity services
Mobile Cloud Service
Mobile Cloud
Service
Integration Cloud
SOASuite Service Bus
Identity Cloud
Service
ADF
ERP
JET
MAF
MAF(CDM)
Persist. Toolkit
DevCSAPIPlatform
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
TYPES OF MOBILE APP
11
Native HybridProgressive
Web Apps
Platform-specific(multiple teams
for different platforms) Cross-platform Cross-platform
Ultimate performanceUsually acceptable
performanceExpected to be acceptable
performance
Native APIs Cordova Cordova(?)
This presentation
PL
AT
FO
RM
SS
PE
ED
DE
VIC
E /
OS
FE
AT
UR
ES
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
WHAT DO YOU NEED* TO DEVELOP HYBRID MOBILE APP?
Cordova
JET
PackagingOffline
Phone photo by Terje Sollie from Pexels
MAFor
* Oracle tools - other tools are available!
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
OFFLINE PERSISTENCE
• Offline is required in many/most mobile apps to either:
– give illusion of better performance
– provide application functionality under all network conditions (variable or none)
• Biggest challenge is cache coherency across devices
– May not be as bad as you think – perhaps first or last “wins”
• You may not need to provide offline capability for all functions
– Most functions may be read-only anyway; transactional ones may have to wait for connectivity if rare
13
MAF: Container Data Model (fka AMPA) built-in
JET: use Oracle’s offline persistence toolkithttps://github.com/oracle/offline-persistence-toolkit
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential14
• Real-world ‘field’ environments & Oracle technologies
• Oracle MAF
• Apache Cordova
• Oracle JET for mobile apps
• User experience
• Learning points & summary
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
TRADITIONAL ORACLE TOOL FOR MOBILE APP DEV
Mobile Application Framework
• Declarative dev env, similar to ADF
• JDeveloper IDE (MAF extension)
• Java-based (mostly)
• Pre-integrated Cordova
• Built in navigation, security, login
• Model (binding) layer that integrates nicely with SOAP & REST
• Discovery feature when using ADF BC exposed as REST APIs
• Offline persistence built-in (uses encrypted SQLite database)
15
2014 / 4 years ago:
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential17
MAF: 02. An Introduction to Oracle Mobile Application Framework (Oracle MAF)https://www.youtube.com/watch?v=4rN1kQncy0E
2014
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
MAF DEMO
18
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
FIRST TWO APPS: MAF OUTCOMES
• Lots of new technologies for the team (ADF supported by MAF consultant):
– Android SDK, standard PC build
– Emulator, building, deploying to .apk / device
– Build server integration
– JavaScript (Cordova plus some fixes like the “enter” button on Android keyboard)
• App 1: Lots of Java bean & persistence layer debugging
– Sub-optimal REST APIs (following data model)
– A couple of bugs (fixed in MAF 2.5.1+)
• App 2: Much smoother
– Reworked both data model & APIs, simplifying app
• Once through pilot, rollout was fast & no bug fixes needed19
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential20
• Real-world ‘field’ environments & Oracle technologies
• Oracle MAF
• Apache Cordova
• Oracle JET for mobile apps
• User experience
• Learning points & summary
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
CORDOVA ARCHITECTURE
Bluetooth Serial
Barcode Receiver
https://cordova.apache.org/docs/en/latest/guide/overview/index.html
JavaScript
JavaScript
Android: Java
Physicalconnection
to hardware
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
THE LASER SCANNER
• Scanner is proprietary feature of the Honeywell hardware
– Including hardware buttons on both sides of device
• Honeywell-customised flavour of Android
– Android Intent (android.scan) for successful scan completed
• We used the cordova-plugin-battery-status as an example/starting point for our custom Cordova plug-in
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-battery-status/
We could add more features of the Honeywell APIs/SDK to the plug-in, e.g. enable/disable scan button, multi-scan
22
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
THE BLUETOOTH PRINTER
• Used BluetoothSerial plug in to communicate with printer
https://github.com/don/BluetoothSerial & in npm
• Bluetooth needs to be paired
• Error handling left a lot to be desired – we’ve made some improvements (PR imminent)
Printer control language feelslike a step back in time!
23
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential24
• Real-world ‘field’ environments & Oracle technologies
• Oracle MAF
• Apache Cordova
• Oracle JET for mobile apps
• User experience
• Learning points & summary
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
MODERN ORACLE TOOLS FOR MOBILE APP DEV
25
• JavaScript Extension Toolkit (JET)
– Integrated & stable collection of open source frameworks
– Oracle contributions for visual elements
– Many IDEs available for JavaScript
– Oracle offline persistence toolkit
– Apache Cordova is used to access device features
– Deployment to iOS, Android as hybrid apps, but also regular web apps e.g. for desktop usage
• Visual Builder Cloud Service (VBCS)
– Low-code tool, highly graphical
– Runs in the cloud, has a runtime component
– Builds regular web apps, but can also build mobile apps to run from cloud
– Access to full range of JET components
– Export JavaScript code so you can use as JET if you need to go deeper
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
JET DEMO
26
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential30
• Real-world ‘field’ environments & Oracle technologies
• Oracle MAF
• Apache Cordova
• Oracle JET for mobile apps
• User experience
• Learning points & summary
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
BACK TO BASICS: OUR USERS
• Who are our users?
• How IT-literate are they?
• What is their working process?
– How much focus do they have on the app
– How does “happy path” compare to non-standard flows?
– Quick wins and process improvement
31
➢Importance of Business Sponsor & Product Owner ➢Mobile app usage means lots of opinions!➢Management of expectations
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
MOCK-UPS
32
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
THE DEVICE
Don't underestimate device requirements, even if you think app is simple!
Consider:
• Processor speed & memory
• Screen brightness
• Features, e.g. pen, scanning, bluetooth, NFC
• Battery life
– Replacement batteries
– Charging docks
• Physical resilience
– Drop resistance
– Water resistance (or even hygiene, e.g. for hospital use)
• Supported lifespan: service & spare parts34
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential35
• Real-world ‘field’ environments & Oracle technologies
• Oracle MAF
• Apache Cordova
• Oracle JET for mobile apps
• User experience
• Learning points & summary
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
LEARNING POINTS
• Tool choice is very important, especially due to pace of change
• We love the JET cookbook & training, e.g. MOOC
• Do mock-ups early and carefully, ahead of dev sprints
• Cordova plug-in dev: create test harness to reduce debug scope/cycle time
• Give developers real devices – emulators only go so far
• CI, automated build & deployment
• Automated testing, especially WAN simulation if possible
36
Credit: https://gfycat.com/CompleteDimpledGoitered
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
SUMMARY
• Plenty of quick win scenarios where employees need to access IT through mobile devices
• Oracle JET or MAF, coupled with Cordova, provides mature means to build mobile apps. JET re-uses of JavaScript & desktop skills
• Hybrid mobile apps offer good compromise between development flexibility and cost. Keep an eye out for Progressive Web Apps though
• Various integration options & cloud services – some overlap so consider carefully
• Positive user experience is central to success of your project – consider usage, device, convenience, etc
37
Copyright © 2018, eProseed and/or its affiliates. All rights reserved. | Confidential
IF YOU LIKED THIS YOU MIGHT LIKE…
38
In this room next:
HIGHLY RECOMMENDED!