In this day and age, users spend twice the time using mobile devices as they would on desktops, so it is not surprising that they expect two things: high performance and storage saving. That is why a war between native applications and progressive web apps started. Mobile applications are well-known smartphone ‘programms’, while PWAs are still a rather new technology.
As an answer to customers’ needs, developers aim to choose the perfect solution that will make their users happy and the choice is not always simple.
What are PWAs?
PWAs are mobile apps that are delivered via a browser. They look and work like a native application, offering gestures and app-like style, but are developed on the web. PWAs are responsive and can be browsed on any mobile device, desktop or tablet.
In short, PWAs are websites acting like native applications, which means they are recognized by search engines and that users can share their URLs. What is more, they are safe due to their security protocols. The advantages of PWAs are recognized by platforms like Twitter, Medium or NASA. This allows them to attain low development costs while maintaining high visibility online.
Benefits of PWA
- lower development cost
- zero interference from app stores, can be published in Google Play Store
- shorter install time
- easy to keep up to date - updates do not require any user interaction
- easier to share
BUT
- lower performance
- no geofencing / background processes
- high battery consumption
- still a new technology – not all browsers support it fully at this moment
Progressive Web Apps should be used when you are seeking easy distribution, are on a budget and have a limited time to market. They are also used by companies interested in broad customer reach.
An introduction to React Native
React Native is a framework developed by Facebook. It uses Java Script code to build UI components. The apps built using React Native are supported by both iOS and Android and the code can be used for both of them.
Mobile applications written in React Native are used by giants like Instagram, Facebook, Tesla and others.
Benefits of native apps
- faster
- safer and more reliable
- NFC support
- great interconnectivity with the built-in device features
- 3rd party integrations
BUT
- doubled time and development cost and the need to learn a language for each platform (but can be resolved using React Native)
- required to be downloaded
- no SEO
- restricted market reach
Native applications are a perfect match for those putting performance as a priority. If you want your application to interact with other apps and built-in device features you should also consider choosing React Native.
Hybrids exist
For those who know how to use HTML, CSS and JavaScript to build websites there is a solution for making mobile applications with little additional learning required - Cordova. Cordova is a mobile application development framework that is a wrapper around HTML/JavaScript code giving access to the device’s functions and hardware. The framework embeds HTML5 code inside WebView.
For those who prefer React, Vue, etc. there is another framework called Ionic, which is web component-based and follows the design guidelines for iOS and Material Design for Android.
Although hybrid seems like the perfect solution it is quite slow and can result in a more complex logic for non-generic APIs since the differences between Android and iOS is still present.
Benefits of hybrid apps
- one codebase to manage
- saving time and money
- relatively easy to scale
BUT
- weak performance
- UX problems
- cross-platform compatibility issues
Wrap up
The competition between PWAs and native applications will probably remain unsolved for some time as either one is good for different purposes and its usage will be influenced by your expectations and needs.
PWAs are definitely gaining more recognition as they are getting better and better at delivering a native experience on mobile, which is a perfect solution for smaller businesses, startups or companies focused on lowering development costs.
Native apps, at least for now, are the choice if you need to make use of device features like push notifications, geolocation, camera etc., which come handy when developing platforms where frequent updates are important, for example, news publishers and e-commerce companies.