360 likes | 797 Views
Native, Web or Hybrid Mobile App Development?. Presented by: Gurpreet Singh Assistant Professor Department of School of Computing and Engineering Galgotias University. Agenda. Introduction Understanding the different approaches Native apps Web apps and HTML5 Hybrid apps
E N D
Native, Web or Hybrid Mobile App Development? Presented by: Gurpreet Singh Assistant Professor Department of School of Computing and Engineering Galgotias University
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 101101101011011110110110110110110110110110101101101011011011011011011011011011101011101111110110110110101101000001101011 <!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> 101101101011011110110110110110110110110110101101 <!DOCTYPE html PUBLIC <html> <! - - created 2003-12-12 - - > <head><title>XYZ</title> </head> <body> <p> Voluptatem </p> </body> </html>
Characteristics of a Purely-Native Mobile App binary • 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 Distributed
Native App Development Application Source Code Software Source Code Resources (e.g. images) SDK Tools Compiler, Linker Packager Executable (Binary) Distributable Package App Stores
iOS – Native App Development Application Source Code Software Source Code Resources (e.g. images) Objective-C, C++, C SDK Tools Compiler, Linker Packager Executable (Binary) Xcode Distributable Package .app App Stores iOS
Android – Native App Development Application Source Code Software Source Code Resources (e.g. images) Java (some C, C++) SDK Tools Compiler, Linker Packager Executable (Binary) Android SDK Distributable Package .apk App Stores
BlackBerry – Native App Development Application Source Code Software Source Code Resources (e.g. images) Java SDK Tools Compiler, Linker Packager Executable (Binary) BlackBerry Java Plug-in for Eclipse Distributable Package .cod App Stores
Windows Phone – Native App Development Application Source Code Software Source Code Resources (e.g. images) C#, VB.NET, etc. (Sliverlight) SDK Tools Compiler, Linker Packager Executable (Binary) Visual Studio, Windows Phone Developer Tools Distributable Package .xap App Stores
Native App Development Summary • Similar approach, but different source code and expertise results in expensive development and maintenance
Characteristics of a Purely-Native Mobile App • Abinary“executable image”, that is explicitly downloaded andstored 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 operating-system APIs
Native App – Interaction with Mobile Device Mobile Operating System Touch Screen, Keyboard Graphics Touch Events Data WiFi Wide Range of Services Calls, Data GSM Network Audio Microphone Native App Speaker Audio API Calls OS-Specific APIs Images, Video Camera Vibration Activation Accelerometer, Compass Orientation Location GPS Data Storage
Native App – High-level APIs and Built-in Apps Downloaded Apps Built-in Apps API Calls Apps APIs API Calls High-Level APIs GUI Toolkit More Calendar API Contacts, Email API PushAPI Browser API API Calls Low-Level APIs File System Network Graphics Camera More Multi-tasking Audio
GUI Toolkit Provides App With “Native” Look Downloaded Apps Built-in Apps API Calls Apps APIs GUI Toolkit Browser API
Mobile Web Apps and Mobile Browsing Downloaded Apps Built-in Apps Apps API Calls API Calls APIs High-Level APIs GUI Toolkit More… Calendar API Contacts, Email API PushAPI Browser API Rendering Engine (e.g., Webkit)
Mobile Browsing and Mobile Web Apps YouTube: Web App Dremel: Launch using QR-Codes Google, Wikipedia: Mobile-optimized websites 2B: Web App
Mobile Browsing vs. Mobile Web Apps … Gray Area … Pure Mobile Web Sites Pure Mobile Web Apps • Visited by browsing • Static, navigational UI • Generic look & feel • Server-side rendering • Require connectivity • Installed and launched • Interactive UI • Touch optimized • Client-side rendering • Available offline
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 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… w3c.org whatwg.org
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 • Suggestion to pin to home screen • Offline availability
Native App – Interaction with Mobile Device Mobile Operating System Touch Screen, Keyboard Graphics Touch Events Data WiFi Wide Range of Services Calls, Data GSM Network Audio Microphone Native App Speaker Audio API Calls OS-Specific APIs Images, Video Camera Vibration Activation Accelerometer, Compass Orientation Location GPS Data Storage
Web App – Interaction with Mobile Device Mobile Operating System Touch Screen, Keyboard Browser Graphics Touch Events Web App (HTML, CSS, JS) Data WiFi Wide Range of Services Calls, Data GSM Network Audio Microphone Speaker Audio OS-Specific APIs W3C Calls Images, Video Camera Vibration Activation Accelerometer, Compass Orientation Rendering Engine API Calls Location GPS Data Storage
Native vs. Web Device Access Speed Development Cost App Store Approval Process Native Full Very Fast Expensive Available Mandatory Web Partial Fast Reasonable Not None
Introducing Hybrid Apps Device Access Speed Development Cost App Store Approval Process Native Full Very Fast Expensive Available Mandatory Hybrid Web Partial Fast Reasonable Not None Web 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 Mobile Operating System Touch Screen, Keyboard Hybrid App Graphics Touch Events Web Portionof App Web Portionof App Data WiFi Wide Range of Services Calls, Data GSM Network HTML, CSS, JS Audio Microphone HTML API calls Speaker Audio OS-Specific APIs API Calls Images, Video API Calls Camera Rendering Engine Vibration Activation API PhoneGap Accelerometer, Compass Orientation Native Portion of App Location API Calls API Calls GPS Data Storage
Hybrid App Examples Bank of America Facebook Morgan Stanley Lotte Card (Korea)
Hybrid App Development Native Sources HTML Sources Server Application Source Code Software Source Code Resources (e.g. images) SDK Tools Compiler, Linker Packager Executable (Binary) Distributable Package App Stores
App Development Comparison Device Access Speed Development Cost App Store Approval Process Native Full Very Fast Expensive Available Mandatory Hybrid Full Native Speed as Necessary Reasonable Available Low Overhead Web Partial Fast Reasonable Not Available None
No Single Approach Is Right For Everyone Target Audience App Function Time and Budget IT Resources
An Inherent Tradeoff Native App Hybrid App User Experience Web App Mobile Web Site Cost and Time-to-Market
Choosing What’s Right For You Native Web Hybrid • Existing in-house native skills • Targeting a single mobile OS • Dominant native functionality • Rich UI requirements • Direct distribution to the hands of users • Pilot application • Out-of-store visibility via search engines • 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