Mobile devices now account for more than one-fifth of all Web activity. Your company may be online, but if you're not specifically targeting your mobile users, you are missing out on a huge piece of the market. However, when deciding how to approach optimization for mobile users, you will be presented with two compelling options: native apps and HTML5. The best course of action will, in the long run, depend on the nature of your services and your company’s motivation for mobile development.
The History of the Debate
HTML5 was developed as a solution to storage issues. Back in the day, Internet Explorer only allowed a mere 64KB of storage per domain. Other browsers offered even less, which made them far less popular. When that wasn’t enough for developers, they started creating third-party plugins to allow for additional storage. Many options came and went, some sticking around longer than others, including Dojo Toolkit, Gears, and Flash cookies, but the options were tough to manage. Enter HTML5, a solution that enables information to be stored directly to the user’s browser.
Native apps, on the other hand, were developed along with the rise of smartphones to solve the lack of usability present with mobile sites. The interface and functional capabilities were far superior in applications designed for specific devices, so developers flocked to this venue to improve their company’s mobile user experience. All of the information is stored directly on the device, so storage limitations were no longer an issue. However, they were (and continue to be) expensive to develop, and with the growth of HTML5, developers now have a decision to make.
HTML5, mobile or otherwise, has the ability to store locally across different browsers, finally solving the problem of storing data to the user’s browser regardless of what that browser may be. No third-party plugins are required, yet the stored information and user experience are fairly consistent across all major browsers. This is especially useful for mobile users who use whatever browsers come programmed into their devices and vary from among manufacturers.
Updates and repairs are instant and universal. With a well-developed HTML5 mobile site, there is no need for users to download updates or report issues. As soon as they visit the site, the most updated version is delivered to their devices without any effort on their part.
Development and maintenance of an HTML5 site require considerably less time and money. Unlike specific operating system experts, who are in short supply, programmers well versed in HTML5 are more abundant because it’s the common language of the Web. The development of an HTML5 site only has to be done once - “Write once, run everywhere.” - and the site can be maintained more closely and updated more frequently for less money.
New HTML5 functions can access device hardware. With certain codes and plugins, HTML5 mobile sites can access the device’s hardware, such as the camera, microphone, photo gallery, etc. This can allow for user interaction with the site, something previously reserved for native apps.
Fragmentation is still an issue. While HTML5 is supported on all major browsers, there are at least 15 mobile browsers, each supporting a different level of HTML. Depending on how up-to-date a user’s browser is, he or she may not be able to access all the features of your site.
Without data coverage or Wi-Fi, your site will be inaccessible. If your user is in a situation where he or she has no data coverage and there is no Wi-Fi available, it won’t matter how beautiful and engaging your HTML5 site is because it will be entirely inaccessible. This downside is something to seriously consider when deciding between HTML5 and a native app.
Unlike HTML5, native apps can be accessed without Wi-Fi. You will likely want to integrate the Web into your app to some extent, but a truly native app will have most or all of the data cached directly to the user’s device. Now, when your user is in that remote place without data or Wi-Fi, he or she will still be able to interact with your app.
The user experience capabilities are nearly infinite with native apps. Since you don’t have to design an interface that is compatible with multiple browsers and devices, you can focus instead on making the most of the design and integration capabilities of native apps. Perhaps the most notable is the ease with which native apps integrate device hardware.
Native apps offer an opportunity for monetization. Native apps are sold within an app market (App Store, Google Play, etc.), and while users often appreciate a free app, they are also willing to pay for a high-quality mobile experience under the right circumstances. This creates an opportunity for monetization that HTML5 can’t.
The security of native apps is far superior to HTML5. Browser code is available for the world to see, whether information is being loaded, shared, or even idle, and VPNs are generally too slow to run in a mobile browser. However, with native apps, you can run VPNs and other encryptions without too much of an increase in loading time, and the code is secure.
Users must manually update (or authorize updates for) mobile apps. If the information within your app changes often, the frequency with which your users have to update may negate the app’s convenience. The solution to this is not to force your users to the Web from within the app; it is equally inconvenient, and heightens the risk of your app being viewed as useless.
Developing apps costs considerably more time, money and resources. Experts in different operating systems and app markets are harder to come by than HTML experts, and typically cost more to procure. Likewise, developing apps for multiple devices (which should be your goal if using native apps) increases the time to market.
Which Approach is Right for You?
Ideally, your company would have the resources and personnel to develop both native apps and an HTML5 mobile site. However, not all companies can afford such a comprehensive option. If you have to decide between the two, the approach your company should take ultimately depends on the nature of your company and the purpose you have for developing a mobile site.
Use native apps if…
Your focus is developing a robust user experience that requires little updating. Also, if you are developing an app to manage confidential information (e.g. banking, insurance, password management, etc.), then native apps are the way to go for security reasons.
If you choose to use native apps, be sure to address issues immediately. Updates may be a pain, but most users are happy to do them if it will make their experience easier.
Use HTML5 if…
You want to ensure that your user experience is consistent. Accessibility and consistency are as close to ideal as possible with HTML5. Also, HTML5 mobile sites cost significantly less to develop and manage. If your updates would be frequent, users will appreciate not having to manually update an app.
If you choose to use HTML5, remember to review and test your code thoroughly before going live to ensure an optimal user experience. Once online it will be critical to monitor your mobile site, as it will be the one destination for all your mobile visitors. A poor user experience leads to lower conversions, lost revenue and defection to competitors.