SlideShare a Scribd company logo
1 of 55
Download to read offline
Revised v4Presenter
Web or Native for Mobile Development?
Android
Reto Meier
@retomeier
Web
Michael Mahemoff
@mahemoff
The Question
• Should you build you mobile apps as HTML5 apps or
native apps?
The Answer
YES
The Case for Native Apps
If you can't think of a way to improve your
web app using Android SDK features...
If you can't think of a way to improve your
web app using Android SDK features...
You're doing it wrong!
Standards Will Always Trail Innovation
• Hardware support
• Rich Integration
Impending Hardware Standards
• Location Based Services
• Microphone input
• Accelerometers
Hardware is Rapidly Evolving
• 2007: Multi-touch, accelerometers, microphone
• 2008: Video, compass, background apps
• 2009: Bluetooth, multiple screen sizes
• 2010: Gyroscopes, front facing cameras, NFC
• 2011: ???
New Hardware Platforms
• Tablets
• Televisions
• Cars? Picture Frames? Fridges? Washing Machines?
Currently Supported Hardware
• Smartphones / Tablets / Television
• Microphone
• Video camera (front facing / rear facing)
• Sensors (compass, gyro, accelerometers, light
• Multi-touch
• Telephony and SIP stacks
• Bluetooth
Intents Based Data Sharing
• Lets 3rd parties exchange data
• Lets apps extend each other
Ubiquity
• Widget, Live Folders, Live Wallpapers
• Quick Search Box
• Notifications
• Ability to replace native apps
True Background Services
• Alarms
• Intent Receivers
• Cloud to Device Messaging
• Background execution / concurrent apps
Current Android Platform Features
• Geo services
• Sensors
• Interprocess communications (Intents!)
• Background, scheduled, and concurrent apps
• Home screen widgets and quick search box
• Rich multimedia
• Native (C/C++) development
• Full database / SQLLite support
• Camera and microphone access
• Deep system integration / replacement
Native App Strengths
• Apps that use the hardware
• Apps that integrate system features
• Apps that work with other apps
• Apps that need to be fast
• Apps that are ubiquitous
The Case for HTML5
Remember when computers were computers?
TVs were TVs?
Mobile phones were thumping great bricks?
Form Factors Rock!
Form Factors Rock
... for users!
But less so for developers.
Modern Developer,
You need to consider ...
Desktop
Laptop
Netbook
Smartphone
Feature phone
Tablet
TV
As a Developer, you need to
consider ...
Watch?
Car?
Fridge?
USB Desktop Aquarium?
(Maybe not.)
Desktop
Windows
OSX
Linux
...
Mobile
Android
iOS
BlackBerry
Windows Mobile 6.5
Windows Mobile 7 (rewrite)
Symbian
Meego
...
How about in 2015?
Anyone's guess!
But one platform is likely to be there: Web.
Write Once, Run Many
is starting to sound like a good idea
Web Handles Many User Interfaces
Browsers use a fluid layout model.
Sensible defaults, whether a 10cm phone or a 200cm TV
Target specific platforms with CSS Media Queries
Web Provides Secure Sandboxing
Same-origin policy prevents sharing across different domains
Web Provides Porous Boundaries
It's not black-and-white.
Apps *can* share data securely - OAuth, Cross-Origin
Resource Sharing, Cross-Document Messaging.
Web Supports Permissioning
Now we have rich functionality on the web, e.g. GeoLocation.
But not every app gets access.
As with smartphones, browsers ask permission first.
So Web Architecture is Good in Theory
How about in practice?
HTML5 is Ready Today
Not 2050, Not 2020. Today.
HTML5 is Ready Today
Oh and it's fast too
Javascript Performance Benchmark
http://is.gd/dAKqS
Firefox 0.8 (2004): 1802ms
Chrome 7 (2010): 10ms
DOM Rendering Benchmark
http://jsperf.com/dom-selection-appending/2
Firefox 0.8 (2004): ~111ms (9 ops/sec)
Chrome 7 (2010): 2ms (460 ops/sec)
User Interface: Canvas
Canvas: Effect Engine
HTML5 Game Jam: "Enterprise"
User Interface: CSS
Custom Fonts
Transforms
Much more...
Input
Geolocation
Orientation
Speech Detection
Idle Detection
Device API: Camera? Microphone?
http://flickr.com/photos/mofetos/435827739/
Networking
Your Grandpa's HTML:
Links
Forms
Ajax:
XMLHttpRequest
Now:
Cross-Domain access with CORS
2-Way Streaming with WebSocket
Server-Sent Events with EventSource
Offline
Application Caching
Web Storage
Web SQL Database
Indexed Database
File Access
Installable, if you want to
Mobile: PhoneGap, Titanium, Roll-Your-Own
Desktop: Google Chrome Web Store
And Besides Compatibility ...
Open standards
Open source
Easy to dive in
Tools and library support
Diverse community
Want to Learn More?
HTML5Rocks.com
ChromeExperiments.com
Want to Learn Even More?
http://www.html5rocks.com/resources.html
'Which?' is the Wrong Question
Web Apps
• Near universal coverage
• Deploy once, update instanly
Native Apps
• Deep hardware and platform integration
• Support for rapid hardware innovation
• Device and platform specific features
• Optimized user experience
Two Great Tastes that Taste Great Together
• Yes!
• Build a web client first to offer your app to the largest
possible community of users.
• Build an optimized native client that leverages platform
specific features and an optimized user experience.
Both? Really?
• Hardware access?
• Feel the need for speed?
• Background or concurrent execution?
• System access?
• Deep integration?
Understand Your App's Needs
HTML5 in Native
Most platforms include a native Web View control.
Include Web View for specific features
Book reader: The catalogue
Game: High scores
or use HTML5 for the entire app ...
HTML5 for Entire App
Wrap HTML5 app as native.
Can also use native capabilities.
Nitobi PhoneGap
http://phonegap.com/apps
http://build.phonegap.com (private beta)
http://apparat.io/ from Uxebu (private beta)
Appcelerator Titanium
http://appcelerator.com
Native Apps with HTML5
Make it work offline.
Use client-side storage when offline.
Don't point to server...package it up!
Or use Application Cache and Client-Side Storage.
Native Apps with HTML5
Prioritize platforms.
For high-priority platforms, customise UI and incorporate
native features.
CSS Media Queries.
JavaScript Feature Detection (Modernizr library).
Introduce native styling.
UI Toolkits: Sencha Touch, jQTouch, jQuery Mobile ...
Questions!
• Twitter:
o @retomeier (Android)
o @mahemoff (Web)
HTML5 or Android for Mobile Development?

More Related Content

What's hot

HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive SummaryGilad Khen
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal JavaPhilippe Riand
 
The Future Of Web Frameworks
The Future Of Web FrameworksThe Future Of Web Frameworks
The Future Of Web FrameworksMatt Raible
 
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialLotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialRyan Baxter
 
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?Andrew Mleczko
 
The future of the CMS
The future of the CMSThe future of the CMS
The future of the CMSInVision App
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
Hands On With OpenSocial and Embedded Experiences
Hands On With OpenSocial and Embedded ExperiencesHands On With OpenSocial and Embedded Experiences
Hands On With OpenSocial and Embedded ExperiencesRyan Baxter
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConfBrian LeRoux
 
A Beard, An App, A Blender
A Beard, An App, A BlenderA Beard, An App, A Blender
A Beard, An App, A Blenderedm00se
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKDavid Wesst
 
Mobeers waterloo-2011
Mobeers waterloo-2011Mobeers waterloo-2011
Mobeers waterloo-2011Brian LeRoux
 
Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Brian LeRoux
 
Html5 today
Html5 todayHtml5 today
Html5 todayRoy Yu
 
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...Ryan Baxter
 
Delivering Optimal Images for Phones and Tablets on the Modern Web
Delivering Optimal Images for Phones and Tablets on the Modern WebDelivering Optimal Images for Phones and Tablets on the Modern Web
Delivering Optimal Images for Phones and Tablets on the Modern WebJoshua Marantz
 

What's hot (20)

HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
TxJS 2011
TxJS 2011TxJS 2011
TxJS 2011
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal Java
 
The Future Of Web Frameworks
The Future Of Web FrameworksThe Future Of Web Frameworks
The Future Of Web Frameworks
 
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialLotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
 
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
The future of the CMS
The future of the CMSThe future of the CMS
The future of the CMS
 
The Future of the web
The Future of the webThe Future of the web
The Future of the web
 
Future of the Web
Future of the WebFuture of the Web
Future of the Web
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Hands On With OpenSocial and Embedded Experiences
Hands On With OpenSocial and Embedded ExperiencesHands On With OpenSocial and Embedded Experiences
Hands On With OpenSocial and Embedded Experiences
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConf
 
A Beard, An App, A Blender
A Beard, An App, A BlenderA Beard, An App, A Blender
A Beard, An App, A Blender
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 
Mobeers waterloo-2011
Mobeers waterloo-2011Mobeers waterloo-2011
Mobeers waterloo-2011
 
Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011
 
Html5 today
Html5 todayHtml5 today
Html5 today
 
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
 
Delivering Optimal Images for Phones and Tablets on the Modern Web
Delivering Optimal Images for Phones and Tablets on the Modern WebDelivering Optimal Images for Phones and Tablets on the Modern Web
Delivering Optimal Images for Phones and Tablets on the Modern Web
 

Viewers also liked

Android Protips: Advanced Topics for Expert Android App Developers
Android Protips: Advanced Topics for Expert Android App DevelopersAndroid Protips: Advanced Topics for Expert Android App Developers
Android Protips: Advanced Topics for Expert Android App DevelopersReto Meier
 
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...Trivadis
 
Performance myths in android
Performance myths in androidPerformance myths in android
Performance myths in androidJavier Gamarra
 
Android Development Made Easy - With Sample Project
Android Development Made Easy - With Sample ProjectAndroid Development Made Easy - With Sample Project
Android Development Made Easy - With Sample ProjectJoemarie Amparo
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2Joemarie Amparo
 
Android Development Training for Beginners - Activity
Android Development Training for Beginners - ActivityAndroid Development Training for Beginners - Activity
Android Development Training for Beginners - ActivityJoemarie Amparo
 
Html5, Native and Platform based Mobile Applications
Html5, Native and Platform based Mobile ApplicationsHtml5, Native and Platform based Mobile Applications
Html5, Native and Platform based Mobile ApplicationsYoss Cohen
 
Connected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsConnected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsPranav Ainavolu
 
Cc1350lp deadleaf power consumption characterization
Cc1350lp deadleaf power consumption characterizationCc1350lp deadleaf power consumption characterization
Cc1350lp deadleaf power consumption characterizationMarcus Linderoth
 
Continuous Cross Platform Mobile App Development using Jenkins Build Server
Continuous Cross Platform Mobile App Development using Jenkins Build ServerContinuous Cross Platform Mobile App Development using Jenkins Build Server
Continuous Cross Platform Mobile App Development using Jenkins Build ServerAdam Paxton
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...Adam Paxton
 
Android application design
Android application designAndroid application design
Android application designUday Sharma
 
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile DevelopmentNative vs. Mobile Web vs. Hybrid Apps for Mobile Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile DevelopmentJason Grigsby
 
E-Commerce Development
E-Commerce DevelopmentE-Commerce Development
E-Commerce DevelopmentTechnosiss
 
Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminarJoemarie Amparo
 
Products, Services, & Branding
Products, Services, & BrandingProducts, Services, & Branding
Products, Services, & BrandingVicki Papacek
 
7 Reasons Why Entrepreneurs Fail - Titanium Guide
7 Reasons Why Entrepreneurs Fail - Titanium Guide7 Reasons Why Entrepreneurs Fail - Titanium Guide
7 Reasons Why Entrepreneurs Fail - Titanium GuideTitaniumMarketing
 
Why Do ENTREPRENEURS Fail?
Why Do ENTREPRENEURS Fail?Why Do ENTREPRENEURS Fail?
Why Do ENTREPRENEURS Fail?geetuprats
 
Mobile Development Platforms
Mobile Development PlatformsMobile Development Platforms
Mobile Development PlatformsAndri Yadi
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Ahsanul Karim
 

Viewers also liked (20)

Android Protips: Advanced Topics for Expert Android App Developers
Android Protips: Advanced Topics for Expert Android App DevelopersAndroid Protips: Advanced Topics for Expert Android App Developers
Android Protips: Advanced Topics for Expert Android App Developers
 
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
 
Performance myths in android
Performance myths in androidPerformance myths in android
Performance myths in android
 
Android Development Made Easy - With Sample Project
Android Development Made Easy - With Sample ProjectAndroid Development Made Easy - With Sample Project
Android Development Made Easy - With Sample Project
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
Android Development Training for Beginners - Activity
Android Development Training for Beginners - ActivityAndroid Development Training for Beginners - Activity
Android Development Training for Beginners - Activity
 
Html5, Native and Platform based Mobile Applications
Html5, Native and Platform based Mobile ApplicationsHtml5, Native and Platform based Mobile Applications
Html5, Native and Platform based Mobile Applications
 
Connected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsConnected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile Apps
 
Cc1350lp deadleaf power consumption characterization
Cc1350lp deadleaf power consumption characterizationCc1350lp deadleaf power consumption characterization
Cc1350lp deadleaf power consumption characterization
 
Continuous Cross Platform Mobile App Development using Jenkins Build Server
Continuous Cross Platform Mobile App Development using Jenkins Build ServerContinuous Cross Platform Mobile App Development using Jenkins Build Server
Continuous Cross Platform Mobile App Development using Jenkins Build Server
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
 
Android application design
Android application designAndroid application design
Android application design
 
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile DevelopmentNative vs. Mobile Web vs. Hybrid Apps for Mobile Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
 
E-Commerce Development
E-Commerce DevelopmentE-Commerce Development
E-Commerce Development
 
Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminar
 
Products, Services, & Branding
Products, Services, & BrandingProducts, Services, & Branding
Products, Services, & Branding
 
7 Reasons Why Entrepreneurs Fail - Titanium Guide
7 Reasons Why Entrepreneurs Fail - Titanium Guide7 Reasons Why Entrepreneurs Fail - Titanium Guide
7 Reasons Why Entrepreneurs Fail - Titanium Guide
 
Why Do ENTREPRENEURS Fail?
Why Do ENTREPRENEURS Fail?Why Do ENTREPRENEURS Fail?
Why Do ENTREPRENEURS Fail?
 
Mobile Development Platforms
Mobile Development PlatformsMobile Development Platforms
Mobile Development Platforms
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)
 

Similar to HTML5 or Android for Mobile Development?

Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with IonicMaulik Bamania
 
2011 code camp
2011 code camp2011 code camp
2011 code campimranq2
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
HTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentHTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentDipesh Mukerji
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile DevelopmentManesh Lad
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonnyLama K Banna
 
Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application developmentsaritasingh19866
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapAmar Mesic
 
Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010Tom Deryckere
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapNick Landry
 
Creating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsCreating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsBrian Huff
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Developmenttechugo
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application developmentwebprogr.com
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsBarcoding, Inc.
 
Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsRomin Irani
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchAxel Buerkle
 
Primers on mobile application development
Primers on mobile application developmentPrimers on mobile application development
Primers on mobile application developmentSatta Nathan
 

Similar to HTML5 or Android for Mobile Development? (20)

Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
 
2011 code camp
2011 code camp2011 code camp
2011 code camp
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
HTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentHTML5: Next Generation Web Development
HTML5: Next Generation Web Development
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonny
 
Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application development
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGap
 
Phone gap
Phone gapPhone gap
Phone gap
 
Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 
Creating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsCreating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile Applications
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Development
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application development
 
chapter2
chapter2chapter2
chapter2
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development Platforms
 
Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElements
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
 
Primers on mobile application development
Primers on mobile application developmentPrimers on mobile application development
Primers on mobile application development
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

HTML5 or Android for Mobile Development?

  • 1.
  • 2. Revised v4Presenter Web or Native for Mobile Development? Android Reto Meier @retomeier Web Michael Mahemoff @mahemoff
  • 3. The Question • Should you build you mobile apps as HTML5 apps or native apps?
  • 5. The Case for Native Apps
  • 6. If you can't think of a way to improve your web app using Android SDK features...
  • 7. If you can't think of a way to improve your web app using Android SDK features... You're doing it wrong!
  • 8.
  • 9. Standards Will Always Trail Innovation • Hardware support • Rich Integration
  • 10. Impending Hardware Standards • Location Based Services • Microphone input • Accelerometers
  • 11. Hardware is Rapidly Evolving • 2007: Multi-touch, accelerometers, microphone • 2008: Video, compass, background apps • 2009: Bluetooth, multiple screen sizes • 2010: Gyroscopes, front facing cameras, NFC • 2011: ???
  • 12. New Hardware Platforms • Tablets • Televisions • Cars? Picture Frames? Fridges? Washing Machines?
  • 13. Currently Supported Hardware • Smartphones / Tablets / Television • Microphone • Video camera (front facing / rear facing) • Sensors (compass, gyro, accelerometers, light • Multi-touch • Telephony and SIP stacks • Bluetooth
  • 14. Intents Based Data Sharing • Lets 3rd parties exchange data • Lets apps extend each other
  • 15. Ubiquity • Widget, Live Folders, Live Wallpapers • Quick Search Box • Notifications • Ability to replace native apps
  • 16. True Background Services • Alarms • Intent Receivers • Cloud to Device Messaging • Background execution / concurrent apps
  • 17. Current Android Platform Features • Geo services • Sensors • Interprocess communications (Intents!) • Background, scheduled, and concurrent apps • Home screen widgets and quick search box • Rich multimedia • Native (C/C++) development • Full database / SQLLite support • Camera and microphone access • Deep system integration / replacement
  • 18. Native App Strengths • Apps that use the hardware • Apps that integrate system features • Apps that work with other apps • Apps that need to be fast • Apps that are ubiquitous
  • 19. The Case for HTML5
  • 20. Remember when computers were computers?
  • 22. Mobile phones were thumping great bricks?
  • 24. Form Factors Rock ... for users! But less so for developers.
  • 25. Modern Developer, You need to consider ... Desktop Laptop Netbook Smartphone Feature phone Tablet TV
  • 26. As a Developer, you need to consider ... Watch? Car? Fridge? USB Desktop Aquarium? (Maybe not.)
  • 28. Mobile Android iOS BlackBerry Windows Mobile 6.5 Windows Mobile 7 (rewrite) Symbian Meego ...
  • 29. How about in 2015? Anyone's guess! But one platform is likely to be there: Web.
  • 30. Write Once, Run Many is starting to sound like a good idea
  • 31. Web Handles Many User Interfaces Browsers use a fluid layout model. Sensible defaults, whether a 10cm phone or a 200cm TV Target specific platforms with CSS Media Queries
  • 32. Web Provides Secure Sandboxing Same-origin policy prevents sharing across different domains
  • 33. Web Provides Porous Boundaries It's not black-and-white. Apps *can* share data securely - OAuth, Cross-Origin Resource Sharing, Cross-Document Messaging.
  • 34. Web Supports Permissioning Now we have rich functionality on the web, e.g. GeoLocation. But not every app gets access. As with smartphones, browsers ask permission first.
  • 35. So Web Architecture is Good in Theory How about in practice?
  • 36. HTML5 is Ready Today Not 2050, Not 2020. Today.
  • 37. HTML5 is Ready Today Oh and it's fast too Javascript Performance Benchmark http://is.gd/dAKqS Firefox 0.8 (2004): 1802ms Chrome 7 (2010): 10ms DOM Rendering Benchmark http://jsperf.com/dom-selection-appending/2 Firefox 0.8 (2004): ~111ms (9 ops/sec) Chrome 7 (2010): 2ms (460 ops/sec)
  • 38. User Interface: Canvas Canvas: Effect Engine HTML5 Game Jam: "Enterprise"
  • 39. User Interface: CSS Custom Fonts Transforms Much more...
  • 40. Input Geolocation Orientation Speech Detection Idle Detection Device API: Camera? Microphone? http://flickr.com/photos/mofetos/435827739/
  • 41. Networking Your Grandpa's HTML: Links Forms Ajax: XMLHttpRequest Now: Cross-Domain access with CORS 2-Way Streaming with WebSocket Server-Sent Events with EventSource
  • 42. Offline Application Caching Web Storage Web SQL Database Indexed Database File Access
  • 43. Installable, if you want to Mobile: PhoneGap, Titanium, Roll-Your-Own Desktop: Google Chrome Web Store
  • 44. And Besides Compatibility ... Open standards Open source Easy to dive in Tools and library support Diverse community
  • 45. Want to Learn More? HTML5Rocks.com ChromeExperiments.com Want to Learn Even More? http://www.html5rocks.com/resources.html
  • 46. 'Which?' is the Wrong Question
  • 47. Web Apps • Near universal coverage • Deploy once, update instanly Native Apps • Deep hardware and platform integration • Support for rapid hardware innovation • Device and platform specific features • Optimized user experience Two Great Tastes that Taste Great Together
  • 48. • Yes! • Build a web client first to offer your app to the largest possible community of users. • Build an optimized native client that leverages platform specific features and an optimized user experience. Both? Really?
  • 49. • Hardware access? • Feel the need for speed? • Background or concurrent execution? • System access? • Deep integration? Understand Your App's Needs
  • 50. HTML5 in Native Most platforms include a native Web View control. Include Web View for specific features Book reader: The catalogue Game: High scores or use HTML5 for the entire app ...
  • 51. HTML5 for Entire App Wrap HTML5 app as native. Can also use native capabilities. Nitobi PhoneGap http://phonegap.com/apps http://build.phonegap.com (private beta) http://apparat.io/ from Uxebu (private beta) Appcelerator Titanium http://appcelerator.com
  • 52. Native Apps with HTML5 Make it work offline. Use client-side storage when offline. Don't point to server...package it up! Or use Application Cache and Client-Side Storage.
  • 53. Native Apps with HTML5 Prioritize platforms. For high-priority platforms, customise UI and incorporate native features. CSS Media Queries. JavaScript Feature Detection (Modernizr library). Introduce native styling. UI Toolkits: Sencha Touch, jQTouch, jQuery Mobile ...
  • 54. Questions! • Twitter: o @retomeier (Android) o @mahemoff (Web)