HTML 5 Vs. Native Apps: What's Best For Developers?
Debate rages on about whether an HTML5 Web application or a native platform application is the best solution for your project team. We've put together this list of arguments -- five for HTML5 and five for native apps -- to help frame the debate.
HTML5 is one year old -- at least officially. Last October, the spec was frozen on HTML5. Since then, many developers have adopted it for building websites and mobile applications. It's so popular that we'll soon see the end of the native mobile app, right? Well, not so fast ...
Despite the growing popularity and acceptance of HTML5, debate rages on about whether an HTML5 Web application or a native platform application is the best solution for your project team. As is the case with most things tech, the honest answer to the debate question is "it depends." We've put together this list of arguments -- five for HTML5 and five for native apps -- to help frame the debate. There are very real arguments to be made for each path.
We certainly don't expect to resolve the debate. Rather, we want to provide information that's useful for you as you think about how you approach your next Web or mobile project.
[Building apps for iOS? Read Apple's Swift Programming Language: 10 Fascinating Facts.]
It's important to note where the debate doesn't go. It's not as though one approach is inherently more Agile than the other, or even that one will be cheaper than the other for every project that might come along. Project cost will depend on the makeup and expertise of your dev team. What you hope to accomplish in your user experience will depend on the makeup of your target audience.
A year ago there were very real issues around how each Web browser interpreted HTML5. While there are still issues around how individual browsers have implemented specific technologies that depend on HTML5 (WebRTC, for example, is rather hit-and-miss when it comes to browser support), the vast majority of HTML5 structures and features are supported by all major browsers.
That's not to say there are no issues with HTML5. There are also issues with native apps. Lost in the debate over which technology will ultimately "win" the development war is the fact that technology managers are being forced to make development and deployment decisions today.
The debate will continue. Do you have a favorite in this fight? Let us know. In the meantime, here are five arguments in favor of each technology, first for HTML5, then for native apps. Once you've reviewed these points, share your thoughts and experiences with us in the comments section below.
Write once, run anywhere.
We'll lead with the big punch first. In HTML5 (like the HTML versions before it) a developer has a way to write a single set of code that can work on every platform that has a Web browser. Instead of writing a different body of code for each mobile device, coders can let the Web browsers handle the device-specific functionality.
In reality, most developers will write some adaptive code to execute depending on whether the endpoint is a smartphone or a tablet. But the bulk of the code works on anything that comes along. This is no small thing when the clock is ticking and dollars are flowing based on how much time a total development effort will take.
Web skills can win the day.
It's not particularly hard to find developers who have HTML skills. HTML is taught to students in elementary school, after all. It can, on the other hand, be challenging to find the right people to fill out a team of native app developers. When HTML5 development is the rule of the day, the odds are good that you already have the skills onboard to start building your mobile app.
It's true that HTML5 is different from HTML4. There are a lot of structures and tags in HTML5 that don't exist in HTML4. Pretty much everything in HTML4 is supported in HTML5, though, and learning the new material is relatively straightforward. It's a short trip between the two versions, rather than the long, steep trek that can be required of a Web developer who needs to learn a native application programming language.
Rapid development.
HTML5 shares something with its predecessors. By and large, development can be fast. Individual pages can be assigned to different developers. Code can be written, tested, and revised in short bursts. Also, HTML5 has incorporated primitives that would have required scores of lines of code (or third-party plug-in libraries) in HTML4.
"Time is money" is as true now as it was 80 years ago. When you can develop code rapidly, you can develop code economically. That's a win on anyone's Web page.
A bridge between traditional Web and mobile apps.
Four years ago a development team could accept all the performance and functionality limitations of HTML4, or accept the programming cost and complexity of native apps. There was no way to bridge the two and bring together some of the better qualities of each. Then came HTML5.
With HTML5, you can build an application that looks, at casual glance, like a native app. It can live in the space of an icon on the user's mobile screen, rather than as a page accessed through a browser. Think of it as an entire website wrapped neatly in an HTML5 bundle and placed on the user's device. That's a lot of functionality -- and some valuable real estate -- in an HTML5 package.
No app store required.
This is an advantage that you might not consider until you've spent time waiting for your app to be approved by one of the major app stores. Or until you've had to go through the process of side-loading an app on a device. In either case, you're left depending on another company, or going to some effort to get around that dependency. Each of those is a level of effort that you'd really rather spend on your apps and your customer experience.
Because HTML5 is a browser language, it doesn't have to go through an app store. You can include a download link on your company's website, and deliver the installation experience you want, rather than the one the app store forces upon you. A new app can be live and downloadable within minutes of the end of the dev process. A rapid deployment can mean the difference between taking advantage of an event and missing it entirely. Speed wins.
A user experience you control.
Anyone who has ever done Web development knows that each browser renders a page in a slightly different way. Now, add to that the fact that each platform will render a browser's Web page in a slightly different way. The end result is a Web app where you can control much of the user interface -- but not all of it.
When you write the entire app, you control the entire user experience. That's critical when you know your customers, know what they want, and want to make sure they get exactly what will make them the happiest. If your brand identity depends on precise measurements and specifications, then you want to have as much control as possible. That's what you get with a native app.
Zippy apps.
Mobile users want their experience and information yesterday, and aren't happy waiting more than two seconds or so for yesterday to come. When performance matters, a native app will always be faster than a Web application (barring horrible coding decisions).
Why is the native app faster? It's all about the layers. Web apps have a layer of Web browser that they have to work through, and every layer adds a bit of "slow" to the process. Strip away the "slow," and you're going to be faster. Be faster, and you're going to make your users happier.
Enhanced security.
It's hard to get around one essential fact: HTML5 is still HTML. That means it's subject to many of the security vulnerabilities that plagued HTML4, including the most significant of all: Programmer error.
This isn't to say that every native app is invulnerable. But native apps have advantages that HTML5 apps can't have. Each is unique, and none has been in the field and open to mass experimentation and vulnerability-probing for years. Want to make sure your app is as secure as possible? Build it yourself and wrap sensitive data in protection you share with no one. There's your more secure app.
No connection required.
Web applications share a particular trait: They tend to need to be connected to a Web server in order to do much of anything. That can be a problem if the system on which they're running isn't connected to the Internet. With a native app you have the option of storing data on the mobile device, processing it, displaying results, and then sharing the data with a cloud system or central server when Internet access is restored. It's easy to forget that there are still plenty of places on earth (or even in the US) where Internet connectivity isn't a given. When reality is part of your app environment, it pays to build in some accounting for lost connectivity. Native apps have the advantage when the lines are down.
A better user experience.
No matter how designers play with the pieces, there's something about a Web app that always looks and feels like a Web app. Every mobile user is familiar with that look and feel, but that doesn't mean they have to like it. Recent surveys indicate that users prefer the app experience over that of the Web application. If you want to keep your users coming back for more, give them the experience they want. In many cases, that's going to mean giving them a native app.
To be honest, there's an option that we haven't really discussed: The "hybrid" app. A hybrid app is a native app wrapped around an HTML5 core, or vice versa. Ideally, it promises the best quality of each. There are analysts of the opinion that hybrid apps will ultimately outnumber HTML5 and native platform apps. The question is whether a pure play in either direction, or a hybrid approach, is the best for you and your app project.
So there you have it: Five arguments in favor of HTML5, five in favor of native apps. As a developer, which do you find more compelling? As a user, which do you find more pleasant? Let us know in the comments section below -- and tell us which kind of app you're more likely to deliver to your users.
A better user experience.
No matter how designers play with the pieces, there's something about a Web app that always looks and feels like a Web app. Every mobile user is familiar with that look and feel, but that doesn't mean they have to like it. Recent surveys indicate that users prefer the app experience over that of the Web application. If you want to keep your users coming back for more, give them the experience they want. In many cases, that's going to mean giving them a native app.
To be honest, there's an option that we haven't really discussed: The "hybrid" app. A hybrid app is a native app wrapped around an HTML5 core, or vice versa. Ideally, it promises the best quality of each. There are analysts of the opinion that hybrid apps will ultimately outnumber HTML5 and native platform apps. The question is whether a pure play in either direction, or a hybrid approach, is the best for you and your app project.
So there you have it: Five arguments in favor of HTML5, five in favor of native apps. As a developer, which do you find more compelling? As a user, which do you find more pleasant? Let us know in the comments section below -- and tell us which kind of app you're more likely to deliver to your users.
-
About the Author(s)
You May Also Like