Native, Web or Hybrid Mobile
App Development?
Agenda
Introduction
Understanding the different approaches
• Native apps
• Web apps and HTML5 • Hybrid apps
The business context
Q&A
Introduction
Native Apps Web Apps Hybrid Apps
101101101011011 110110110110110 110110110110101 101101011011011 011011011011011 011101011101111 110110110110101 101000001101011 <!DOCTYPE html PUBLIC <html> <! - - created 2003-12-12 - - > <head><title>XYZ</title> </head> <body> <p> Voluptatem accusantium do Totam rem aperiam eaque </p> </body> </html> 101101 101011 011110 110110 110110 110110 110110 101101 <!DOCTYPE html PUBLIC <html> <! - - created 2003-12-12 - - > <head><title>XY Z</title> </head> <body> <p> Voluptatem </p> </body> </html>
Characteristics of a Purely-Native Mobile App
A binary “executable image”, that is explicitly downloaded and stored on the file system of the mobile deviceDistributed through the popular app store or marketplace of the device, or via an enterprise distribution mechanism
Executed directly by the operating system • Launched from the home screen
• Does not require another “container app” to run it Makes explicit use of operating-system APIs
binary
Native App Development
SDK Tools
Application Source Code
Resources (e.g. images) Software Source
Code
Compiler, Linker Executable
(Binary) Packager
Distributable Package
iOS – Native App Development
SDK Tools
Application Source Code
Resources (e.g. images) Software Source Code Executable (Binary) Packager Distributable Package App Stores Xcode Objective-C, C++, C .app Compiler, Linker
Android – Native App Development
SDK Tools
Application Source Code
Resources (e.g. images) Software Source Code Executable (Binary) Packager Distributable Package App Stores Java (some C, C++) .apk Android SDK Compiler, Linker
BlackBerry – Native App Development
SDK Tools
Application Source Code
Resources (e.g. images) Software Source Code Executable (Binary) Packager Distributable Package App Stores BlackBerry Java Plug-in for Eclipse
Java
.cod
Windows Phone – Native App Development
SDK Tools
Application Source Code
Resources (e.g. images) Software Source Code Executable (Binary) Packager Distributable Package App Stores Visual Studio, Windows Phone Developer Tools C#, VB.NET, etc. .xap Compiler, Linker (Sliverlight)
Native App Development Summary
Languages Obj-C, C, C++ Java
(Some C, C++) Java C#, VB.NET, etc
Tools Xcode Android SDK BB Java Eclipse Plug-In
Visual Studio, Windows Phone
Dev Tools
Executable Files .app .apk .cod .xap
Application Stores Apple iTunes Android Market BlackBerry App World
Windows Phone Market
Similar approach, but different source code and expertise results in expensive development and maintenance
Characteristics of a Purely-Native Mobile App
A binary “executable image”, that is explicitly downloaded and stored on the file system of the mobile device.Distributed through the popular app store or marketplace of the device, or via an enterprise distribution mechanism.
Executed directly by the operating system • Launched from the home screen
• Does not require another “container app” to run it. Makes explicit use of operating-system APIs Executed directly
Native App – Interaction with Mobile Device
Touch Screen, Keyboard Graphics Touch Events GPS Location Microphone Audio Speaker GSM Network Calls, Data Vibration Activation Accelerometer, Compass Orientation Camera WiFi Data Images, Video Mobile Operating System Native App OS -Specif ic API s Wide Range of Services Audio API CallsNative App – High-level APIs and Built-in Apps
Low-Level High-Level APIs GUI Toolkit Calendar API Push API Contacts, Email API Browser API More Built-in Apps Downloaded Apps Apps APIs API Calls API Calls API CallsGUI Toolkit Provides App With “Native” Look
GUI Toolkit Apps APIs Browser API API Calls Built-in Apps Downloaded AppsMobile Web Apps and Mobile Browsing
High-Level APIs GUI Toolkit Calendar API Push API Contacts, Email API Browser API More… Apps APIs Rendering Engine (e.g., Webkit) Built-in Apps Downloaded AppsMobile Browsing and Mobile Web Apps
Google, Wikipedia: Mobile-optimized websites Dremel: Launch usingMobile Browsing vs. Mobile Web Apps
Pure Mobile Web Sites • Visited by browsing • Static, navigational UI • Generic look & feel • Server-side rendering
Pure Mobile Web Apps • Installed and launched • Interactive UI
JavaScript Toolkits for Mobile Web App UI
SenchaTouch Example: Crossword Puzzles for iPad
jQuery Mobile: Boston Event App
HTML5 and related technologies
Static Pages Dynamic Pages Web Applications w3c.org whatwg.org
Main HTML5/CSS3 features on mobile
• Bitmapped and vector graphics, including animations • Offline support and data URLs
• Geolocation
• Video and Audio
• Continuous communications with the server • More…
Characteristics of Mobile Web Apps
Entirely written using web technologies • HTML, CSS and JavaScript
Code is executed by the browser, not by the OS Various launch mechanisms
• Typing URL, clicking hyperlink, scanning QR Code or clicking home-screen shortcut Installation is optional
Combine cross-platform HTML5 and device-specific features optimize apps • Touch-optimized look & feel
• No address bar
Native App – Interaction with Mobile Device
Touch Screen, Keyboard Graphics Touch Events GPS Location Microphone Audio Speaker GSM Network Calls, Data Vibration Activation Accelerometer, Compass Orientation Camera WiFi Data Images, Video Mobile Operating System Native App OS -Specif ic API s Wide Range of Services Audio API CallsWeb App – Interaction with Mobile Device
Browser Touch Screen,Keyboard
GPS Microphone Speaker GSM Network Vibration Accelerometer, Compass Camera WiFi Mobile Operating System OS -Specif ic API s Wide Range of Services Web App (HTML, CSS, JS) W3C Calls Rendering
Engine API Calls
Graphics Touch Events Location Audio Calls, Data Activation Orientation Data Images, Video Audio
Native vs. Web
Native
Device
Access Speed App Store
Development Cost
Approval Process
Full Very Fast Expensive Available Mandatory
Partial Fast Reasonable Not None
Hybrid
Introducing Hybrid Apps
Native
Device
Access Speed App Store
Approval Process
Full Very Fast Available Mandatory
Development Cost
Expensive
Partial Fast Reasonable Not None
Characteristics of Hybrid Apps
A Hybrid App is a native app with embedded HTML
It has all the benefits of native apps: full access to APIs, app-store presence, etc.
Selected portions of the app are written using web technologies
The web portions of the app can either be downloaded from the web or packaged within the app
Hybrid App – Interaction with Mobile Device
Hybrid App Web Portion of App Native Portion Touch Screen, Keyboard Graphics Touch Events GPS Location Microphone Audio Speaker GSM Network Calls, Data Vibration Activation Accelerometer, Compass Orientation Camera WiFi Data Images, Video Audio Web Portion of App HTML, CSS, JS HTML API calls Rendering Engine API Mobile Operating System OS -Specif ic API s Wide Range of Services API Calls API Calls PhoneGap API Calls API CallsHybrid App Examples
Bank of America
Morgan Stanley
Hybrid App Development
SDK Tools
Application Source Code (e.g. images)Resources
Software Source Code
Compiler, Linker Executable
(Binary) Packager
Distributable Package
Full
Native Speed as Necessary
Reasonable Available Low
Overhead
Hybrid
App Development Comparison
Native
Device
Access Speed App Store
Approval Process
Full Very Fast Available Mandatory
Development Cost
Expensive
Partial Fast Not
Available
Reasonable None
No Single Approach Is Right For Everyone
Target Audience App Function
An Inherent Tradeoff
Native App User Experi en ce Hybrid App Web App Mobile Web SiteChoosing What’s Right For You
• Existing in-house native skills • Targeting a single mobile OS • Dominant native functionality • Rich UI requirements Native • Direct distribution to the hands of users • Pilot application• Out-of-store visibility via search engines
Web
• Breaking the
development tradeoff • Existing in-house web
development skills • Taking the future into
consideration
Future Trends
Future device fragmentation
Accelerated enterprise adoption
New features and complementing technologies New distribution channels
Mobile is Strategic. Not Tactical.
Flexible Development
Secure and Scalable Integration Ongoing Monitoring and Control
For More Information
Resource Location
www.worklight.com Industry Whitepapers
Technology Reports Expert Webinars
dev.worklight.com Developer Zone
Self-Guided Tutorials Technical Resources