Once upon a time web browsers were used to just view simple static web pages that someone else would host on the internet. Now they’ve become full featured fronts to access all sorts of rich media services and applications. We often spend more time in our web browser than any other application on our devices, so much so that Google has even built an entire computer based on a browser, the Chrome book. This month I want to take a look at some of the modern capabilities available in web browsers.
Prior to about 2005 it was not uncommon to see dynamic web pages but they didn’t do that much. It wasn’t until the modern social media websites took off (Facebook and Twitter) did we start seeing modern dynamic web-pages. These modern dynamic web pages were different in that they not only saved your session on their database but also maintained a local state on your web browser. They also for the first time utilized JavaScript to provide this dynamic experience without reloading the web page. This was a seismic shift and the age of modern web apps was born.
Fast forwarding to 2017 and we often take the web browser for granted. Web browsers today can play audio and video without the need for Adobe Flash based players. They can access our webcams and microphones. They can read and store data in what is practically a browser based file system. Most can even access your battery status and accelerometer/gyroscope data on a mobile device with some hacking. In 2017 there’s a high chance that if we can think up a specific feature, the browser will be able to implement it.
While modern browsers have great capabilities most often products are shipped in an app first mentality. The app first mentality arose because both Apple and Google have made it easy for us to install applications and have a fluid experience. In the early years of mobile apps the browsers were still lagging behind in features. Today we are at the point in which it could be feasible (depending on application) for a web application to be written and have that be the only option needed to provide support for all platforms (iOS, Android, Windows Phone, and desktop). Writing web applications provides a number of benefits that have always been seen as unobtainable but may very well be widespread in the next couple of years.
One of the great benefits of a resurgence of web apps is that with increased capabilities a web only app needs to only be written once. This means that the same code can largely be used for displaying the app on a desktop, iPhone, or Android device. It effectively reduces the number of apps that need to be created from N to 1, where N is the number of platforms that would have initially been supported. While not all the features and hardware capabilities of native applications are provided by a web browser, if the application only requires a subset of these features using a pure web app solution may be possible.
By focusing on a modern web app strategy app developers can side step app stores and app store taxes that are often required to be paid. Both Apple and Google take a 30% cut of the revenue earned from app sales. By skipping the app store developers also skip the app approval process which can be cumbersome if the app treads the legality of the app store in question’s terms of service. By skipping the app store a web app developer earns more and is in total control of when their app updates and goes live, true freedom that the internet was promised to offer!
While the previous two benefits overwhelmingly support the creators of the application, there’s one large benefit for the end user: a seamless experience. A properly written web app will provide a seamless experience whether it’s being interacted with on a desktop PC, a smartphone, or a tablet. All too often today the experience differs wildly when hoping from desktop, to phone, to tablet. This is often done in the name of usability for the platform in question. By focusing on one platform (web only) applications will be written once enabling developers to focus on providing a unified experience on all types of devices.
In wrapping up I thought it would be beneficial to provide some examples to great web apps that accomplish more than we ever thought could be possible inside a web browser.