Flutter issues make apps look cheap and untrustworthy. Are we truly left with no choice but to quit Flutter for React Native, Lynx, Kotlin Multiplatform or Native?

Warning: This post was originally published on Reddit @FlutterDev on March 19th and was quickly censored. Censorship is a VERY BAD thing, and there is no place for it online.

As a Flutter lover, I've always avoided openly criticizing it, trusting the team and giving them time to improve things. However, the situation has become a race to the bottom. As a result, many developers realize too late that their apps won't look as expected, and startups risk to burn money and fail.

I bit my tongue to stay silent.

But lately, the team itself has been acting poorly toward the community and has lost touch with reality. Many critical issues are being ignored or left unaddressed, significantly impacting the apps built with Flutter and the user experience. With the competitors' recent remarkable improvements, and the real risk of being forced to abandon Flutter, it's time to speak up and expose the sad truth that has been swept under the rug.

To avoid sterile discussions, I'll share the issues along with the screenshots. They speak for themselves. I'll also categorize the problems into key areas and collect the most critical open issues from Flutter's GitHub. The links to these issues will be added as a footnotes. I will continue updating this article as long as the issues persist and will eventually remove it if and when they are resolved. In the meantime, since the Flutter team has shown no interest in the discussion, it's fair to inform developers about what they can currently expect from Flutter.

1. Your app will look bad because of texts

The issues in this category are so numerous that cannot be all reported, let's just share a few ones who will make the point.

This is how your keyboard animates in flutter:

video: https://drive.google.com/file/d/1QloDdw7FmPwGFYwDatprTAETuZeKC144/view?usp=share_link

This issue occurs only in this specific layout, where the text field is positioned at the bottom of the screen. However, since most apps use this design, they are all affected. The root cause of this issue is a lack of synchronization between the Flutter engine and the system. Even if that's addressed, accurately mapping the system's animation curve might still be necessary.

Text Rendering: native vs flutter

As surprising as it may sound, Flutter does not use native text rendering — CoreText, for instance, isn't used on iOS. As a result, the text looks off in almost all aspects, letter spacing, height, fontWeight, emoji size, making your app look unprofessional and cheap. This, of course, also impacts your company's credibility. It is fair to call it a disaster.

None
None

Magnifier: native vs flutter

None
None

Text selection: native vs flutter

None
None
None
None

Toolbar: native vs flutter

None
None

etc..

2. Your app will look bad because of Camera

Flutter's camera suffers from multiple issues: flipped media, rotation freezing, capture delays, blocked camera switching, etc… These problems are often marked as P2 or P3 and left unaddressed. A mobile development platform that doesn't prioritize camera functionality is truly nonsensical.

https://github.com/flutter/flutter/issues/164493

https://github.com/flutter/flutter/issues/84957

https://github.com/flutter/flutter/issues/164963

https://github.com/flutter/flutter/issues/163859

https://github.com/flutter/flutter/issues/162376

https://github.com/flutter/flutter/issues/138310

etc…

3. Your app will look bad because of Video

VideoPlayer has several issues: like rendering glitches, incorrect layouts, crashes, and more. On Android, there's no guarantee that the video player will even load on some users' devices after you ship your app (it depends on phone models). To top it off, even after 6+ years, it still lacks a basic caching feature, which causes playback delays and huge bandwidth costs since videos are repeatedly streamed instead of being cached. Community has tried to build alternatives but with no luck. In any case, as already mentioned for the Camera, it is unacceptable that a platform primarily focused on mobile development is not providing developers with a decent video player.

https://github.com/flutter/flutter/issues/163859

https://github.com/flutter/flutter/issues/162517

https://github.com/flutter/flutter/issues/161030

https://github.com/flutter/flutter/issues/28094

https://github.com/flutter/flutter/issues/142061

https://github.com/flutter/flutter/issues/166481

https://github.com/flutter/flutter/issues/157503

https://github.com/flutter/flutter/issues/168348

https://github.com/flutter/flutter/issues/164899

https://github.com/flutter/flutter/issues/162979

…etc

4. Your app will look bad because of scrolling

Scrolling has always been plagued by jank, micro-jank, and jitters. On iOS, the first frame is also missed, causing the infamous initial delay that impacts the entire scrolling experience.

Beyond highlighting how well scrolling performs in Lynx, even React Native manages to guarantee smooth scrolling.

video scrolling-native:

https://drive.google.com/file/d/1KsFsIePe1-jxvqOB0ir4DK32vAgwKZsU/view?usp=share_link

video scrolling-flutter:

https://drive.google.com/file/d/1dPW3spoPgefnsXSmguOTtOZZL2dE7HL_/view?usp=share_link

https://github.com/flutter/flutter/issues/110431

https://github.com/flutter/flutter/issues/113494

https://github.com/flutter/flutter/issues/75399

https://github.com/flutter/flutter/issues/52207

https://github.com/flutter/flutter/issues/142441

https://github.com/flutter/flutter/issues/162071

https://github.com/flutter/flutter/issues/120205

https://www.reddit.com/r/FlutterDev/s/5UUqPi5ADr

5. Your app will look bad because of UI glitches:

Unpredictable flickering, flashing, blank platform views and other rendering issues can occur. Some apps have been lately rejected by Apple and Google due to ANRs or performance problems. Always track your app performance (ie. android vitals) because it might fall below the acceptable threshold (as some have demonstrated with diagrams from version 3.27).

You might not notice these issues if your app is very basic, but for more complex apps, they could definitely become a problem. Just search flutter repo issues for "performance", "flickering", "jank" and "glitch". Be sure to check closed issues as well; they have a questionable policy of closing unresolved or only partially solved issues.

6. The Flutter Team

The Flutter team has faced significant challenges recently, having to rework large parts of both the engine and the framework. Many team members are burnt out to the point that they can no longer effectively and gently engage with the community. The experience has become frustratingly predictable: you file an issue, it gets triaged, and if you're lucky, it gets fixed (mainly if it's an easy fix or something the team was already working on). Otherwise, it gets lost in the sea of 5K+ unresolved issues. The sincere sense of gratitude towards unpaid community members who spend hours submitting issues, creating samples, and filing PRs is nearly nonexistent.

If you express frustration, your comments will be ignored, and in many cases, hidden for "not adding value to the conversation," citing industry-standard moderation policies. Ironically, those same policies also require them to properly classify issues' priority (which they don't) and avoid breaking the stable channel by promoting extremely buggy code (which they also don't). Developers pointing out issues are, in many cases, seen as a disturbance rather than the reason for their salaries. And as often happens when a team is shrunk (Google, that's on you), some key members lose their composure, thinking they can be rude because they are irreplaceable.

Another particularly concerning issue is leadership. Some of the original founders have left, several managers have departed, and it seems that some left not long after being appointed. But perhaps the most alarming problem is the lack of product-minded individuals in the Flutter team. If they were present, the major issues outlined above would have been classified as P0 or P1 and resolved with urgency. Instead these are the issues after 6+ years, with flutter being at version 3.29. Frankly, this level of quality might have been acceptable for a 1.0 release, but certainly not at this stage.

As a result, we've seen the community attempt to fork Flutter with Flock, and ByteDance abandoned it in favor of launching Lynx. I hope Google takes notice and takes action because literally "millions of developers" have invested significant time and effort into this platform. Many now feel forced to walk away because Flutter has over-promised and under-delivered, and the team seems disconnected from the real issues developers face, which are those issues that can determine whether an app succeeds or fails.

7. A call to action

I invite the community to help push for change by:

  • Sharing this post on X, Reddit and other social platforms, especially to reach newer developers who may not yet be aware of these ongoing problems.
  • Urging Google to add a prominent section on Flutter website and GitHub Readme where they clearly state the "limitations of Flutter".

Developers deserve to know that building native-like apps is currently not possible with Flutter. Still, we all hope these issues will be fixed — because they can be, and both Flutter and its community deserve better.

Links to the mentioned issues:

https://github.com/flutter/flutter/issues/139054

https://github.com/flutter/flutter/issues/120551

https://github.com/flutter/flutter/issues/158353

https://github.com/flutter/flutter/issues/154812

https://github.com/flutter/flutter/issues/107432

https://github.com/flutter/flutter/issues/150864

https://github.com/flutter/flutter/issues/120435

https://github.com/flutter/flutter/issues/116836

https://github.com/flutter/flutter/issues/105184

https://github.com/orgs/flutter/projects/155

https://github.com/flutter/flutter/issues/28894

https://github.com/flutter/flutter/issues/120857

https://github.com/flutter/flutter/issues/165171

https://github.com/flutter/flutter/issues/163516

https://github.com/flutter/flutter/issues/160725

https://github.com/flutter/flutter/issues/164183

UPDATE: The post was originally published on Reddit — an important clarification following John Wiese's comment.