It is a pretty common occurrence these days that we see news about the current trends of native apps versus HTML5. Talk about a lot of hand waving and generalities! Let’s first clarify the categories:
- Native comprises predominantly iOS and Android apps, but also includes Blackberry and Windows.
- HTML5 is actually two categories: mobile web (think m.yourcompany.com) and hybrid mobile web apps.
HTML5 is on the decline!
A recent InfoWorld article (referencing a Forrester research paper) concludes that HTML5 is “no silver bullet” because, “… HTML5 apps are known to be slower than native mobile apps and take longer to develop and test.” The InfoWorld article identifies the main culprit as HTML5 support in mobile web browsers due to bugs and slow updates. The article also cites a slight decline in developer interest in HTML5 from the quarterly Appcelerator / IDC survey of 6,698 developers. The article does acknowledge that HTML5 may be suitable for a subset of apps like “internal lines of business.”
HTML5 is on the rise!
A different article on ReadWrite by Matt Asay concludes just the opposite: developer interest in HTML5 is increasing. Based on a survey of 7,000 developers (Vision Mobile’s Developer Economics report for Q1 2014), HTML5 mindshare climbed from 52% to 54% while iOS declined from 56% to 52%. The article does a great job in breaking down the demographics and economic motivational forces at play; such as how iOS apps still drive a bigger share of revenue for developers.
Who to believe?
What to make of all of this? First, sample set sizes and survey results can widely vary—duh. One wonders if the 6,698 Titanium developers are losing interest in HTML5 because of their experience with Appcelerator’s toolset? Why this is happening doesn’t have a direct answer, yet. For every report showing one thing, there seems to be another that can show the opposite.
StrongLoop’s position around this dichotomy centers around the following:
- HTML5 is not a panacea for the cross-platform challenge in mobile and does not fulfill the “one size fits all” dream through responsive web
- The right “platform” of choice for your individual development effort is totally irrelevant without examining your use cases
- What is truly important depends on who you are and your mobile strategy and needs
Let’s decide for ourselves
Take a look at this HTML5 compatibility chart for mobile features. At first glance your initial impression may be how fragmented the features and capabilities are in each of the listed platform. Lots of checkmarks all over the place. But then when one runs down the list of HTML5 features you really wonder which are more “mainstream” or foundational features (such as CSS3 support) versus more specific to a use case like for real time communication streaming (such as WebRTC). Furthemore, are we talking every mobile browser listed? If not, the cross section that actually matters becomes even smaller.
When deciding on the platform of choice for whether to go native, mobile web or hybrid, taking your use case and cross referencing it against the wide capabilities of the HTML5 feature set geared to mobile probably leads to a much small intersection that what is listed at large especially on a per app basis. Does your typical consumer mobile banking app from the likes of Wells Fargo require bi-directional support offered by websockets? How about web audio? Does your typical consumer web radio app like Spotify? Your answer and your intersection of use cases to features are going to heavily depend on your intended use cases.
Finally, let’s make the biggest distinction: are we talking about the consumer-facing applications that are used to make money like Angry Birds where the app is the company? OR are we talking about the enterprises who need to extend their core functionality into mobile, whose mobile strategy is to maintain the same level of user engagement as what they have waning in the web world.
- Install LoopBack with a simple npm command
- What’s in the upcoming Node v0.12 version? Big performance optimizations, read the blog by Ben Noordhuis to learn more.
- Need performance monitoring, profiling and cluster capabilites for your Node apps? Check out StrongOps!