Hacker News new | ask | show | jobs
by novok 1856 days ago
My current idea of how to do a non-javascript multi-platform app strategy:

Apple SwiftUI for iOS & macOS.

Flutter for Android, Windows, Linux and possibly a web client.

4 comments

> Flutter for Android, Windows, Linux and possibly a web client.

Wouldn't Jetpack Compose make more sense for these platforms? It is native for Android and is similar to flutter for web and desktop.

You can't make desktop apps with android or jetpack compose. Find me one written with it that actually distributes their app that way vs. some emulation hack that nobody uses.
Actually you can. They have Compose for Desktop. I don't know how stable and mature it is tough.

https://www.jetbrains.com/lp/compose/

I wonder how far you could get using something like https://github.com/carson-katri/SwiftWebUI or https://github.com/TokamakUI/Tokamak to render the Swift app to a webview for the other platforms... I’ve not tried it, I imagine there might be jank and limitations as SwiftWebUI is “a toy project” but with some work could be a legit option - I’ve run pretty bespoke and complex React Native applications as desktop apps via react-native-web and Electron and it worked incredibly well.

I do like the idea of only maintaining a single codebase, but of course it comes with significant trade offs. The idea of building for Apple-first but automatically getting a reasonable fallback for other platforms is quite appealing - as you say, for many businesses it probably makes sense to focus on having the most polished iOS experience possible.

Honestly I’ve been quite impressed with the end results we’ve got from React Native, but you are always going to be lagging behind the native platform.

I'll be frank, the developer experience of swift is horrible. Webdev with typescript, their instant response times in development, lack of compiling and lack of an update cycle (the URL is always the latest version, whether you like it or not) is way more productive than compiled iOS dev. Swift is only good for macOS and iOS effectively now.

Flutter devex is also faster and more responsive, but it just doesn't quite make as a good of a product on iOS. iOS users are higher revenue and have higher standards than android users also.

Yes in my business that I won't specify ios (last 2 revisions) + web users account for over 92% of revenue, with a whole scattering of android versions and related hardware back to 4.4 making up the rest.

A native strategy for ios is absolutely worth the investment of resources and time and flutter will never cut it or be worth the risk of even a small % of users suffering some new bug.

Android gets whatever is quick and easy just to to keep the business ticking on that side so flutter is perfect.

Users do not and should not have to care or be exposed to your cost saving strategy.

Well my logic for flutter is it's made by google, so it's support for android & google chrome will always be far better. Supposedly flutter is basically google's next gen UI toolkit for fuscia, so it will probably stick around.

Nobody focuses on windows or linux desktop, so it will be decent enough for them too. Google effectively owns the browser with chrome and flutter and chrome both use skia as their render system, so the likelihood of long standing bugs between them are reduced further.

Apple doesn't like it when their biggest direct competitor tries to commoditize them, and are not a money maker like games, so they foot drag in subtle ways to make flutter not as good of a thing.

I use iOS personally, so there is also a built in skill component there.

If the company got really big, then I would probably do a native web UI because web developers are easy to hire relative to many other types.

That seems like a smart and pragmatic strategy. Thanks for sharing that idea!