Android apps or the mobile web? It's often a hard choice when deciding where to invest your mobile development resources. While the mobile web continues to grow, apps and app stores are incredibly popular. We will present both perspectives and offer some suggestions for making the most of each platform.
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
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.
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 ...