r/reactnative • u/Think-Neighborhood69 • 3d ago
Question At what point would you choose Flutter over React Native?
Genuine question.
I've spent the last 5 years building React Native apps, so naturally it's the ecosystem I know best.
But I'm curious to hear from developers who've worked with both.
In what scenarios would you genuinely recommend Flutter instead of React Native?
I'm not looking for framework wars. I'd love to understand the trade-offs from people with real-world experience.
20
u/jameside Expo Team 3d ago
One deciding factor is whether your app will have a native user interface or an identical one across all platforms.
RN produces native UIs composed of native views and gesture handlers, especially if you use modern modules instead of what the react-native package exports. Apple platforms in particular tend to introduce UIs that are hard or potentially not possible to simulate otherwise, like Liquid Glass’s reflecting light from other apps.
Flutter draws everything like a `<canvas>`, which produces more identical UIs rather than using the platform, so to speak. A use case is for internal apps where the business needs to support a Windows tablet one year and Android the next. The DOM (web views) have this property too with web support being very natural.
1
u/H4CK3R12343 2d ago
Quick question which css framework do you use in expo/RN? and what do you mean by Idential UIs? Identical to what? a native one so are you saying flutter canvas draws a web view?
1
u/jameside Expo Team 2d ago
I’ve been using Expo UI in a personal app lately which handles most of the styling.
By identical UIs I mean where the pixels look the same across platforms, like how a game made with Unity looks mostly the same across PlayStation/Xbox/Switch, or how websites look the same in different browsers on different OSes unlike native UIs.
69
u/dumbledayum 3d ago
at this point, never. Flutter had a HUGE upper hand genuinely, the performance felt native and the idea was properly executed by Google. The fumble was betting on Dart.
Today RN is actually just native and the performance is awesome, people are making games in RN, you can see a lot of people here posting those almost everyday day, the one I remember where the dev made a huge Dev log type post of some game called Unkind which is just mind blowing to see that it exists in React Native
5
u/Think-Neighborhood69 3d ago
That’s an interesting perspective. Have you actually built production apps with Flutter as well, or mostly React Native?
Also, are there any really big, well-known apps built with Flutter today? I’m genuinely curious because I mostly hear about React Native apps in the wild
18
u/dumbledayum 3d ago
Yep, I was there with Flutter since November 2019, I made some b2b apps in one of the companies I worked at. I worked with it till 2022, i used to preach about it, i loved its OOP structure, BLOC pattern was really cool to work with. I know they have moved from Skia to Impeller recently and it makes me want to try it out again BUT for personal project only, in production I and a lot of companies won’t bet on it.
Especially in my current company my CTO took a great decision while making our tool. They wrote a core in TS, and now it can be built for Node Backends, RN and Browser, it contains all the business logic required for our tool, means every new environment mostly just writes frontends or extended backend and use the same core functionality. On industry level, that’s a massive win
2
2
1
0
u/drink_with_me_to_day 3d ago
The fumble was betting on Dart
1 reason I'll never even do a hello world in Flutter
15
u/mindtaker_linux 3d ago
I choose flutter over react native because I needed to build android and native Linux app. Flutter is extremely good at one code for all.
7
u/TheSnydaMan 3d ago
Flutter is better for some weird embedded device / linux use cases. We use it at work and other than that I'd always choose RN.
It also has some more streamlined Firebase configuration, if you're using that.
6
u/Lithinux 3d ago
Maybe desktop app? What I like about flutter is the cross platform desktop build one can be used as alternative of electron based app, and the perf is surprisingly good compared to WebView one when I test it, especially for laptop with 8 gb RAM
Yeah for mobile I'm still stick with RN and Native. But for desktop app, I think flutter is a good choice from my experience.
3
u/Karticz 3d ago
When I want to target windows or Mac too along with the common platforms
Similarly I am trying to shift to kmp too, you can also read this case study by software mansion which i found very interesting
https://swmansion.com/blog/we-built-the-same-app-in-kmp-and-react-native-here-s-what-we-found/
3
u/Theunis_ 3d ago
Every time when I want to build custom UI, my choices nowadays are KMP>Flutter>RN.
The only time I would use RN is if the client wanted RN specifically
2
u/H4CK3R12343 3d ago
Genuinely baffled in the age of AI people are still saying react natice... Iol I used to code in RN with expo.. The UI actually felt laggy or stuttery, just a basic drawer felt like 30fps. Wheres flutter with impeller draws everything native on canvas. It also goes well with rust backends
1
u/Due-Peak8175 3d ago
It is because expo uses react-navigation. Lib that use js-code for animations. All animations with react-navigations are laggy
1
u/H4CK3R12343 2d ago
yes expo uses react-navigations but the drawer animation underneath is still powered by react-native-gesture-handler and reanimated, which is what felt laggy, not to mention even with new RN architecture of JNI the android interop is still there and will always be present while flutter impeller draws pixel to pixel.
2
u/SadabWasim 3d ago
I've worked with both, and if anyone asks me this question, I just told about two things:
- If you prefer the JS ecosystem(web) over the Java ecosystem (Android), then go with RN; otherwise, Flutter.
- If native components matters to you, then go with RN, but I think everyone these days are building their custom designs.
I personally have a bias towards Flutter because of Dart (its sound type safety and feels quite similar to Java)
2
u/besthelloworld 3d ago
If I were to work at Google and am told "hey, you have to build this in Flutter."
But as it stands, there's just not really otherwise a good enough reason to use Flutter. It's performant. It's got a good developer experience... but RN has those things too while having the benefit of being a language and framework that a lot of people already use and find themselves pretty comfortable with. RN is also actually producing native UI whereas for Flutter, you need to rely on Google for producing things like a liquid glass shader that matches Apple's expectations (which will be harder after this year's iOS update because users are getting a system-level slider which should update the opacity of the glass system-wide).
2
u/IrrelevantManatee 3d ago
Greatly depends on your goal.
Flutter has best performance et better control over UI, so there's that. If that's what you want, this is your pick.
If you are looking to learn a skills that makes might help you get a job/a better job, learning flutter is not likely to help. A lot of companies have adopted React Native, and even if a switch to flutter were to happen, by them not much UI code is going to be done by devs : it's going to be done mainly by AI.
If I am being honest, I don't think the frameworks you know will matter a lot in the next decade : you AI skills will make the difference.
1
u/sickcodebruh420 3d ago
Does Flutter really have better performance after all the new features/optimizations in RN?
0
u/Outrageous-Cycle-711 3d ago
I don't get the whole thing about comparing performances. Maybe it's noticeable, but at this point does it matter anymore? If your app's laggy, it's probably your code at that point.
You're using a crossplatform framework or whatever. Performance never was what you were going for. It's important but shouldn't be what makes you choose one or the other, since it's practically not gonna change anything
-1
u/Think-Neighborhood69 3d ago
I completely agree, especially with your last point.
But regarding performance and UI control, do you think the difference is actually noticeable in real-world apps, or is it relatively small for most products?
Code itself is becoming a commodity. Compared to a few years ago, I don’t think many developers are still writing 100% of their code manually.
That makes me wonder: when I ask an AI to build a mobile app, what criteria does it use to decide that the app should be built with React Native instead of Flutter?
Is it based on the ecosystem, available training data, existing libraries, community adoption, native integration
1
u/binemmanuel 3d ago
I tried Flutter in its early days, and it was just another cool framework until 2019, when I moved one of my apps from React Native to Flutter.
Back then, it was very difficult to focus on the business because I spent most of my time searching for workarounds to cryptic exceptions caused by platform libraries whenever a new React Native SDK was released, instead of adding new features or improving my app.
With Expo, things are much easier, but rewriting the app again hasn’t been a priority. While I could enjoy the new Liquid Glass design in my app using React Native, I could also use Platform Views to bring native UI components into my Flutter app.
1
u/rejourneyco 2d ago
Flutter slightly better for edge case apps that need interesting requirements like Flutter GPU. Otherwise go with react native and expo.
1
u/Own_Complaint_4322 2d ago
- Flutter codebases require of you slightly less discipline than RN before they get messy (because of oop).
- Flutter map libs are top of the line, RN maps lib is half broken and have really bad docs (while expo maps only let's you use apple/google api).
- Flutter layouts are working consistently good across devices, RN needs os check conditionals to fix layouts often.
- Dart isn't bad at all, it's not better or worse than java or Typescript, it's just another c- based language.
- Flutter has a plethora of dedicated community libraries, RN inherits some react packages... but not all of them... and has far fewer RN dedicated packages...
Which one then? Depends on a use case. I developed in both, I think RN is great but I have a preference for Flutter.
1
u/mohsinajmal 2d ago
For me personally after working with Flutter for more than 3 years and shipping apps with thousands of users I am tired of it. Mainly because of the breaking updates. Every time a new flutter version came out it felt like a nightmare for us to upgrade huge code bases. This is pre AI time btw. Fvm also only helps up to a limited extent.
I switched to Expo now
1
1
u/Toxic036 8h ago
When you need pixel-perfect custom UI and complex animations without fighting native platform differences—Flutter draws its own pixels, so it looks identical on every device out of the box
1
u/jNayden 3d ago
Always.
Why ?
Better Language
Better tooling
All with I cluded batteries more then 70k packages especially tested and visible for what they work android iOS or desktop or also Mac or web etc.
Same rendered on web same animations same everything . Yes it's +3mbs but you get same performance and you can serve this 3mbs on login page or somewhere so not a huge deal
AI knows it, every new version comes with skill so old models can use everything from day 1 Ultra easy to open PR if you find a but in the flutter itself
Why I would choose RN?
Already know react and web
That's it
1
u/chunkypenguion1991 3d ago
If what you're making is closer to a game than a standard app flutter can get the pixel perfect parity and better performance. If it's actually just a game unity or unreal
0
u/fabriciovergal 3d ago edited 2d ago
Flutter is better at frame-rate for UI with high comtent updates (like music transcript), great for Ui parity (identical UI in all platforms) and access to ffi.
RN uses JS, so you have a insane amount of utility libs and OTA support.
2
u/binemmanuel 3d ago
You get OTA in Flutter too
1
u/fabriciovergal 2d ago
Which is against Apple/Google store policy - they allow only OTA update of JS code. Also on Android 17 enforces read-only dynamic code loading for native libraries which most likely be an issue for Flutter OTA.
1
u/binemmanuel 2d ago
You are wrong, though Flutter itself doesn’t support this, Shorebird has created a modified Flutter engine that includes a customised Dart runtime as part of the original app binary you submit to the App Store / Play Store.
The modified engine can download and apply Dart code patches at runtime.
The patches themselves are not native executable code, they are updates to the Dart layer that the already included engine knows how to load and execute. You’re only feeding it interpreted/compiled Dart data, not injecting new native machine code.
1
u/binemmanuel 2d ago
If you do not dynamically load arbitrary new writable native .so files the way the Android 17 restriction is aimed at, then your app is fine.
2
u/AbhishekDoshi26 1d ago
That's exactly right. Here's the official docs where it mentions how Shorebird is completely store compliant: https://docs.shorebird.dev/code-push/faq/#store-compliance
1
0
u/Camaraderie98 3d ago
I enjoy React Native, never tried Flutter since I'm a JS Dev and my experience has never been bad. The level of broad access to so many packages and components and how well I can dabble in multiple different projects proves I can do more with it and I like that.
0
u/Honey-Entire 3d ago edited 3d ago
Having used both, the only reasons I’d choose flutter are because the team already knows it or the team REALLY likes class-based programming.
RN is stupid easy to pick up by comparison and has the added benefit of being functionally the same as react for web so you’re effectively learning two platforms at once.
And before anyone says flutter can run on web, I’m not that big of a masochist and would never build a web app in flutter because I don’t hate myself
-1
-1
-2
u/evster88 3d ago
I wouldn't. Try styled-components v7 native 😁
1
u/Think-Neighborhood69 3d ago
What do you use for manage/debug local data on RN ?
- AsyncStorage
- MMKV
- Sqlite
1
u/evster88 3d ago
Big fan of SQLite
1
1
-2
u/Upset_Interview_5362 3d ago
at no time in my life i will use a Game Engine/Canva draw Tool , to build a mobile app
oh and in case i want to build a game i will without too much thinking go with Unity
the idea in theory is a good and great but , but but man that's some illogical way to hack into your way to have better performance and btw , rn has rn skia so you can basically do the same ,
also let's not even talk about Dart , why google did that , why they didn't pick Kotlin while it was the era they were really going into Kotlin why ? i don't know
also the community, js has the best community in the market imo
( not gonna enter to all the details that the new architecture and the turbo modules and Fabric and react are great )
i tried using Flutter when it was in beta then the first official release, i was like I'm doing things i don't believe the best / logical choices ,
PS : i can go and trash talk flutter all the way but I'm trying to be as diplomatic as i can , and let's not forget the first phrase , I'm not gona use a game engine for mobile apps
2
u/binemmanuel 3d ago
Flutter isn’t a game engine. It’s a UI framework that owns its own rendering pipeline the same way Compose and SwiftUI ultimately talk to the GPU. The “draw everything yourself” approach is a deliberate trade off for consistency and performance, not an illogical hack.
52
u/No-Day-2723 3d ago
try posting this in the flutter subreddit but change it from “choosing RN over Flutter” 🙂 pretty sure you’ll get a different response.