Hybrid or Native?

In their recent Developer Economics 2012 report, VisionMobile calls out (on page 29) the question of Hybrid or Native. What is the right technology choice when considering the development of a new application? Which is better, HTML5 (mobile web or hybrid) applications, or native applications. Clearly each have their advantages and disadvantages, right? According to VisionMobile, this is the wrong question.
In the report, VisionMobile identifies three decision criteria that must be evaluated in order to make the choice between HTML and native.

  1. Existing assets: Which languages does your development team know? What languages are your legacy content assets coded in?
  2. Depth vs. breadth of experience: Do you need to deliver deep experiences and code directly to the platform? Or is breadth of experience more important, which would lead you to leverage cross-platform tools/hybrid solutions?
  3. Distribution channel and monetization: Are you a major brand with existing customer accounts, or do you need app stores to reach and bill customers.

Personally I like the way VisionMobile looks at this decision tree. The fact is, there is no universal truth – hybrid is not always better than native and native is not always better than hybrid. The technology decision has to be made while considering all of these factors.

Recently I was at a technology trade show where we were demo’ing Icenium non-stop for several days. Every demo I did I would ask the person I was speaking with about their interest in mobile app development and their background. My anecdotal findings are that the majority of the people I engaged with were coming from a web development background and either approaching mobile because of the opportunity it provides (reaching millions of people) or because they are being directed to by their boss (e.g. how can they mobilize their existing web assets). In either case, the person I was speaking with and the development team they were representing had existing skills in HTML and JavaScript, and were somewhat intimidated by Objective-C and Java (or at least frustrated that they were going to have to learn anther set of skills to solve this problem).

In either case, if these people used the decision tree presented by VisionMobile, in many of their cases they would choose Hybrid as the right solution for them – the have skills and content assets in HTML & JavaScript (#1), in almost all cases they were looking for a breadth experience over a depth experience (#2), and either wanted in-house enterprise distribution or AppStore distribution.

The fact of the matter is that Hybrid apps are a perfectly good technology choice in many cases (possibly more so than native). They are easily approachable because they use languages and technologies that the majority of developers are familiar with, which drives down the cost of development, and they can reach multiple platforms with a relatively low cost of development per platform (another huge plus for the people I spoke with).

Hybrid apps may not be the right technology choice all of the time….but I am betting hybrid is the best choice 80% of the time. What do you think?

One thought on “Hybrid or Native?

  1. From a developer standpoint I fully agree and it turns out I’ve used this same decision tree unwittingly during my evaluation between native and hybrid: I am skillful with .NET and C#. (#1) I’d like to target the breadth experience; popular frameworks, like iOS, Android and (soon to be?) Windows Phone. (#2), and I would like to use the app stores to monetize. (#3).

    However, I may have found a better fit for my case, rather than the ‘hybrid’ solution. Maybe something in between native and hybrid. Xamarin’s MonoTouch, Mono for Android and native Windows Phone. They allow me as a C# developer to build native apps, but still I can have a major part of the code base shared between platforms.

    After testing some hybrid solutions, I’ve found that the UI side still lacks the performance of native, which can really get on your nerves from the user’s perspective; think the iOS Facebook app… But, hybrid does offer significant benefits for developers with a web background, like me. Exactly for the reasons you state, Dave.

    Therefore, what I would like to see from a hybrid framework, is better components to handle performant UI tasks, like automatic loading/unloading of screens, automatic population of table scrolls (like native), and other tweaks to keep the DOM small, ‘page’ rendering lightening fast, and JS execution time minimal for speedy response. Of course native looking controls are awesome, but if they don’t perform well, all that effort goes to waste. Until then, I’ll keep my bets on the Mono frameworks. 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s