HTML5 vs Native: What is it and how do you decide? – Part 2

This is a two part article about HTML5 vs. Native Development. In Part 1 we focused on the benefits and features of HTML5. In Part 2 we take a deeper look at Native Development. We’ll offer some guidelines to help you pick the right one for your development.

What are the benefits of Native Application Development?

As powerful as HTML5 is becoming, native applications still hold some big advantages. Here’s just a few of those advantages:

  • Consistent User Experience
    Native applications built for the iPhone® have context menus and icons specific to the iPhone® and the same is true for Blackberry® and Android®. This user experience is consistent across all applications on that particular device and is more consistent with what the user expects to see.
  • Access to Device Features
    Tablets and other mobile devices have a variety of built-in capabilities such as a camera, phone, GPS, calendar, address book, voice recorder, etc. Native applications allow developers to seamlessly integrate with these features, making their applications both powerful and extremely user-friendly.
  • Offline Mode / Synchronization
    Unless a native application has a specific need to connect to the Internet, it has the ability to work without network connectivity. Most games and many applications operate this way. Even those applications that may need periodic access to account data have the ability to “synchronize,” just grabbing the data they need, reducing processing time and bandwidth costs.
  • Performance
    Native applications run directly on the device they were built for and do not require a middle layer (such as an HTML5 capable browser). This means there is less overhead and therefore, increased performance.

That’s a lot to consider – how do I decide?

How do I decide between Native and HTML5?

Like everything in life, there are pros and cons to each. You have to make the decision as to what is most important to you and your application.  Here are some key points to help you make your decision:

Choose Native Application Development If:

  • You’re developing for one specific device or you have the resources to create specific apps for each device you plan to target
  • Performance is a primary concern
  • You need access to device features such as the camera, address book, or voice recorder
  • You want to take advantage of the consistent user interface available to each device, such as contact menus and dialog boxes

Choose HTML5 Development If:

  • You want to write one application and make it available on multiple devices without having to maintain multiple code-sets
  • Speed is important, but the performance can be enhanced enough with web workers, local storage, and other HTML5 features to accomplish that goal
  • You do NOT require direct access to device features, such as the camera and voice recorder and your GPS needs (if any) can be met with the HTML5 geolocation API
  • You are more concerned with building a consistent UI within the application and do not need/want the device specific context menus, dialog boxes, and other device UI specific features

Conclusion

It’s a lot to consider and sometimes the answer isn’t simple.  There have been several companies and developers that started down one path and ended up having to change course.  For example, Facebook started development with HTML5 but found the feature set wasn’t quite where they needed it to be. They switched over to native application development.

However, just because it didn’t work for Facebook doesn’t mean it won’t work for you.  HTML5 is growing constantly, adding new features, and gaining more support, which make it a very attractive option.  Start by deciding what you absolutely must have and be careful to evaluate all your options.  Good luck and happy developing!