Hacker News new | ask | show | jobs
by K0nserv 1382 days ago
You have to introduce ordering in your KPIs. If developer experience is more important, then you can get better results with cross platform. If user experience is more important, then you are virtually guaranteed to get better results with native. Personally I’m of the opinion that user experience should never be subordinate to developer experience, so at least for me the choice is clear: native.

Also consider whether you will benefit from a broad install base, i.e. when building a social app, or if you can go for one platform first. Lastly, I’d consider the stage your in, i.e, are you trying to find product market fit or not.

If native stills feels like a lot of extra work, I’d suggest building a common core, in e.g. Rust, to share non-UI code between the platforms.

2 comments

Did a brief search on the rust ffi, seems that mozilla has something interesting shared on the topic https://github.com/mozilla/uniffi-rs and https://blog.mozilla.org/data/2022/01/31/this-week-in-glean-...
Really good points.

I think the order in my case will definitely be customer experience first. And for the the rest of the points, we are looking at something similar already, limited user access initially, only one platform perhaps.

On your last point, reusing code among platforms, I was looking into Rust, it seems there isn't yet a good way to share Rust code. I have found https://kotlinlang.org/lp/mobile/ which looks interesting.

Yeah, Kotlin multiplatform is the most promising cross platform solution because it explicit leaves the UI fully native. With Rust you'd leverage C based FFI(with a layer to communicate with Swift and Kotlin), it's not the most streamlined experience. One big benefit of building a Rust core with C FFI is that it can be used virtually everywhere.