Progressive Web Apps (PWA) or native: Bridging the gap between web and mobile
The process of building a digital solution has a step of deciding what to build and for what platform: A mobile application or a progressive web app? If going for a mobile application should it be native or hybrid? And if going for a PWA, what are the reasons for this adoption?
In this article, I try to show the differences between mobile native applications or PWA and why adopt one for your future project or when if transitioning your current project.
"We have a commitment to deliver quality results to our customers. Contact us and receive a personalised quote."
What is a native app?
Native applications are platform-based and use platform specific technologies such as programming languages and development toolkit. An example is the Swift or Objective-C programming languages for iOS and Java or Kotlin for Android development; Development tools like Xcode for iOS and Android Studio for Android.
What is a hybrid application?
Hybrid applications are those who targets are for multiple platforms. Generally, they are 'Build once, deploy on all' type of applications. A hybrid application can have one source code which runs on Android, iOS, and the web. React Native (https://reactnative.dev), Ionic (https://ionicframework.com), or the recently launched Strada (https://strada.hotwired.dev) by 37 Signals.
What is a Progressive Web App?
Web.dev defines PWA as "Progressive Web Apps are web applications that have been designed to be capable, reliable, and installable. These three pillars transform them into an experience that feels like a platform-specific application."
A PWA has a single codebase. It's a form of hybrid application but do not live in the App Stores. They are not installable like native and hybrid apps. They are web apps with mobile capabilities. They can be installed on the Home Screen, taskbar or docks and launching it does not open a browser tab but rather its own window.
Knowing these differences enable the customers to choose what they think is best for them and their user and also their budget.
Some considerations when choosing a platform
Building a native application is costly because every platform has to be targeted. The reach will be limited if an app is built for Android only because iOS users will not use it. This means there has to be a team of developers (or a single developer) building for each platform i.e Android, iOS and the web.
Going for a hybrid app is a solution enabling using one code base to target different platforms. The cost is minimal compared to native apps and the reach is maximised. The little drawback in the hybrid apps if the absence of native feels and the WebView used to render the UI cannot access full device capabilities (This often require the use of some plugins for every platform to counter this limitation).
PWA on the other hand means targeting the web platform and secondarily mobile. It has some benefits like:
- Cost: The cost is lowered compared to native and hybrid apps
- No Installation: The only installation is adding it to the Home Screen or docks. No need to install from the App Store/Play Store
- Seamless update: Code changes are instant. App Store's review process eliminated.
- Native functionalities: Native functionalities like Push Notifications, offline functionality, quick load times, access to APIs like Geolocation and more.
When building a digital solution, the challenge of choosing a platform for our users cannot be eliminated. Making the right choice based on some criteria listed here is very important. Native apps are first class when targeting the mobile platform but it comes with cost and to another extent, development time. Hybrid solves the equation in certain scenarios but some important things are forgone. While PWA tries to balance itself by giving both of the two with native feel and some functionalities, while being cost effective.