I believe web stack is always the right way to go:
- Low learning curve
- High velocity
- Write/build everywhere, and re-using code between platforms
- Not likely to die for a long time
My choice could be providing React Native or PWA. You could share as many as codes you want, and build different view if requires. It’s brilliant. Code sharing on the client side is really really useful. Typically if we introduce an API, we either:
- Implement at backend side, which is clean but introduces the risk of enforcing client side. It’s not extensible.
- Implement on every client-side separately. It could be Java / Swift / JavaScript at the same time. There’s a lot of duplication and ad-hoc solutions.
- Implement a bunch of multiple similar API for different platforms.
With React / React Native you can build every platform with totally different appearances, while most of the business logic is shared.
Another thing is both language and platform dies or zombies pretty fast. While Google abandons projects A LOT.
JS is not dying at least before WASM become mainstream. While with platform dying if you have a bunch of React / React Native shared code it’s probably you can take bring those code to any new popular platform without pain.