We put together a rough guide as to the relative merits and challenges you might have when picking one solution over another.
PWA – Progressive Web Apps are a newer approach where a mobile-friendly, client-side, browser-based framework like Angular or React is used and made available to web users and mobile users. Some of the key benefits of PWA’s is that while they’re not published to the app stores, they support some valuable capabilities like offline support and instant version updates to both mobile and browser-based users. It is important to remember however that some PWA features are not available on all platforms compared to native apps, like push notifications on iOS. You can wrap a PWA using a solution such as Cordova to deploy it to the app store.
React Native – Similarly to PWA’s, Javascript developers (especially those with ReactJS experience) will feel comfortable using React Native. React Native offers a native application experience to its users but is most often suited for small to medium-sized applications that don’t require heavy computation loads. Moreover, React Native will be distributed to your users via the Apple and Google app stores, allowing you to utilise some of their offerings like the number of downloads, usage metrics, etc. React Native applications will not be available to browser-based users.
Xamarin – Xamarin has long been the preferred option for .NET developers looking to write applications for all major app stores (Apple, Google, Microsoft). Xamarin allows you to use code you have already written in .NET (with some exceptions) which can be desirable to some (often enterprise) organisations. While often the first choice for .NET developers, some developers find Xamarin development rather slow. It is worth mentioning that Xamarin’s popularity has been declining over the past few years.
Flutter – Worth a mention is Flutter, the youngest cross-platform development toolkit. Flutter is supported by Google and provides a great experience for rapid development. While Flutter is gaining in popularity, given its relative infancy is still building its community and associated support.
Our typical recommendation today is that a well built Progressive Web App is hard to beat, especially when you consider you write the code once and it works for your web users, mobile web browser users and mobile app users. You have access to so many great features via a PWA today that there is almost nothing a PWA cannot do unless you’re about to build complex computationally demanding applications like games or AR experiences.
But if you’re still not convinced here is our take on a comparison of the three major cross-platform options you have available today, Progressive Web Apps (PWA), Reactive Native and Xamarin.
A Comparison of PWA’s, React Native and Xamarin:
Item | PWA | React Native | Xamarin |
---|---|---|---|
Deliver an iOS & Android App to the Stores | No (Wrapping via Cordova turns this into a Yes) | Yes | Yes |
Write one User Interface and deliver App and Desktop Experience | Yes | No | Partial (available for Windows Desktops) |
Shared backend API’s | Yes | Yes | Yes |
App upgrades require new App store builds | Never | Yes | Yes |
Availability of Skilled Staff | High | High | Low |
Access to Mobile Device Camera | Yes | Yes | Yes |
Access to Mobile Device GPS Location | Yes | Yes | Yes |
Access to Push Notifications | Android – Yes IOS – No | Yes | Yes |
Access to Bluetooth | Yes | Yes | Yes |
Augmented Reality | No | Yes | Yes |
Games | Some | Yes | Yes |
Device Side Caching (Works Offline and Sends Data on services restore) | Yes | Yes | Yes |
App store compatibility | None | iOS & Android | iOS & Android & Windows |
User Interface scales well across Small, Medium, Large mobile devices and tablets | Yes | Yes | Yes (if you follow the design rules of Xamarin well) |
Supported Technologies | All JS UI frameworks | React Native (JS) | C# + .NET |
Automated UI Testing | Cypress or Selenium (we prefer Cypress) | App Centre | App Centre (formerly Test Cloud) |
Developer Productivity | 100% | 75% | 50% |
Seek Job Advertisements in Brisbane | For Angular/React 200+ | For Angular/React 200+ | 1 |
App Download Size | Small | Medium | Larger (Xamarin adds 5mb minimum) |
The three major cross-platform options suit a range of needs. We hope our comparison helps you understand their functionality and use cases better. If you need any help choosing the best platform for you, please contact our team.
❤ Australian Owned & Operated, 100% Onshore
Organisations across Australia turn to Patient Zero design, build and maintain custom software applications. Our Australian based development teams are vendor & technology agnostic and ready to deliver your next project.
We have a proven track record of projects delivered in a diverse range of industries including Education, Insurance, Waste Management, Health/Medtech, Government and even EV Charging.
1300 714 093
[email protected]
Brisbane
Level GR-109
310 Edward Street
BNE QLD 4000
Sydney
Level 3-104
320 Pitt Street,
Sydney NSW 2000
ABN 98 611 165 498