This document discusses cross-platform mobile development and compares various frameworks beyond HTML5. It summarizes that HTML5 is a viable but compromised technology that is not the only cross-platform option. When choosing a framework, it recommends determining priorities like cost and user experience, using a framework comparison tool to narrow options, prototyping the application, and evaluating factors such as code sharing, the developer experience, and the user experience.
7. THE HYPE
“HTML5 takes the internet by
storm”
BBC News (Technology), 8 May 2012
“New York Times and Burberry join the
HTML5 brigade”
The Guardian Technology Blog, 3 Oct 2012
8. … AND SOME ‘ANTI’-
HYPE
“Why HTML5 Is Still Not Ready For
Prime Time”
Business Insider, 7 Nov 2012
“The biggest mistake we made as a
company was betting too much on
HTML5 as opposed to native”
Mark Zuckerberg
“Why LinkedIn dumped HTML5 & went
native for its mobile app”
Kiran Prasad
11. HTML5
• Canvas and video tags
• Local storage
• Web Workers – background tasks
• Web Sockets
• CSS3 – layout, opacity, gradient fill …
• And more ...
13. NATIVE vs. HTML5 vs.
HYBRID
• Native
• HTML5
– Accessed via the browser
– Some phone features not accessible
– App-like experience is possible (but not via app-store)
• Hybrid
– HTML5 content rendered within a browser control
– Distributed through app-stores / marketplaces
– Best of both worlds
17. SELECTING A
FRAMEWORK
• Usual principles apply
– Cost
– Maturity
– Support / community
• What is the end-user experience?
• What is the developer experience like?
• How much code is shared?
• Which platforms do I care about?
… now go and start testing
18. Helping you select a cross-platform mobile framework
… inspired by TodoMVC
19. • A realistic application
• Create apps that are ready for app-store
distribution
• Matches the native look and feel for each
platform
• Well designed / structured
26. JQUERY MOBILE –
THOUGHTS
• Some UX compromises
• Android uses iOS theme
– Android and iOS share the same code
• Windows Phone experience was very
was poor
• Some friction between frameworks
• Tooling was ‘standard’ web approach
27. SENCHA TOUCH
• Popular commercial framework
• Built using Ext JS
• An end-to-end solution
• Creators of Fastbook
29. SENCHA TOUCH -
THOUGHTS
• ‘Thick’ UI abstraction – no HTML
• Android and iOS use the same theme
• Almost declarative feel to the
application code
• Impressive user experience
• Steep learning curve
• No Windows Phone support
30. • Commercial framework from Appcelerator
• Creates a native UI
• Written in JavaScript that runs in an interpreter
• Titanium Studio IDE
• Relies on native build tools
• Abstraction layer hides Android / iOS differences
TITANIUM
32. TITANIUM - THOUGHTS
• Native UI gives the best UX
• Why JavaScript?
• Friction due to the ‘thick stack’
• Leaky abstraction
• Application was developed quickly
• No Windows Phone support
33. XAMARIN
• C# and the .NET framework
• Very thin abstraction layer
• MonoTouch and MonoDevelop
• Native UI
35. XAMARIN - THOUGHTS
• Matches the native experience exactly
• More code – yet strongly typed
• Lacks a UI abstraction layer
• Planning is required to optimise code
sharing
– You could easily end up with zero code
shared
36. AND THE REST …
• Adobe Air
• jQTouch
• RhoMobile
• KendoUI
• mgwt
• Intel App Framework
• DXTREME
• Enyo
• Emy
37. CONCLUSIONS
• HTML5 is a viable technology
• HTML5 is a route of compromise
• HTML5 is not the only cross-platform
technology
38. CHOOSING A
FRAMEWORK
• Determine what is important for your
application
– Cost? UX? Which platforms?
• Use PropertyCross to narrow the selection
• Prototype your application
• Evaluate
– Code sharing
– Developer experience
– User experience
+ Highlight differences compared to a native UI
+ Android is a second class citizen
+ WP version is terrible!
+ Titanium IDE
+ (leaky) abstraction layer for UI code
+ JavaScript compiled into native code
+ Titanium IDE
+ (leaky) abstraction layer for UI code
+ Highlight differences compared to a native UI
+ Android is a second class citizen
+ WP version is terrible!
+ Highlight differences compared to a native UI
+ Android is a second class citizen
+ WP version is terrible!
My personal approach for choosing a platform for a specific development is as follows: * Determine exactly what platforms you want to reach, iPhone, Android (which version numbers), BlackBerry, WindowsPhone ... * Define the requirements that you feel will be the most challenging. * Take these requirements and turn them into a few representative screens or UIs. In other words, do a little bit of your app design. * Use PropertyCross ( http://www.propertycross.com ) to help select a few frameworks that you think might work for you, in that they deliver a user experience you are happy with and that the tools / language are suitable for your development team. * Prototype your application using the frameworks you want to test out. * Place these prototypes in the hands of your users, stakeholders, developers - your wife and mother-in-law. See what the users reaction is to each framework. * Take a view on delivered user experience versus cost for each frameworks. * Choose one and go for it! Prototyping with a few frameworks might sound costly, but with so many options, each of which are quite different, I feel it is the only way to be sure you have made the right decision. Making the wrong decision can be very costly. You don't want to do a 'Facebook' and have to throw away your whole application because you are the wrong choice! Finally, in step (4) above make sure you also consider native and non HTML5-based frameworks (Xamarin, Titanium, AdobeAir). HTML5 is not the only way to make a cross-platform application!