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 ?