Web apps vs. Native apps in Ubuntu

A couple of days ago internet luminaries Stuart Langridge and Bryan Lunduke had a long twitter conversation about webapps and modern desktops, specifically around whether or not web apps were better than, worse than, or equal to native apps.  It was a fun thread to read, but I think there was still a lack of clarity about what exactly makes them different in the first place.

Webapps are basically a collection of markup files (HTML) glued together with a dynamic scripting language (Javascript), executed in a specialized container (browser) that you download from a remote source (web server). Where as native apps, in Ubuntu, are a collection of modeling files (QML) glued together with a dynamic scripting language (Javascript), executed in a specialized container (qmlscene) than you download from a remote source (App Store). The only real difference is from where and how often the code for the app is downloaded.

The biggest obstacle that webapps have faced in reaching parity with so called “native” apps is the fact that they have historically been cut off from the integration options offered by a platform. They are often little more than glorified bookmarks in a chrome-less browser window.  Some efforts, like local storage and desktop notifications, have tried to bridge this gap, but they’ve been limited by a need for consensus and having to support only the lowest common set of functionality.

With Unity, several years ago, we pioneered a deeper integration with our webapps-api, which not only gave webapps their own launcher and icon in the window switcher, but also exposed new APIs to let them interact with the desktop shell in the same was as native apps. You could even control audio players in webapps from the sound indicator controls when that webapp wasn’t focused.

With the new Ubuntu SDK and webbrowser-app we’re expanding this even further. For example, the Facebook webapp on the Ubuntu phone actually comes with a fair amount of QML that lets you share content to it from other apps, just like you can with local HTML5 or QML apps. You will also soon be getting notifications for the Facebook app, even when it’s not running. All of this is only an extension of the remote code that is being loaded from Facebook’s own server.

Given all of this, I have to agree with Stuart (which doesn’t happen often) that webapps should be treated like native apps, and increasingly will be on modern computing platforms, because the distinction between them is either being chipped away or becoming irrelevant. I don’t think they will replace traditional apps, but I think that in the next few years the difference is no longer going to matter, and a platform that can’t handle that is going to be relegated to history.

This entry was posted in OpenSource and tagged , , , , , . Bookmark the permalink.

6 Responses to Web apps vs. Native apps in Ubuntu

  1. > With Unity, several years ago, we pioneered a deeper integration with our webapps-api,

    Yes, and then tore it all out a couple weeks before Ubuntu 14.04 LTS launched. :(

    Firefox addon maintainability concerns aside, the fact that Ubuntu Browser is utterly useless on a desktop (and since it doesn’t receive updates, this functionally means broken or unusable web app integration on the desktop for the next two years) means that Ubuntu abandoned web app integration.

    We can only hope that if the feature makes it into Ubuntu 16.04 LTS that it’s good enough that a two-year absence isn’t insurmountable.

    • Michael Hall says:

      There’s also the option of back-porting updates to the browser. The new designs are starting to be implemented, which I think makes is significantly more usable on the desktop (still far from Firefox or Chromium though).

      • Options are worthless if no one plans to work on them. There isn’t even a way to enable webapp integration in Ubuntu 14.04 anymore.

        It went from being a feature I proudly advertised and used every day to something I strongly recommend web developers to avoid altogether because Canonical isn’t committed to it and the community hasn’t embraced it.

        Hopefully if it reappears in 16.04 LTS in a usable fashion I can stop advising against it. It’s going to be difficult to say what would make me advocate for it again. Maybe if the second Ubuntu release on phones is really compelling (because it’s still not functional in utopic and the browser is extremely underwhelming) it might be useful for mobile sites, but never for desktop sites.

  2. Kiwikiwi says:

    To be honest ubuntu webapp support is terrible… asking websites to impliment a new API just for ubuntu was never going to fly.

    Canonical would have better better off putting effot in to helping implimenting the HTML5 API’s in ff / chrome and a small “add site to menu” option

    Also the browser should have been smart enough to send urls on a domain to the “app window” and push it to the front, ie clicking a gmail link should bring the gmail app to the foreground

  3. Vincent says:

    Your view of webapps mainly means that they’re different technologies of achieving the same thing. The *most important* advantage of web apps, in my opinion, is that they are platform-independent: their containers (browsers) are developed for multiple platforms, and have multiple different implementations based around common standards. While this does come at the cost of some deeper integration (or at least, despite a lot of progress in recent years, at the cost of the development speed of such integration opportunities), they are part of a far more accessible market. If they had been widespread, it would’ve been far easier for Ubuntu to enter it, as all webapps would already be available. Which is why Firefox OS’s efforts are laudable – all apps for it also work on Android.

    Ubuntu-specific APIs, however, mainly throw away this disadvantage and lock the user in to Ubuntu – meaning a developer might, indeed, just as well write a native app.

  4. Pingback: Web Apps that can Replace Native Apps on your Smart Phone or Tablet | Schultzter

Comments are closed.