PWAs vs Xamarin.Forms

It’s a fact that doesn’t change in technology, it keeps moving forward no matter what you do. PWAs were started by Google a number of years ago and they have progressively being getting better. They allow a website to run like a native app, and this allows quicker distribution, and easier maintenance. Instead of a Mobile app and a Website, it is now a just a PWA. With upcoming support from all major browsers, 2018 might be the year PWAs come out to shine.

What Are PWAs

After reading about them many times, I wish someone would just show me a diagram. So here is one. PWAs are basically just websites, but utilizing specific browser capabilities to act like a native app, and being able to install on the home screen, use some native functions, as well as being accessible offline.

Android and iOS provide the ability to install a PWA, and have it displayed on your home screen, for quick and easy access, just like other apps, but you don’t need an app store, or have to deal with updates as a user, which is a big advantage.


PWAs are limited by what is available in the HTML5 APIs. This will change over time and changes per browser, but currently what you can do with PWAs looks something like this. I took a screenshot from WhatWebCanDo.Today, from my Google browser. It looks different in Edge.

Hence, as you can see PWAs allow a lot of native abilities, and it actually would be perfectly suitable for the majority of apps. If you need access to NFC for contactless payments, Bluetooth or anything else not supported, then PWAs are a non-starter for you at the moment. For example, Banking and payment apps, are certainly not suitable for PWAs at this time.

Xamarin.Forms and native apps, have access to everything on this list, which is why they still have an advantage.

Service Workers

While support for other aspects of PWAs has been available, Service Worker support is only just coming out. Service Workers are key to providing offline support.

The black highlighted ones are what are available as of Feb 2018. You can see that Edge and Safari currently have ServiceWorker support in their beta channels and is coming very soon. However, as of this moment, only Firefox and Chrome have support for service workers, in their stable releases, but this is all soon to change.

How Can Cross-Platform Apps Succeed?

PWAs are likely to start gaining a lot of ground, and this puts into question, should I develop a PWA or a Xamarin.Forms app? Xamarin.Forms or even native apps will succeed well in these conditions, or possible future conditions:

  1. First, Xamarin.Forms needs to have a common look and feel across all platforms. Much like Flutter. Native look and feel is going out the window, and really becoming a niche requirement. Hopefully this comes about.
  2. Non-browser enabled, or odd form factor devices. Think wearables, or home automation appliances.
  3. Special hardware access, as described above. PWAs will always be highly sandboxed, and while areas will open up, there may always be a need to access something PWAs don’t offer.
  4. In the future, AI through TensorFlow and CoreML may be areas that give native cross-platforms apps an advantage.
  5. Games, using such technologies as Unity, will likely stay native and not go web based, due to performance reasons.

Future App Market

In 5 years time I might see the app landscape looking a little more like this. This is just speculation, but as I will explain, most apps are perfect for PWAs. Many apps in the app store, should have just been a website to begin with.

Cross-Platforms Apps are those such as Xamarin.Forms and Native Apps I am referring to apps that may be on wearables or specific form factor devices. If home automation really takes off, and many home appliance’s like a fridge and toaster all start showing a display screen, who knows, we might all want apps for them? Maybe, maybe not.

Many enterprise’s will still stick with solutions such as Xamarin.Forms or native apps for the moment, as they are still wanting to realize their investments in the technology. They are always the last to change, and this provides some inertia in keeping Xamarin.Forms relevant for a time.

Maybe existing native SDK libraries and other factors may keep the inertia of native mobile development alive for a little while, but I do except a general shift away from native mobile apps for the bulk majority.


PWAs seems like the best approach for simple apps, and I think this is a key point. Many native apps should have been websites in the first place, but due to a flood of marketing by app development companies early on, saying customers are now all on their mobile, it seemed like every company needed an app, when it was clear they didn’t. I believe PWAs are great for many smaller businesses that just need a better mobile presence, and PWAs should help reduce the flood of template apps in various app stores. [1]

Xamarin.Forms desperately needs an identical look, across platforms solution, similar to what Flutter currently provides, as I mentioned in my Flutter Could Be Xamarin’s Next Big Competitor. It is possible and can be done with Xamarin.Forms, we will just have to see if they are willing to do it.

Native apps are at best only going to be available for specific device formats, such as wearable or home automation appliances. Native apps for mobile devices, I just can’t see how it can continue, when the app you want to generate for Android and iOS will look and act almost identically, why would anyone want to build it twice?

As per a previous statement, 2018 is very much a deciding year for Xamarin.Forms, and if it can adapt to suit new requirements of the market. I just hope Microsoft don’t make the same mistakes as in the past, of using the sluggish enterprise market as an indication of what the market wants, or is going to want in the very near future.

Additional Information

[1] Microsoft is going to start showing PWAs in their App Store. Initially you have to submit it there, and in the future, they will use Bing to crawl and automatically add PWAs to their App Store. I believe they are trying to preempt their disastrous mistakes and App Store numbers in the early days of the native mobile wars. I don’t know of any Google or Apple plans as of yet.


  1. Muhaymin

    This was what I looking for, well written.

    Though a question, with the minimum requirements listed for each platform, the support seems to be for pretty much new OS and Browser, will this also be a deciding factor?

    1. Adam Pedley

      Yes, everything like that comes into play. But with iOS always staying up to date, and the fact Google has been pushing it for a while, it seems like it will hit quite a large target market initially, and only grow from there. But if you have requirements for older phones and devices, then you might need to stick with native for a while.

  2. Dan Meier

    Was literally just about to drop a note asking you to comment on this topic when I saw this post. Thanks for a thoughtful, timely post!

  3. CSMR

    Your pie chart may hold… if you measure by number of apps in a store. But if you take the apps that many people use, or that people interact with frequently, I hope the picture will look different.

    An app that many people are going to use, or that users are going to use frequently, or that does anything non-trivial, should not be a webapp. Low performance, high memory consumption: this is a low-quality solution.

    Doing any serious app as a webapp lacks self-respect and is going to get user complaints. Good for rapid development if you have limitations in your team, but you need a strategy to migrate away if your app grows in future.

    1. Adam Pedley

      Yes, it was purely number of apps, not really time used on each one. PWAs have advanced quite far recently. I was originally skeptical of them, but if your app only needs something like camera access and geolocation, and no desire to make it look different across platforms, then it is an ideal technology to use.