Steve Jobs' concept exactly hit the spot. Another tech giants have been creating their platforms such as Google Play, Windows Market and even more niche, not authorised alternatives (for example, Amazon AppStore, GetJar, F-Droid, Samsung Galaxy App). The entry barriers for new applications in any app store has declined in direct proportion to the level of knowledge of native technologies of dubious quality and suitability. To separate the wheat from the chaff, application rate, comments, categories, and ranks have been implemented. A side effect of these implementations setting aside most of the apps in the store.
Now, only four of ten applications are downloaded from Google Play at least once. It means that authors of 60% of apps can't find the way to the success of their product. There are various reasons: a bad idea for an application, not the best execution and implementation as well as marketing negligence. The situation is made worse by the fact that the average user of smartphone installs only three new apps monthly. In the light of the above facts, most of the experts in the mobile industry are trying to find an answer the question: what should we do to encourage people to download my app? What if this question is not correct and we should leave app stores?
On the other (more technological) hand, web technology allows for a more flexible approach to the creation of multi platform applications. A well-designed app will be compatible with every operating system and every screen (from the desktop, through smartphones to atypical smart watches and tailor-made screen for fridges) thanks to RWD. Unfortunately, the past few years have shown that hybrid applications (which the heart was web app) didn't get the job done. Are we condemned to build native apps or at least, from time to time, less efficient hybrid applications?
PWA - Progressive Web Apps
In response to described above obstacles, it appears a new paradigm of creating mobile applications. Speaking of Progressive Web Apps, it's about mixing two worlds: web and mobile, basically independent of native technologies (as in the case of hybrid apps). Progressive applications are really web apps which imitate mobile apps thanks to opportunities of modern browsers. At the core of PWA are three values that are crucial in mobile applications: reliability, speed, and commitment.
Progressive apps should be reliable. But that doesn't mean that they won't have any bugs, which are the stigma of every application and every technology. The reliability of PWA is linked to modern crisis (which is quite common in the case of mobile devices) support. I mean situations like little or no Internet connection, limited battery life, limited screen resolution.
So far, web apps haven't been able to handle with connection problems. The solution was ServiceWorkers, which gives developers total control of the displayed content in the offline and online modes. Moreover, this content can be changed when an app is in operation as well as can be updated when a user gets access to the Internet.
In a nutshell, ServiceWorkers are additional communication mechanism working between application and server, which among many others, take care that the user has Internet access all the time.
Speed is another value of PWA, and it also shall be defined in a very particular way. It doesn't mean that progressive apps are faster in a natural way because they are using faster Internet infrastructure or they're based only on content, so data transmission is very quick. In the case of PWA, speed means that developer uses good practices that are known before to web apps devs. Google suggests to use PRPL pattern, which stands for:
- Push - collecting critical resources for displaying the main view of application,
- Render - showing the first view to user (initial route),
- Pre-caching - downloading another key views/resources in the background when user is using the app,
- Lazy-load - collecting the part of data "on request". It's usually confined to big resources (e.g. video) or data that frequently change, so an author of application decided there is no point to display the last saved view (e.g. multiplayer game).
It's no secret that mobile applications differ from web apps in the way of the interaction with the user. This is because they are better equipped with sensors such as a gyroscope, GPS module or multi-touch. For some time, similar trends can be observed in web applications. However, web apps have different UX which is focused on the experience of "surfing the Net". PWA is what does thing differently and blurs clear divisions among platforms that use the power of modern browsers. This allows creating applications, which can communicate with a user through PUSH notifications or vibration, and check the location of the device as well as use a built-in microphone.
The possibility of using native functions of the mobile device is not the only one aspect influence the growth of users' engagement. It turns out that an author of a progressive app can also let users add a website to the home screen of the mobile system. This tiny detail is boosting dramatically the conversion of application.
The new, progressive approach to developing cross-platform applications is expanding already wide range of advantages of web apps. The pros of native apps are coming into the game. From now, every web app can be launched from the home screen, use full screen, handle with problems of no Internet connection as well as has access to many functions of the mobile device (e.g. camera, microphone, vibration or PUSH notifications). Also, PWA is not compromised approach (it is the case for hybrid apps), what has a positive impact on user experience.
PWA approach is recommended by Facebook and Google Developers groups. Google Developers have provided a checklist which helps to build progressive apps. The checklist is available in the form of the website, Google Chrome's extension as well as Node.js module.
What will PWA's future be? Time will tell. However, it's already worth enriching your website with the progressive approach. The case study of projects such as Alibaba or Flipkart demonstrates that it's worth a try.