Stop making apps and start making PWA's

A technical discussion in favour of switching over to the Progressive Web Apps train.

We've all been through this: downloading a several-megabyte-sized native app that does little more than just display a Web page or, even worse, the most mundane and ordinary table with plain boring text. Even though the developers made it using the latest and greatest mobile framework that has all the bells and whistles, after many months of negotiating with Management, one can't help but wonder: why going through the trials and tribulations of making an app that displays a Web page, and not making a simple yet well-designed Web app?

In the beggining, there was the Web

... And it was void and without form. Well, not quite. When Tim Berners-Lee wrote the standards for the World Wide Web back in the early 1990's, he had already envisioned the enormous potential the Web had as the bedrock upon which new services would be built that could do something other than just linking text documents to one another. Even though extensions to those standards such as multimedia features were introduced later on, it was almost certain that, when the technology got to the hands of people and enterprise, they would extend the standards to meet their ever-growing demands.

Only four years after HTML 1.0 was released, a young programmer by the name of Lou Montulli was working for Netscape Communications, which would later turn into Mozilla, when he came up with the Web cookie. The gist of the idea was to have the user's computer keep small pieces of information its ongoing transactions on a page, such as the contents of a shopping cart while browsing through an online store, instead of relying on the servers to store the state of all transactions, which was causing a bottleneck for e-commerce at the time. Prior to the Web cookie, all communication on the Web was stateless, meaning that there wasn't a standardised way for both the server and the browser to retain, change or recall states. A crude example of this is that for a social media or banking website, the user's credentials would have to be sent with every request made to the server because it would not keep track of who is logged in.

Then came the millenium and with it a horde of groundbreaking innovations for the Web. It was around this time that CGI (Common Gateway Interface, not computer graphics) was devised and allowed for the development of true Web applications. These in turn could be written in an array of different languages, the most popular at the time being ASP, PHP and Java. AJAX made it possible to load new data onto a Web page without the need for refreshing all of the extra content, and Javascript opened up a whole new world of features for browsers. The Web 2.0 was born.

Meanwhile, a new way of thinking about the Web had been brewing for quite some time and was about to make its debut. As the corporate clientele demanded easy access to their email and documents on the go, mobile phone manufacturers became eager to design devices that incorporated access to the Web and quickly realised that the Web 2.0 wasn't being all that friendly to their customers' data budget. Still, there had to be a way to use the Web without breaking the bank or having to reinvent the wheel. Mobile-friendly sites were created, which were lightweight and looked nicer on a teeny tiny screen, but no approach to this issue was quite as radical as the one set forth by Apple on the release of their iPhone 3GS in 2008. Since its flagship phone shipped with virtually the same operating system as its line of computers, its default browser, Safari, also came with the package, thus making the iPhone unbeatable in its user experience and compatibility with other Web technologies of the time.

So, if there was a fully-featured browser with Javascript support in someone's pocket, why not have every page on the Web be its own app?

The Web app landscape that never was

By watching closely Steve Jobs' speech at the Macworld Convention in 2007, it is crystal clear about what the intent of the device was. It wasn't a phone that could connect to the Internet, also not the other way around, but something else entirely.

Write once, break everywhere