Mobile website traffic already accounts for more than half (54.8%) of all internet traffic. Even more shocking, mobile apps account for nearly 90% of internet time spent on a smartphone. Clearly, apps rule when it comes to engaging with consumers today. However, developing and maintaining mobile apps comes with its own unique set of challenges.
These challenges often force businesses looking for a mobile app experience to ask whether a native app is worth the effort or whether they’re better off with a more limiting but cheaper web app experience. The good news is that there might be a third way, a better way: Progressive web apps.
Some background on mobile apps
To better understand progressive web apps and their place in the app landscape, we first need to get some context.
Currently, there are two main types of apps that dominate the scene:
- Native apps: Native apps are apps created with a specific platform in mind. For example, you have two separate platform-specific Android and iOS apps for the same program. These apps take full advantage of the respective codebase to integrate seamlessly with your device’s capabilities.
- Web apps: Web applications are websites with an app-like interface. They require a web browser to run and are built in web markup and programming languages, such as HTML, PHP, Ajax, etc. Because they are made on standardized and ubiquitously supported technologies, an app built on a single code base can be used on any type of device.
Each of these two types of applications has its pros and cons.
The main advantage of native apps is the rich and reliable experiences you can create. Minimizing trays, out-of-app playback control, single sign-on, file system access, etc., are some of the advanced features you can use when using native technologies. However, the problem with native apps is that you effectively need to create two different versions of the same app, using various technologies, to work equally well on separate platforms.
On the other hand, web apps only need to be developed once, and the same version can be used on any device. This simplifies everything from frontend design to backend implementation. However, web apps usually rely on an internet connection with a web server where the actual application is hosted to work.
In many ways, progressive web apps exist to fill the gaps and provide the best of both worlds for both developers and end-users.
What are progressive web apps?
Progressive web apps (or PWAs) seek to make the most out of the advanced and evolving web technologies developers have at their exposal today to create mobile app experiences that feel as rich and user-friendly as native applications.
While we’re not 100% there yet, the end goal is to create apps that can do everything a native app can do but built on a single codebase for all platforms. There are a few essential characteristics that should distinguish a PWA from both a native or web app:
- It should not run in the browser as a tabbed window
- It should be installable like native apps
- It should not be entirely dependant on an internet connection
- Apps on different platforms should run on the (nearly) same codebase
Creating rich experiences in PWAs is possible because web technologies and APIs are numerous and have already matured to a tremendous degree.
For example, WebRTC is an open-source standard for building real-time communications into web apps. WebGL allows for advanced 3D graphics processing, while WebVR enables you to create virtual reality experiences in PWAs.
Using WebAssembly, developers can create complex programs using robust languages like C/C++ in web apps.
Popular PWAs like Starbucks, Spotify, Flipboard show just how true to rich, native experiences these apps can be.
What are the benefits of progressive web apps?
For designers and developers, the apparent benefit is that they only need to expend the time, effort, and resources to create a single app. For a business, especially a startup, it can be a colossal waste of resources to maintain two separate teams for creating and managing two versions of the same application. That’s on top of the fact that websites tend to be cheaper, faster, and easier to make than native apps.
Never mind the additional logistical issues in coordinating changes and updates, deploying to different marketplaces with different requirements and monetization, etc.
Developers can focus their efforts on improving the one application they are working on, whether it’s the performance, experience, or capabilities. These benefits extend to long-term maintenance and upkeep.
Furthermore, the web is a goldmine of open-source technologies. This helps bring down the cost of development and frees developers from restrictive licensing. PWA developers can take advantage of the unparalleled web ecosystem with its constant innovation, massive accumulation of knowledge, and active communities.
A web app development team in Toronto, for example, can have the same access to open-source technologies and expertise as a developer anywhere else in the world.
In most cases, web apps also tend to have a much smaller performance and storage footprint than native apps. If done right and optimized correctly, they will load faster and improve core user-centric performance metrics, despite using a network connection for some aspects.
Users will be the ultimate beneficiaries as developers and designers can focus on serving their needs and wants. A great progressive web app should provide a core experience that’s indistinguishable from a native app.
Lastly, PWA owners and users benefit from the characteristics it inherits from its web app cousins. Progressive web apps can be discoverable in search engines thanks to their based and web technologies. They can also be linkable, allowing users to share content or navigate to specific states of the app externally (e.g., from a browser).
Is a progressive web app suitable for your project?
In most cases, the answer will be yes!
However, despite all of the praise, a progressive web app might still not be the best option for everyone in every situation. In most cases, a well-designed progressive web app will truly bring the best of both worlds for its users, developers, and owners.
However, it would be best if you always considered the following:
- Can some of your app’s core functionality be used without internet connectivity?
- Are there cross-browser support issues with some of your essential features?
- Do you lack some specific web-based framework to implement critical native features?
The chance that you will have to answer yes to one, or more, of these questions, is becoming rarer by the day. And, in many cases, the benefits of using progressive web app technology are too good to pass up.