Native Mobile Apps

Native Mobile Applications vs HTML5 - Your Choice?

This is the question we hear often: what path should my company take, should we develop natively (and then for what platform and why), or should we have our app developed using HTML5 and be done with it? To start with, here is a very short description of what is what, just to make sure we are on the same page when it comes to terminology.

A native application installs directly onto your tablet or phone. It is designed and built specifically for targeted devices, iPad, iPad Mini, generic Android tablet, Kindle Fire, Android phone, etc. Native applications make better use of device's hardware capabilities (GPS, microphones, accelerometers, etc.). They're best suited for rich user experiences and can provide user experience and speed HTML5 apps cannot currently reach. Native applications provide standardized user interface controls, standardized location for these controls making interface more intuitive to use and flattening learning curve. Native applications offer security and privacy advantages that are hard or impossible to match with HTML5.

From the administrative point of view, native applications can be distributed through their online stores, such as Google Play or Apple Store. And even though there are several stores for Google Apps, in order to install Apple app, you will need to submit it to the Apple Store and receive Apple’s Approval that can be withheld for a variety of reasons. First, in order to submit an app to the Apple Store, you must be an approved Apple Developer. (Alternatively, your developer can do it for you under their Developer License, or we they can assist you with obtaining your own license – we do it all the time.) Original submission generally takes 10 to 14 days or more for approval and can be delayed or declined for non-compliance with Apple’s rules. All following versions, including minor bug fixes are required to go through the same submission procedure, including wait time for approval.

HTML5 apps, similar to web pages, are written in HTML, JavaScript, and CSS. They run in mobile device's web browser. They are easier (faster, cheaper) to create and maintain. There is a number of interface features that could be both more functional and easier to develop in HTML, rather than using native iOS programming. Specifically, if your iOS app uses forms extensively, you must take into account that even simple and familiar to users form controls (check boxes, radio buttons, etc.) are not natively available in iOS and must be emulated (these are available in Android). However, HTML5 option entails a number of tradeoffs that must be made. HTML5 app must be accessed by entering URL address into a browser, which is less convenient than clicking on an icon. They are much slower to load and noticeably less responsive than native apps. By their nature HTML5 applications reveal (at least part of) their source to the user and if you are using API to connect to server-based system (for example, database), this might be a disadvantage since that API might be exposed. (Of course you can implement some necessary features like sockets, locations using server-side programming, but that negates easiness and lesser expensiveness of HTML5.)

Finally, there is a hybrid approach to developing a mobile app. A hybrid application is essentially a native application that uses HTML5 where it is beneficial from user experience and programming design point of view. This approach allows developers to leverage benefits of both a native application (hardware availability, background processes, etc.) while using HTML5 where it provides easier and cleaner interface, such as forms and drill-down menus. In this approach HTML5 is used in a “web view,” not in a browser, concealing from the user transition from the native to HTML 5 parts and providing consistent user interface with richer experience than what users would normally get on a mobile-optimized web site / using HTML5 program. Hybrid application is capable of storing login credentials, maintaining specific settings, directly accessing GPS data, etc. A major setback might be inability to collect and pass information from a web view back to the native part. That would undermine attempts to use HTML5 extensively. At the same time, you might note that Apple’s approval process generally rejects hybrid app with extensive use of the web views. From their prospective, you in this case you should use HTML5 instead of a mobile app.

It is impossible to give a generic recommendation of what approach to use, the only highly generalized advice I could muster: this is something you need to discuss within your organization and with your developer.