Developing Mobile Apps using IS Technology - Ray Wright

advertisement
You’ll make breakthroughs
Developing Mobile Applications Using InterSystems Technology
Ray Wright, Senior Sales Engineer
You’ll make breakthroughs
The Case for Mobile
•
•
•
•
The mobile revolution is now 7 years old
500 million iPhones have been sold
50 billion applications have been downloaded from the Apple Store
Apple is valued at $652 Billion and is “bigger than Russia”
You’ll make breakthroughs
Free Apps
• Social Media is the dominant force..
• Facebook
• YouTube
• Pandora
• Instagram
You’ll make breakthroughs
Paid Apps
• Games own the paid sector…
– Rovio – Angry Birds
• 2010 – $6 million in revenue
• 2013 – $150 million in revenue
• 1 billion downloads
– King – Candy Crush Saga
• Launched as a mobile app for
smartphones in November 2012
• Most popular app on Facebook by
March 2013, 46 million plus monthly
users
• $790 million spent in game in first 6
months of 2014
You’ll make breakthroughs
Enterprise Apps
•
•
•
•
Airlines - Lufthansa, BA, American etc
TripIt
WebEx
Banks - RBS, Santander, HSBC etc
You’ll make breakthroughs
Endless Diversity
•
•
•
•
•
•
•
•
Education
Property
Finance
Travel
Entertainment
Media
Fitness
Digital Immigrants and Digital Citizens
You’ll make breakthroughs
Concur Solutions
• Small company in a business niche
• Expense management solution
• In business since 1993
• Virtually unknown in 2005
• Noted as a "company to watch" in 2007
• Make Forbes top 100 list for small companies in
2010 and revenue approaches $300 million
• Hit $550 million in revenue in 2013
• Agree to buyout for $8.3 billion in September 2014
You’ll make breakthroughs
It's Happening With InterSystems Customers Too
• Shift
• Lab solution partner based in Brazil
• 500+ customers in South America
• Cache / Deep See implementation with a Zen Based UI built in 2009/2010
You’ll make breakthroughs
Shift – Driven by Customer Expectations
• One of their customers paid a consultant to build a mobile app for delivering lab
results to patients
• Built on a collection of existing web services in Shift’s solution
• Shift realized they needed to provide this functionality to all their partners
• Approached InterSystems in August last year about using Zen Mojo to deliver this
solution
• Full development effort started in the winter of 2014
• The scope of the project later expanded to cover most of their current application
• Beta in summer 2014 with go lives at their launch sites underway
You’ll make breakthroughs
Infor Global Solutions
•
•
•
•
•
•
Library solutions partner
Browse
Reserve
Index
US based, thousands of libraries worldwide
Existing Kiosk solution in the libraries with a
browser based UI
You’ll make breakthroughs
Infor goes Mobile…
•
•
•
•
•
•
•
•
Native apps for iOS and Android
Free download
Browse catalog
Reserve content
e-books
Mojo based UI built on top of Phone Gap
Live in November 2014
Development to deployment in 6 months
You’ll make breakthroughs
Building a Mobile App
• Different challenges to building for a desktop environment
– Device orientation
– Single touch and multi-touch events
– Access to the device hardware may be required
– Low bandwith or OFFLINE mode
– Some desktop events aren‘t supported (i.e. MouseOver)
You’ll make breakthroughs
Sounds Good – How Can I build a Mobile App ?
Native
Hybrid
WEB
Your WEB App
Your WEB App
Your Native App
3rd Party
Native
Container
Browser
Device API
Device API
Device API
You’ll make breakthroughs
What is the Mobile “toolkit” for InterSystems Technology ?
• RESTful interfaces
• JSON
• Zen Mojo
You’ll make breakthroughs
RESTful Interfaces
• Representational State Transfer – a set of architectural principles that describe
web services as an alternative to SOAP and WSDL based design
• Stateless, use HTTP methods explicitly (POST, GET, PUT, DELETE)
• Expose directory structure-like URIs
• Independent of transport mechanism (JSON, XML or both)
• Were always implementable using CSP but formal support was added in 2014.1
• Some REST capabilities added to Ensemble in 2013.1
You’ll make breakthroughs
JSON – JavaScript Object Notation
• Open standard data interchange format
• Originally specified by Douglas Crockford in RFC4627 written in 2006
(http://tools.ietf.org/html/rfc4627)
• Designed to be human readable and easy to parse
• Derived from JavaScript for representing simple data types and associative arrays
• Language independent, JSON parsing and generation has been implemented in
many languages
• Two data structures – Object and Array
• InterSystems core support
• jsonProvider
• jsonSQLProvider
• proxyObject
You’ll make breakthroughs
XML data representation
<Person>
<Name>Hanson,Alfred P.</Name>
<SSN>761-44-6942</SSN>
<DOB>1980-09-26</DOB>
<Home>
<Street>4512 Main Street</Street>
<City>Islip</City>
<State>KS</State>
<Zip>72234</Zip>
</Home>
<FavoriteColors>
<FavoriteColorsItem>Purple</FavoriteColorsItem>
<FavoriteColorsItem>White</FavoriteColorsItem>
</FavoriteColors>
<Age>42</Age>
</Person>
You’ll make breakthroughs
JSON data representation
{
“Name” : ”Hanson,Alfred P.”,
“SSN” : ”761-44-6942”,
“DOB” : “47461”,
“Home”: {
“Street” : “4512 Main Street”,
“City” : “Islip”,
“State” : “KS”,
“Zip” : “72234”
},
“Spouse” : null,
“FavoriteColors” : [
“Purple”,
“White”
],
“Age” : 42
}
You’ll make breakthroughs
Zen Mojo
•
•
•
•
•
Framework for simplifying application development
HTML 5
CSS 3
Android and iOS
Leveraging the best tools on the market for UI
You’ll make breakthroughs
Zen Mojo
• Single Page Architecture
• Server transmits JSON data that drives the page layout and page content
• Page transitions handled by changing the underlying layout and content data and
re-rendering
• Page rendering is handled by plug-ins, typically third party libraries but could be
user written code
You’ll make breakthroughs
Single Page Architecture
• Efficient approach for reducing client-server communication
• Page consists of a sparse HTML skeleton implementing a rendering method
• Display can be changed by updating the metadata and calling the rendering
method – no page transition
• Metadata transmitted as JSON objects
You’ll make breakthroughs
Plug-Ins
• Mojo uses a plug-in architecture for easy, rapid integration of state-of-the-art
JavaScript libraries
• New UI paradigms can be adopted as soon as they are supported by a new
library
• PageManager plug-in – creates an application shell that contains the application
content and manages page transitions within the Single Page Architecture
• Helper plug-ins – add support for positioning and rendering objects that can be
defined in the page data
You’ll make breakthroughs
JavaScript Libraries for Mobile Web Apps
• There are many JavaScript libraries available for building mobile web apps
• jQuery Mobile for building a cross platform custom look-and-feel
• ChocolateChip UI provides components and style sheets that emulate the lookand-feel of iOS, Android and Windows Phone devices
• Also support HTML5 and Google Maps plug-ins
• By default Mojo web applications are deployed on a server and require
connectivity from the mobile device at startup time
You’ll make breakthroughs
Building Hybrid Mobile Apps
• Web application runs inside a native container
• PhoneGap based on Apache Cordova is an example container – open source
framework using standardized device APIs (accelerometer, camera, geolocation,
etc.)
• Mojo allows an application bundle to be compiled and packaged
• Application bundle can be run locally
• Application bundle can communicate with a server but server connectivity is not
required at startup
You’ll make breakthroughs
Desktop Too ?
• Plug-in approach allows integration of libraries for building rich desktop
applications using the same architecture
• Dojo Toolkit is the suggested library
You’ll make breakthroughs
ZEN Mojo Architectural Overview
Text text
Text text
1. ZEN Mojo page compiled on the server
2. Device requests page via browser
3. Server sends ZEN Mojo page to client
4. Data/Layout requests are communicated between client/server
You’ll make breakthroughs
Developing a ZEN Mojo App
• Caché or Ensemble
• A PhoneGap installation (www.phonegap.com)
• A copy of jQueryMobile (www.jquerymobile.com) or
ChocolateChip-UI (www.cocolatechip-ui.com)
• SDK for the target device platform
• You have to setup a specific development environment for each platform if you
want to build PhoneGap apps locally
– Eclipse /Java for Android
– Mac OS X and Xcode for IOS
– .NET for Windows phones
– See PhoneGap docs for more platforms
• PhoneGap Build Service available
+
+
+
You’ll make breakthroughs
Developing a ZEN Mojo App
Content Template
<documentView>
Control
ZEN Mojo Page
A pair of keys
is associated with content
You’ll make breakthroughs
Developing a ZEN Mojo App
Defining the HomePage
You’ll make breakthroughs
Developing a ZEN Mojo App
A simple XData content block
Dispatches to onGetContent()
in the template class
You’ll make breakthroughs
Developing a ZEN Mojo App
Callback on the Client
Which Provider
If this method returns NULL %OnGetJSONContent() is called
You’ll make breakthroughs
Developing a ZEN Mojo App
Generating Layout on the Client
…
Layout-Key
…
Controltype – Depending on the Plugin
You’ll make breakthroughs
Developing a ZEN Mojo App
Generating Content on the Server
Proxy Objected automatically
translated to JSON
You’ll make breakthroughs
Zen Mojo Specifics
•
•
•
•
•
Released March 2014
Separate distribution - currently 1.0.9
4 releases since April
Supported on 2013.1 and higher
Incorporated in to 2015.1 and built with latest Mojo release
You’ll make breakthroughs
Questions for the future…
•
•
•
•
•
•
•
Platform – Android vs iOS?
Phablets?
Internet of things?
WebSockets?
Node.js?
Technology will change
Digital Citizens replace Digital Immigrants
You’ll make breakthroughs
Mobile Applications
Questions ?
Download