Mobile

Hybrid or Native Mobile App Development: Six Key Considerations

  • author image

There has been an ongoing fierce debate, with legitimate pros and cons on either side, as to whether mobile app developers should go native or use a hybrid approach that can accommodate the many different mobile platforms they want to target. Analyst and consulting firm Gartner predicts that more than 50 percent of mobile apps deployed by 2016 will be hybrid. There are several factors to consider when deciding a native vs. hybrid approach, but the most important are related to time to market and development costs. 

Considerations key to ROI 

A native app is specifically designed to run optimally on a device’s operating system. The hybrid approach combines the portability of the emerging standard HTML5 Web apps with a native container that facilitates access to native device features and thus supports multiple mobile devices. 

Based on our experience, the following six considerations are key factors in achieving the anticipated return on investment from developing a mobile app. 

Development speed and cost 

Hybrid apps are faster to develop. Only a portion of native code has to be re-written for different kinds of devices. The vast majority of development goes into the Web component, which is used across all devices, reducing the time it takes to build the app (and thus the development cost). These are Web apps built into a native mobile container or framework. 

This essentially means that they take advantage of the cross-compatibility of Web technologies such as HTML5, CSS, and JavaScript and use the native component to leverage device-specific features such as hardware sensors or the camera. 

Building a hybrid mobile application requires maintaining a single code base for the different platforms. Native apps require specific developments for each platform, which increases costs and duration. 

Required knowledge 

Because hybrid apps are based on Web technologies it is easier to find developers to build them and maintain them.  Globally, it is difficult in today’s heated mobile app development market to find developers experienced with iOS and Android. Due to the Web’s historical reality, the great majority of developers come with strong knowledge of Web technologies.  That history also is true for other mobile platforms like BlackBerry and Windows 8.  

Hybrid apps are a good choice for certain types of requirements. Productivity apps are the most common applications built using HTML5 (54 percent), followed by utility (38 percent). 

However, HTML5 alone is not a silver bullet.  There are other considerations besides development speed and cost that are usually not part of the decision process when choosing the technology to develop mobile apps with.  They include user experience, data persistence, immature tooling and cross-platform support. 

User experience 

Hybrid apps are not executed natively; the HTML5 and JavaScript portion of the app is rendered and executed by the platform’s Web engine, which adds another layer between the user and the app.  This can make things slower to the point where users can, irritatingly, perceive the slowness. 

Another drawback is when there is a need for animations or special user interface (UI) treatments, like spinners or custom UIs that require elements to move around the screen. HTML5 is lacking in this area. In fact, this is one of the reasons LinkedIn dropped HTML5 and went native for its mobile app. 

The look and feel of the platform is also a factor. One of the benefits of hybrid apps is that developers only have to build once; this is also true for the UI, meaning that the app will look the same across all platforms. Some users expect the apps to look like the other apps they already have. There are some common elements and guidelines that are expected from an app on a specific platform, which cannot be met by hybrid apps. 

Data persistence 

Data storage plays an important role with mobile apps. It is used to store user preferences and app data that will enable offline use of the application. Hybrid apps use HTML5 storage mechanisms, which are usually restricted to a few megabytes depending on the platform support and implementation of the HTML5 standard. Data-intensive mobile apps are not suitable for a hybrid approach, as there can be significant investment in the effort to make it work successfully. 

Immature tooling 

The tools to develop hybrid apps are not mature enough to allow developers to fine-tune their code or even help them solve problems that may affect final end users.  Tools such as debuggers, memory profilers, and code analysis are still immature for HTML5 and JavaScript in the mobile environment.  

Cross-platform support 

The majority of a hybrid app is built using Web technologies.  However, native code is used to allow the app to access the wider functionality of the device and produce a more refined user experience.  If the app requires specialized functionality commonly found in today’s popular apps (such as push notifications where a portion of the code needs to be developed in native code), or when accessing phone contacts, JavaScript needs to check for the platform it is running on.   

Although this forces developers to maintain different code bases for the native portions, it is not that bad if compared to the extensive development effort required to maintain a completely different code base per platform.  Where it gets ugly is when the HTML5, CSS or JavaScript implementation on the platform behaves differently between platforms. This is the case for functionality related to local storage for data persistence, or even CSS rules for styling. 

As far as user interfaces are concerned, most people very likely won’t notice a huge difference from a native app, particularly if there isn’t a significant interactive component in the app. 

The debate likely will continue regarding the superiority of native mobile app development over a hybrid approach while the staggering growth of mobile app development and deployment continues in parallel. Apple’s app store boasts over 900,000 apps; Android plays catch-up at 750,000.  How will the continued release of apps on both platforms affect the native vs. hybrid debate? And, will the relatively small number of Windows Phone apps (less than 150,000) factor in? Time will tell. 

Erick Vargas is a software architect at the nearshore software engineering services company Avantica Technologies. He has over 10 years of experience in software development and works with venture-backed startups and the Software 500, focusing on Web, cloud and mobile technologies. Currently he is involved in projects that require high collaboration with customers in product and strategy definition. He also leads mobile hybrid development efforts and assessments, collaborating closely to help define customers’ mobile strategy.  

Comments

By vlad

Many people want mobile apps but think it is too hard to create them. Fortunately now there are quite a lot of useful online services that allow building apps without programming skills and in hours. I am using SnAPPii at the moment and really glad I can feel like a mobile app developer and make apps on my own.

By Abhilash

Nice read. As 4g becomes widespread and mobile bandwidth becomes less of an issue, would data persistence still matter? Will we not store everything on the cloud?

By Romesh

Hybrid apps is a good category to look at. But the key is in handling both dimensions of a hybrid app — Web app and native app — well. The right choice of technologies on both the dimensions is critical, e.g Jquery mobile for the Web interface and a framework like PhoneGap for the native API access via cordova libraries.

By Terrences Marsh

To create mobile applications is not an easy task. Developers have to consider many things to develop mobile applications. Six key features you described in this post are very helpful to mobile app developers and will help them develop better mobile apps. I truly appreciate this post.

By Mandeep

Nice article. In the mobile world, terms like native app, web app and hybrid app are very common. Here’s a tiny bit of explanation. http://goo.gl/oEnqe8

By anonymous

I’m curious of opinions regarding delivery of enterprise data to the mobile device where the information may come from many remote (server-side) source systems. The information from these sources may need to be orchestrated into a single view and/or workflow interface to the user. Should each source system directly interact with the device? It’s the age old MVC pattern. The M part is easy – It’s on remote server apps. Where is V and C in relation to hybrid vs. native designs.

Post Your Comment




Leave another comment.

In order to post a comment, you must complete the fields indicated above.

Post Your Comment Close

Thank you for your comment.

Thank you for submitting your comment, your opinion is an important part of SandHill.com

Your comment has been submitted for review and will be posted to this article as soon as it is approved.

Back to Article

Topics Related to this Article