4 ms·
Can someone compare their experience with Flutter or even React Native, versus writing separate platform-native Swift/Java versions for iOS and Android? I don'
by abalone 8y ago
Can someone compare their experience with Flutter or even React Native, versus writing separate platform-native Swift/Java versions for iOS and Android?
I don't often hear about the true accounting of time spent learning and grappling with the limitations of cross-platform frameworks, including debugging and workarounds, versus just using the platform vendor tools.
It just sort of seems like it's assumed that it's a huge time waste to maintain separate codebases. But I wonder if you gain other advantages that might outweigh it, like not having to "fight" the intermediary layer and getting first-class access to the underlying APIs, platform features and debugging tools. Thoughts?
- rhodysurf 8y agoI’ll bite. I write a simple free surf forecast app for my local region with around 1000 active users. I am currently rewriting the app because I have time and ideas. I am writing the same app in both Flutter and Swift/objc simultaneously, and I will grant that I am much better iOS dev than Android. The previous version of the Android app was written in Java. Honestly, Android dev for me is very not fun, there is so much mental load that is probably necessary for large apps but for me it’s just a time sink. Flutter on the other hand gives me Material widgets our of the box and easy declarative layouts. I will say this is my first experience working in the react paradigm and it’s been a learning curve. Flutter is super fun to play with though and making user interfaces is actually pleasant. I decided to also write the new version natively on iOS because some of the most important parts of the app for me are the Today Widget and Watch Complication. Now with Flutter you can add this manually in swift or objc or whatever, but they can’t talk to Dart code. So I would have to essentially write the networking client code twice. That, and the iOS widget support just isn’t good enough for me in Flutter. So I am using Flutter to develop and Android version of my app, while keeping the option that it could eventually become a full cross platform version someday if I choose. Also if Dart ever gets extensions like Kotlin and Swift that would be a game changer for me, since I use generated specs for my API schemes.
- brett40324 8y agoI can speak to some of the pros and cons of two codebases for ios and android that share a common api service on a semi-large production app with 6k to 10k constant users. Pros: - Native performance and API exposure for both, without a wrapper/glue layer. That's it. Cons: Feature implementation complexity and nuanced differences that leads to one version having a bug the other doesn't, or they both have the bug but for different reasons. - dependency updates, testing workflows, build and deployment tool chains, actually all tooling - is different for both. - syncing development between teams is a nightmare. - delivery time on releases becomes two deadlines, and stakeholders don't understand why both versions can't always be complete on the same exact day. - ui implementation, and organization of graphical assets are just plane different. - device support, and user support in general, must account for basically any supported ios or android vendor hardware/os