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.


Magnifier: native vs flutter


Text selection: native vs flutter




Toolbar: native vs flutter


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.