Progressive web apps are all the rage these days.
Many articles have been written about the technical aspects, but I wanted to give some real life examples of when a PWA is a better option than putting an app in the app stores.
If you don’t know, a PWA is an application that utilizes modern browser APIs to give it advanced capabilities. For example, twitter.com and facebook.com are both PWAs. They can access device features like the camera and geolocation, and even save content offline and send push notifications.
I have been a bit slow to adopt Progressive Web Apps because of lack of iOS support (which is getting better) and the fact that customers seem to be enamored with app stores. It’s hard to tell customers that about PWA’s without it sounding like a glorified website, and then tell them it costs about the same to build as an app store app.
This has changed for me lately, I wanted to share some examples. I recently had a client project that started as an app store app, and changed to a PWA mid-way through. It worked out incredibly well for my client.
Here are some reasons you should consider a PWA over an app store app.
1. Giving Away 30% of Your Revenue
My client wanted an app that would be paid only. He also might want a feature that allows upgrading at a certain point, which would be an in app purchase.
I explained that if we went this route, my client would have to give Apple and Google 30% of everything he makes. Not only that, but coding and testing in app purchases creates a lot of complexity, which costs more in development time.
I mentioned that we could make a PWA and avoid these issues, because we don’t have to give Apple or Google any money, and it’s less complex to build. He agreed that this was a good option, and it has worked out really well. Over the long term, building a Progressive Web App saved my client a lot of money.
2. Screw Apple Review
iOS app reviews are usually not a big deal, but every once in a while they are.
I had a client app get kicked back 4 different times because some legalese was not in the right places. Their app then spent almost 2 weeks “In Review” while we had no choice but to wait. The whole process took over a month just to get in the iOS app store.
Some apps just can’t be in the iOS app store at all. For example a Marijuana dispensary or a cryptocurrency trading app. Apple is notoriously capricious, they banned “templated apps” for a while, but then loosened up on them.
Not only do you have to jump through hoops to get in the app store, but then you have to go through review for every update.
Progressive Web Apps avoid all of these issues with app review because they are just a website. You can put it up whenever you want, update it often, and not worry about it being rejected.
3. Certificates and Signing Keys are a Huge Pain
By far the most complex part of getting into the app stores is the certificates and signing keys.
I’ve been doing this for years and I still get confused by Apple’s signing process. Here are the basic steps:
1. Add your device UDID to your account
2. Generate a .csr file, create a certificate (one for dev and one for production)
3. Create a provisioning profile (of which there are multiple types)
4. Want to use push notifications? You need to create a separate certificate for that, and you probably need to convert it to a .p12 or .pem file to upload to your push server.
Are we having fun yet?
There are tools to help make this stuff easier, but it’s only easy if you know how to use Xcode or Fastlane and you’ve done it multiple times before. Android is a bit easier, but still not simple.
Progressive web apps avoid this struggle because they do not need any signing keys. All you need is an SSL certificate from your web host.
PWA all the things? Not yet.
PWAs are great, but they have some drawbacks that mean many people will still want to go the app store route.
Limited iOS support
iOS does not support push notifications for PWAs, and have very limited support for features like offline support. It’s getting better though, and I hope that within a year or so iOS will support most PWA features.
If you really need push notifications for iOS, you can’t use a PWA yet.
App stores still have advantages
Even though app stores are a pain, they still give you a great distribution platform that you can’t get any other way. If customers search for your brand in the app store and you aren’t there, that could be a missed opportunity.
Installing a PWA on your iPhone requires clicking a few weird icons that you never use, and it isn’t much better on Android. That will get better with time, and as web users are trained on how to use them. For now, the app stores are just easier for people to get apps on their device.
Some apps should still be fully native
For most people, web based apps are the way to go. The performance is great, and it is constantly getting better.
However, there would be no reason for a company like Uber to switch their app to a PWA. They need their app to be as fast as possible, and they have the money to make it fully native. When milliseconds and device hardware matter, fully native is still better.
For everyone else, fully native can be cost prohibitive. PWAs are incredibly performant (when built by a good developer), and they work incredibly well for most apps.