I have learned how to develop apps for mobile platform since 2013. It was a very different area for a back-end engineer start working on client.
Almost all projects I worked need cross platform, at least iOS + Android.
After trying 5 different cross platform solutions, I decided to use native platform for my new project now.
The shortage of these solutions are more than the convenience it brings.
- Apache Cordova
Details feel not like real native app. Feature pass.
- C++ Manually build library use ObjC link and JNI load it.
It works perfect, but it’s too complex to keep C++ and ObjC and JNI at the same time.
- Xamarin Forms
Good for CMS like app, if you don’t care the details for different platforms. Cross platform interface design is a wrong direction for most of my projects.
- Xamarin Native
For now, I think this is the best cross platform solution. C# is also better language than Java.
- Native for each platform, use OpenAPI generate server stub.
The most shared logic I wrote with other 4 solutions are client/server RPC. OpenAPI/Swagger solved this natively.