Cut your development time in half without sacrificing quality and performance
February 16, 2022

Cut your development time in half without sacrificing quality and performance

Samuel Rystrom | TrustRadius Reviewer
Score 8 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with Flutter, by Google

We use Flutter for our cross-platform mobile app. We wanted to use something like Flutter in order to maintain a single codebase, with the goal of not compromising on performance and quality. While it's simply not feasible to build 100% native-quality apps with a cross-platform solution like Flutter, our goal was to get 95% of the way there, and we believe Flutter achieves this goal while allowing our developers to use a single, shared codebase and work on updates for iOS and Android simultaneously.
  • Decreases development by half, sometimes more.
  • Increases collaboration by providing our developers a shared language and codebase to work with.
  • Generally strong performance, with very few noticeable performance drop-offs, compared to native code.
  • Extremely strong plugin ecosystem and developer community.
  • Occasionally updates to the Flutter SDK result in wide-sweeping changes that seem to not be thoroughly tested and considered. Flutter sometimes evolves too fast for its own good.
  • While the 3rd-party Flutter package ecosystem is vast and rich, 1st-party support for basic things (audio/video playback, battery information, Bluetooth services, etc.) are lacking. You are occasionally forced to rely on an open-source package for use-cases that other platforms have native support for.
  • Documentation, particularly around testing, is lacking. While there are some great docs, like the Dart Style Guide, many Flutter-focused support documents are lacking in quality and real-world usability.
  • Flutter allows you to architect an app however you want. While this is a great feature, it also adds complexity and leads to the current state of Flutter's state management, where there are 50+ options on how to organize your app, with very little official guidance or recommendations from the Flutter team. For a beginner, this can create decision paralysis.
  • Cross-platform development with a single codebase.
  • Integration and unit testing.
  • Easy development experience (hot reloads, debugging, VSCode integration, etc.)
  • Vast package ecosystem.
  • Essentially cuts the number of engineers needed in half (you don't need native iOS AND Android programmers, just Flutter devs).
  • Allows us to develop and ship updates on iOS and Android simultaneously.
React Native seemed like a comparable and equally valid choice to Flutter. Performance, ease of development, and support are roughly equal between the two products. Dart, to me, felt easier to work with than Javascript or Typescript. Flutter SDK tools and VSCode extensions made Flutter feel easier to work with and develop. Additionally, Flutter felt like a new, up-and-coming cross-platform solution that would be around for quite some time, considering that it's used by a number of large companies, including Google itself in apps like Google Pay. For this reason, we decided to go with Flutter, but I also wouldn't say that React Native is a worse choice, I think it more so comes down to personal preference.

Do you think Flutter by Google delivers good value for the price?

Yes

Are you happy with Flutter by Google's feature set?

Yes

Did Flutter by Google live up to sales and marketing promises?

Yes

Did implementation of Flutter by Google go as expected?

Yes

Would you buy Flutter by Google again?

Yes

If you want to make a fast, performant, and high-quality (but not perfect) iOS and Android app while drastically cutting down on development and testing time, Flutter is for you. Flutter is perfect for 95% of cross-platform mobile app use-cases - the 5% of use-cases where Flutter will not work are:

1. When you are looking to achieve a perfect native in-app experience (Flutter feels incredibly close to apps built with native iOS or Android tools, but there are a few areas you can notice the differences).
2. If you require a vast amount of native code to be written (in which case, you can still use Flutter for the UI, but its time-saving benefits drops considerably).
3. If you are only building a single-platform (iOS or Android) app.