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?

Article Written by

  • http://twitter.com/bboyairwreck Eric Chee

    do you have an books, or websites to point to for an aspiring HTML5 web app developer. while i know i can just google how to code certain programming languages, I was wondering if you had any personal experience with any academic resources. Great article btw.

  • Jason

    First, I say your commentary highly camoflages the fact you are a high school senior. I believe the function of the app itself will determine whether it is best performed natively or via browser. To me, for data driven models rather than games, the ability to keep an “app” up to date without constant downloads and/or reinstalls is priceless. Radio stations wishing to change streaming providers, for instance, have to ditch their entire userbase if they wish to move to an alternate platform. This is untenable. If the opening to the app is a webpage, content can be modified on the fly. As for Words With Friends and Angry Birds, they could well be web apps… No?

    • Juanfe

      I agree with you on that the function of the app is the factor that should determine its native or web nature.
      There is no doubt that for a heavily graphic-oriented game it is better to be a native app; for other types like banking, health information, (very data oriented as you mentioned), it is imperative to keep the app up-to-date, and the best way so far is the web aproach. However, the later aproach might seem (to a seasoned app user :-) ) slightly slow compared with the native apps.

  • Peter

    Pretty much agree on this one – if you want a native app (with the extra functionality you get), you have to write it and support it multiple times. If you write a web app to do mostly the same thing, you may lose a little in the native functionality side, but you only have to support one platform. Unless you really need offline support, some specific feature that’s only found on a platform, or the like, writing a web app just makes more sense for a lot of sites.  I know that’s the way we’re kind of leaning at the moment – write a good web app and just support that instead of multiple apps for multiple platforms.

  • Lewis Senior

    I am so looking forward to Boot2Gecko, it may just get me into development. 

  • Tomsoft

    – “web app are scalable” : when poeple refer to an app being scalable especially web app, they usually talk about being to scale with an increasing number of users. In your case, it’s more “web app can scale to screen size”
    – In the real world, scenario is not as easy as you describe , you usually have to do different version for different device, or ending with complex css. Many top site that have both web/mobile version have two different output, not only css. This probably cost as much than specific app.

    My personnal view, is that CSS/HTML/DOM is a nightmare to create application. It might be good for web site but not for app.
    The complexy of layout and the lack of standard layout make this verrry complex. HTML5 is an “in between” techno. Of course it’s very flexible and you can do a lot of things, but it takes so long to create simple things compared that there is obviously a lot of room for improvment.
    THe other issue, is that complex web browser based project are hard to achieve if there are not (web)page based. Again, not beacause it’s a bad technology, but becaise it’s more the wrong answer.
    I would love to see a different approach, based also why not on CSS/Javascript but with a better model than dom, simple layout, high level component, standard libraries and UI elements , etc…

  • http://profiles.google.com/john.robert.gustavsson John Gustavsson

    I can play Angry Birds and Cut the rope on my Linux PC using the Chromium browser and web apps from the Chrome store. Also Cut the rope as been made with HTML5 for the Windows 8 Metro app. 

  • joven

    yes webapp will be the obvious technology in the future..