To Native or not to Native. If not Native, what to non-Native?
04 Dec 2022Circa Dec 2022.
Dilemma:
I want to create an app that is available on all platforms - Web, iOS, Android; and on all form-factors - Desktop, Laptop, Tablet, Phone, Watch.
My Criteria:
- Easyness - Less ongoing effort.
- Freshness - Easy to keep clients fresh.
- Insightness - Unified monitoring.
Options considered:
I see the choices on a Sprectrum, from the safest to the easiest:
-
Create Native Apps on each Platform
- Web, iOS, Android, WearOS, WatchOS.
-
Flutter App.
- Has a “Skia” Rendering Engine, similar to Unity.
- Flutter for Web is a joke, according to t3dotgg.
- Code push has to go through Apple/Google store review.
-
.NET MAUI App.
- Haven’t looked deeper into this.
- Smells like WPF which I hate.
-
React Native App.
- Has something called Expo for pushing out updates.
- Does this work for Web? Apparently yes, but too high of an abstraction according to t3dotgg.
- React Native has an impression of being slow.
- Theo likes React Native
- Some guy on Twitter mentioned an alternate stack.
-
Progressive Web App (PWA).
- There is only “partial” support for iOS, so this is not a great option.
-
Web App only.
- Won’t give free marketing through App Stores.
- Won’t feel native - tab in a browser that would be too clunky to get back to. Can’t pin to lock screen.
- May not get proper access to native features (eg. gps).
Conclusion:
Going with Expo + React Native for now.
References:
https://youtu.be/0zY-5z_8D4o