HTML5 vs. Native Mobile App Development - Making The Decision

HTML5 vs. Native Mobile App Development - Making The Decision blog_pics/html5_vs_native.jpg

When clients approach Tivix to develop a mobile app, one of the first decisions is whether to go native or take the HTML5/Cross-platform approach. There is no one-size-fits-all answer, but with experience we’ve developed a set of guidelines and questions to help our clients with this decision. We formulated these guidelines from understanding the pros and cons of HTML5 and native development and questions that should be addressed prior to making a decision. We will start with the pros/cons list (with a brief intro) and conclude with the questions.

HTML5 Development

Overview

While HTML5 is often the term used to describe cross-platform apps, it’s only part of the equation. The other big pieces often not mentioned are JavaScript and CSS. Using just these three tools, a web app can be built for the user to access in their mobile browser. In order to take it a step further and launch the app on a platform’s marketplace (app store), you’ll need a native wrapper. We like the PhoneGap framework and will be using it in this article.

Pros

  • Write Once, Run Everywhere - Perhaps the main advantage of going with the HTML5/PhoneGap approach is maintaining one code base for every platform you wish to target.
  • Accessible via phone’s browser - Since the same app will be available via the phone's web browser, users will receive a high quality (and consistent) experience when finding you through the web.
  • Web Developer Friendly - If web development is your specialty, you’ll be able to reuse many of the same languages and tools you already know. No need to learn Objective-C or Java.

Cons

  • Write Once, Run Everywhere- As nice as this sounds, it isn’t entirely true. Each platform has their own caveats that require customization. Moreover, the fragmented nature of the various devices (looking at you, Android) call for tweaks and adjustments to be made. This prevents the seamless push of a button we desire.
  • Performance- Native code is simply faster than Javascript. This has been discussed several places. We like this article.
  • User Experience - Each platform has its own experience. A transition on iOS is different from a transition on Android. Targeting one is a slap in the face to the other.
  • Lack of community - LinkedIn’s senior director of mobile engineering said in an interview “It’s not that HTML5 isn’t ready; it’s that the ecosystem doesn’t support it,” and we agree. If you’re coming from the web development world, you’re spoiled with a huge community contributing to thousands of open-sourced libraries. This simply isn’t there yet for mobile web development. It’s improving, though.

Native Development

Overview

Developing native applications calls for writing in the platform's native programming language. Different platforms are based in different languages. Here are a few of the main ones:

  • iOS - C/Objective-C
  • Android - Java
  • Windows - C/C#
  • BlackBerry - Java

These native languages are compiled languages, as opposed to JavaScript, which is interpreted. You can read up on what this means through a simple web search, but basically JavaScript ends up being read and executed by the platforms at runtime.

Pros

  • Performance- Native code is faster than JavaScript and will be for the foreseeable future.
  • User Experience - Users will have the experience intended for the platform. This includes transitions, UI elements, and everything in between.
  • Existing Tools - In addition to the frameworks Apple/Google/Windows provide out of the box, there are a wide variety of open-source libraries available for mobile development.

Cons

  • Maintainability- Several code-bases to develop, test, and maintain.
  • Platform Expertise- An expert in Android development is usually not an expert in iOS development. You’ll have to hire a development team for each platform, or find yourself a mobile swiss army knife developer.
  • Testing/Deployment- Since HTML5 apps can run in the browser, launches/bug fixes can be instantly deployed to the server and available to everyone. Native development involves building/rebuilding, packaging, and deploying.

  •  

The Decision

Now that you have a brief overview of the pros/cons of HTML5 vs. native development, let’s take a look at some of the essential questions you should ask yourself before making a decision.

It’s easy to rush into the development of your mobile application, but taking the time to define your product requirements and truly understand your customer will help you answer the points discussed throughout this article.

If you’re considering a mobile application for your organization, we have a highly qualified mobile team, with both HTML5 and native app development experience.

  • Your Customer- Take the time to research the types of devices your users are on. It’s possible 90% of your entire user base is on iOS, so it makes most sense to focus solely on that platform and ignore the rest (at least for version 1). If you have a site and analytics setup, check this out here.
  • Features- Do you plan on making heavy use of gestures (swipe/touch/drag/etc) or native phone features, such as the camera? While there are some nice JavaScript libraries out there for gesture recognition (Hammer.js) and PhoneGap allows native hooks, we've found the experience is simply not the same.
  • Product Use/Traffic Sources - At its core, how do you expect your product to be used? Do you expect users to integrate it into their life (e.g. use on a consistent basis) or will it be needed once in a while? How do users find your product (search engines/word of mouth)? In 2012, Nielson reported the average number of apps a user has on their smartphone is 41. If the previous 28% growth continued this year (we think it did that and more), that number is closer to 53. Even if you can get your app onto a user's phone, if they are not using it on a consistent basis, chances are they will forget about it. However, users are still googling on mobile, so if you primarily reach users this way, mobile web should be the priority and a native app can be a nice-to-have.
  • Your Budget- How much are you willing to spend? Developing separate native applications on each platform is more expensive than the HTML5/PhoneGap approach. It requires development in vastly different environments, resulting in the need for specialized developers for each and different code bases to develop/maintain/test.

Contact us for more information.