14
.
11
.
2023
23
.
11
.
2018
Ruby on Rails
Business
Backend
Frontend

Hot topic: Progressive Web Apps instead of native mobile apps

Michał Krochecki
Chief Operations Officer

“There’s an app for that” - you heard it a million times. And the best thing about it is that it’s true. Since the rapid growth of the mobile market after the first iPhones and Android phones were introduced on the market, we’ve got so used to using mobile apps, that we don’t even notice how they evolve.

For the companies mobile apps are important so they can reach a different client niche, therefore often we are asked for that kind of service. That’s why we became interested and researched the topic of Progressive Web Apps before they became a hot topic, in order to be able to deliver such a solution to our clients. Now we are fully capable and can deliver even complex PWAs.

In 2007, way before PWA was even named like that, Steve Jobs said:

graphic by Visuality

In the software development world, these capabilities were well known, however, due to the spectacular success of the AppStore and Google Play (formerly Android Market), PWA’s needed to wait for a couple of years to emerge again.

from Enigma Recovery

Apps are getting bigger and bigger, but the average built-in storage that people have is still little above 32 GB. We take a lot of photos, download our favorite Netflix shows to watch them on the go, download Spotify tracks so we can listen to them when commuting. Each one of us had a problem with lack of space for a new app. In some less developed countries where internet connection is slower and people have low-end phones, space and performance consuming apps became a major pain point.

There is a solution and it’s called a Progressive Web App.

What is a PWA?

from SD times

In short words, a PWA is a web application that looks and feels like a native app. It can get hardware access, send push notifications, work even offline or with a low-speed Internet connection

What user does to use the app depends on the approach the provider of the app chooses:

  • Ask the users to use a mobile device, visit a web app and save it to the main screen. Next time they need to use it, they just click the icon on the home screen and voila! Users will use a fully capable app that uses a built-in engine (Safari or Chrome).

  • Developers can wrap the application up using a solution like Cordova and place it in the AppStore or Google Play so the users can download it and install like a native app. Again, the app uses the phones built-in engine, but the shortcut is automatically placed on the home screen.

In both cases, users need to grant access to push notifications or geolocation but it’s the same with native apps.

You probably ask yourself now why is that any better than a standard native app. Check the most important facts about PWA.

Cost-effectiveness.

When building a web application you can make it in PWA standard from the beginning. That way you will have a web and mobile app at the same time and save money and time spent on the development. And remeber, PWA = mobile app for Android, iOS and Windows Phone!

Easy distribution

As the web is the carrier, you don’t have to have separate admin panels or CMS systems for web and mobile. You just use one. When uploading new content it’s available in the apps immediately.

Quick updates

With PWA updates are immediate and users don’t have to download the app again. Less friction, less data consumed, quicker bug fixing. It sounds good, doesn’t it?

More space, better performance

PWA’s consume less space and usually don’t require high-end spec phones to work fast. As there are no downloadable updates required, people who have small data plans will certainly appreciate it. India’s main online store FlipCart launched FlipCart light so it’s easy on the storage, data traffic and performance on the low-end phones. Their PWA uses 3x less data!

PWA’s can cache files locally or even work offline! Repeated visits improve loading times.

iOS or Android?

It doesn’t matter because web apps work on both platforms without major adjustments.

Full engagement

Thanks to push notifications, your clients will receive all the messages and updates they need to see.

Safety first

In app stores there are tons of fake applications that look like the original ones but are used for phishing. PWA makes this problem disappear.

Drawbacks

  • Problematic access to more complex hardware (sensors, bluetooth)

  • Support for different PWA features varries (iOS doesn’t support push notifications yet, but it will soon.)

  • Not all users would know how to add the shortcut to the main screen

  • On iOS requires a 11.3 version.

  • On a new device you need to do the whole process again (no backup)

What's next?

Google is the biggest promoter of PWAs and since 2015 they have been trying to convince developers around the world to explore the topic. The biggest milestone to come is full support of PWAs on iOS. After that, we might observe a giant spike in the popularity of this solution. Will 2019 be PWA's year? We hope that it will be unlike with Linux's year ;)

At Visuality we believe that it’s a great alternative for certain groups of clients.

If you are looking for a web application and a native app at the same time, want to go easy on the budget, you know the app won’t need to use complex hardware elements, and at the same time you want to offer a high-performance and reliable solution to your clients, PWA is for you.

Who is already using PWAs

Here you can find more examples of PWAs

https://appsco.pe/

If you’d like to learn more about PWA and check if your app could be built in such way write to me at m.krochecki@visuality.pl

Michał Krochecki
Chief Operations Officer

Check my Twitter

Check my Linkedin

Did you like it? 

Sign up To VIsuality newsletter

READ ALSO

How to become a Ruby Certified Programmer Title image

How to become a Ruby Certified Programmer

14
.
11
.
2023
Michał Łęcicki
Ruby
Visuality
Vector Search in Ruby - Paweł Strzałkowski

Vector Search in Ruby

17
.
03
.
2024
Paweł Strzałkowski
ChatGPT
Embeddings
Postgresql
Ruby
Ruby on Rails
LLM Embeddings in Ruby - Paweł Strzałkowski

LLM Embeddings in Ruby

17
.
03
.
2024
Paweł Strzałkowski
Ruby
LLM
Embeddings
ChatGPT
Ollama
Handling Errors in Concurrent Ruby, Michał Łęcicki

Handling Errors in Concurrent Ruby

14
.
11
.
2023
Michał Łęcicki
Ruby
Ruby on Rails
Tutorial
Recap of Friendly.rb 2024 conference

Insights and Inspiration from Friendly.rb: A Ruby Conference Recap

02
.
10
.
2024
Kaja Witek
Conferences
Ruby on Rails

Covering indexes - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Ruby on Rails
Postgresql
Backend
Ula Sołogub - SQL Injection in Ruby on Rails

The Deadly Sins in RoR security - SQL Injection

14
.
11
.
2023
Urszula Sołogub
Backend
Ruby on Rails
Software
Michal - Highlights from Ruby Unconf 2024

Highlights from Ruby Unconf 2024

14
.
11
.
2023
Michał Łęcicki
Conferences
Visuality
Cezary Kłos - Optimizing Cloud Infrastructure by $40 000 Annually

Optimizing Cloud Infrastructure by $40 000 Annually

14
.
11
.
2023
Cezary Kłos
Backend
Ruby on Rails

Smooth Concurrent Updates with Hotwire Stimulus

14
.
11
.
2023
Michał Łęcicki
Hotwire
Ruby on Rails
Software
Tutorial

Freelancers vs Software house

02
.
10
.
2024
Michał Krochecki
Visuality
Business

Table partitioning in Rails, part 2 - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Backend
Postgresql
Ruby on Rails

N+1 in Ruby on Rails

14
.
11
.
2023
Katarzyna Melon-Markowska
Ruby on Rails
Ruby
Backend

Turbo Streams and current user

29
.
11
.
2023
Mateusz Bilski
Hotwire
Ruby on Rails
Backend
Frontend

Showing progress of background jobs with Turbo

14
.
11
.
2023
Michał Łęcicki
Ruby on Rails
Ruby
Hotwire
Frontend
Backend

Table partitioning in Rails, part 1 - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Postgresql
Backend
Ruby on Rails

Table partitioning types - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Postgresql
Backend

Indexing partitioned table - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Backend
Postgresql
SQL Views in Ruby on Rails

SQL views in Ruby on Rails

14
.
11
.
2023
Jan Grela
Backend
Ruby
Ruby on Rails
Postgresql
Design your bathroom in React

Design your bathroom in React

14
.
11
.
2023
Bartosz Bazański
Frontend
React
Lazy Attributes in Ruby - Krzysztof Wawer

Lazy attributes in Ruby

14
.
11
.
2023
Krzysztof Wawer
Ruby
Software

Exporting CSV files using COPY - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Postgresql
Ruby
Ruby on Rails
Michał Łęcicki - From Celluloid to Concurrent Ruby

From Celluloid to Concurrent Ruby: Practical Examples Of Multithreading Calls

14
.
11
.
2023
Michał Łęcicki
Backend
Ruby
Ruby on Rails
Software