Why Web Apps Might Beat out Native Apps on the Mobile Front

In my last article here on LockerGnome, I talked about Boot2Gecko (or Boot to Gecko, if that fits your fancy), Mozilla’s latest endeavor: a mobile operating system using the Gecko layout engine as the application runtime. That is, in Boot2Gecko, every application you see (including the UI) is built entirely using Web technologies such as HTML, CSS, and JavaScript. Now this is great and dandy, but how do these applications built using the languages of the Web compete with “native” mobile apps — that is, applications written in Objective-C on iOS or Java on Android? It’s time to find that out.

I recall way back when I was still in elementary school (putting things in perspective, I’m a senior in high school this year). I was just starting to really get into computers. I had been using them since I was four, but I was mostly just playing video games and fiddling around with various settings and whatnot. Soon enough, I discovered that it was fairly simple to create Web pages in HTML.

As I spent more and more time with it, I gradually improved my designs, going from simple pages of a white background with black text to tables and images and all sorts of fun stuff. I enjoyed the fact that I could now make my computer, which I valued over just about anything else in my possession, do what I told it to do. I think it was safe to say that, at that point, I was hooked on the Web (creating for it, that is).

Now I’m all grown up, and I know quite a bit more than simple HTML. As far as Web development goes, I have plenty of tools under my belt that allow me to design and construct sites and applications that are both beautiful and functional: CSS, JavaScript, PHP, etc.

But what is the meaning of this nostalgic anecdote, you might ask? To put it simply, as well as explain the first point I have to make in regards to this article’s purpose, learning the languages of the Web is perhaps the easiest, most accessible way for anyone to get started developing with computers.

I think many other “modern” developers can say the same thing: they began with a language of the Web, and expanded out from there. Based on this, I think the most recognizable languages are those used to build Web applications.

This is why — especially after my previous article — I began taking a serious look at using Web technologies to build applications for mobile devices. As the rendering engines used in mobile browsers continue to accelerate to the levels of desktop browsers, that interest will accelerate with it.

So what are the benefits of utilizing the languages of the Web to build mobile applications?

  • Web apps are portable — You can literally write your application once and deploy it across multiple devices, operating systems, and platforms. Java was adopted by the Android crew for the “write once, run anywhere” philosophy; using a language like JavaScript, which is employed by any modern browser these days, would be even more fitting to this mantra.
  • Web apps are scalable — This is similar to the prior point, but still significant enough to mention on its own. I’ve discussed Android’s fragmentation before, and much of that fragmentation revolves around the insane variation between device display size. I’ll admit, as an Android developer myself and as well as Google has prepared the Android environment for screen-independent development, there are times when that layer of support fails to completely abstract such issues from the application developer. Web apps, on the other hand, can smoothly scale across multiple screen sizes and densities when they are written properly. Cascading Style Sheets (CSS) also support “media queries,” which allow you to apply different styles depending on the configuration, which includes screen size.
  • Web apps are flexible — Now, this applies only when the Web app is actually just calling out to an external website; Such apps are never out of date, as they are downloading the latest iteration from an external Web server. This means that users will never be missing out on the latest features and bug fixes. Speaking of external Web apps, these come with the advantage, like I said, of keeping the app up to date along with reducing the size of the actual app stored on the device. This means that, while a typical smartphone can store many hundreds of native apps, that same smartphone might be able to store magnitudes more Web apps. This advantage, however, does come with the disadvantage of increased network usage — but in this day and age, perhaps that’s not so much of an issue.

With those advantages, plus many more, Web applications pose a challenging competitor to traditional native apps. Whether they will triumph remains to be seen; Web apps face plenty of challenges of their own in the form of Google and Apple pushing their native platforms as well as the idea that mobile browsers are sort of “second-class citizens” in the environment today. That is, while they are improving, they are still far behind the support offered by their bigger brethren. Web apps on mobile browsers are still relatively simple and slow when compared to the apps on the desktop.

With all this said, I am curious as to what the LockerGnome community thinks about this transition. Of course, the consumer will (it is hoped) see little in the way of differences between the two technologies, but I think getting opinions before the switch (if such a switch happens at all) and then comparing to opinions after the switch would be a neat little experiment. What say you?