I prefer React Native (Expo) over Flutter. There are several things I don't like about Flutter. I had the chance to work with Flutter in the past and none of them were good experiences.<p>- Dart. Also, finding good developers to work with Flutter is harder than finding good RN developers.<p>- Emulated components vs. real native components.<p>- Speed: RN feels snappy and has fast animations. Flutter often struggles to stay at 60 FPS and requires a lot of optimization for simple things.<p>- Ecosystem: RN has a much bigger ecosystem of components.<p>- Migrating to native platforms: if you eventually want to move to fully native apps, it's easier for agents to read an RN project, understand its components, and build a serious native project from it.
While I've used Flutter since Alpha, I've been away for a few years. A few things have shocked me in these release notes: how come Impeller still wasn't the default engine for all platforms? Also, why are they migrating to WASM if one of the core features of Dart is compiling to JavaScript? Finally, how come multi window support only get viable now, after four years having desktop support?<p>Honestly, Flutter is an extremely enjoyable development experience I would recommend anyone I care for to stay away from. The fact it's developed by Google doesn't help: it's a matter of time before they kill it like they did with so many UI libraries and frameworks already, specially with JetBrains developing Compose Multiplatform and the Android team going all-in in the Compose strategy.
Flutter operates more like a 2D game engine. It renders its own views, which involves a lot of arithmetic operations, making WASM a more efficient option than JS.
I suppose AI would help for porting your app if you need to? It's not like the old days.
[dead]
Are Flutter and React Native still viable choices today?<p>I get the impression that more are going for native mobile, KMP or PWA.
Flutter: if you want a pixel perfect version of your app that looks similar on Android and iOS. Some quite popular apps use it and make a shit ton of money, for example Headspace. More here: <a href="https://flutterhunt.com/" rel="nofollow">https://flutterhunt.com/</a><p>React Native: totally viable, because core business logic is the same. If you want native UI elements and all the iOS Liquid Glass stuff, but don’t want to have to completely separate code based, React Native is a viable option if you don’t mind installing lots of third party packages for functionality you get out of the box in Flutter or true native apps.<p>Native mobile: I have one smaller app with quite a custom calendar view, written with Claude Code natively for Android and iOS. Coding agents help and you get maximum control. Mentally, it’s a bit cumbersome to direct you agent to do everything twice. While one platform can serve as a reference implementation for the other, it’s kinda annoying mentally "to do the same feature all over again and test and direct the agent". But it’s doable.<p>KMP: No experience, I just hate most things around Android.<p>PWA: That ship has sailed. Nobody knows about PWAs, most PWAs are bad. It’s a bummer really.<p>Capacitor: make an SPA (offline-first preferably), and use native code plugins via Capacitor. Still quite feasible, comparable to Flutter in the sense that you need to build a custom UI or use a fake version of Liquid Glass and Material. I use Ionic for that, but it’s a bit dated (still on Material v2). Heavily depends on your skills as a web dev to get good UX.
Native was always the best. It was just time consuming, requiring a bigger team. Now with AI helping out, it's probably the best option by far. I still like Flutter a lot though because you can get stuff done fairly quickly and even apply Material design to the iOS apps or vice versa if you want to (if it's a business app where the design doesn't matter too much). Or if you e.g. target win32
We use flutter at work. When you need to target various platforms for the same code base it's extremely competent.
I’ve been a React Native developer for 8 years, I’ve written many apps with it professionally and personally. Until recently, I would have recommended it wholeheartedly.<p>This weekend I had an idea I set out to experiment with: if I have an existing React Native app, how much effort would it take an LLM to rewrite it into genuinely native apps. My idea being I no longer need to write cross-platform code and pay the intermediary framework costs, I’d get direct access to the underlying platform. Instead, I could just spec the features I need in the app and the LLM can build it.<p>It took me a year to build the original app to production quality by hand. My “twins”, as they’ve become known, were at 80% completion in three days of on-off work.<p>I’m pretty much convinced my experiment was a success. Which sorta terrifies me that I’ve specialised in a technology that can be, for all intents and purposes, be entirely erased.<p>The only caveat I can find is it is still a great technology for doing cross-platform mobile and web. Using something like Tamagui (as rough as that can be sometimes) allows genuine code sharing across all platforms.<p>Sucks most that I’m now actively looking for a new React Native role.
Not saying that LLM development isn't fast, but doing a re-implementation of something you know in-and-out is almost always going to be faster, as you skip the probably most time intensive step of product research and requirement engineering.
Oh finally multi-window support - I might finally be able to flutter for a simple desktop app side project I've been wanting to build.
Tested lots of flutter desktop apps on Github last year. All have sluggish animation. FPS rarely reached 60.
great for mobile apps, fine for desktops, basically unusable for browsers unless you do wasm, if web can be revamped/improved it can be the best option for cross platform GUI
You are in luck then, use jaspr.
no one and absolutely no one pick flutter because they want do traditional web in the first place<p>its a cross platform framework that you can share component between mobile and other platform and always has been
I’ve used flutter for a couple of toy web apps. One is just a personal tool , another is a small party game.<p>Now I might vibe code such things using React, but 5 , 6 years ago Flutter got me what I wanted fast.<p>Firebase integration is absurdly easy. You can make a crud app in about 30 minutes
Decoupling material and cupertino makes a lot of sense.
how's Dart for back end development? is anybody using it to build APIs? the syntax doesn't look too bad
I have user Dart for small personal projects and it's a great language. Somewhat similar to Kotlin, but IMO a bit nicer. Unfortunately the ecosystem is not as developed outside of Flutter as with more popular languages, but it very much exists and pretty nice to use.
I've been using Dart and Flutter for years, but I've never ever met anyone who's seriously using Dart for backend. That would be a very niche thing and not popular with teams.
Try out serverpod. Not affiliated with them- it's just a super nice integrated Dart backend:<p><a href="https://serverpod.dev/" rel="nofollow">https://serverpod.dev/</a>
Of all the myriad projects from Google, how is Flutter/Dart the one that survived the axe? I’m not saying I hate them - I think they’re both really neat - I just don’t understand why Google keeps these limping along with weak support and no clear vision within their broader web ecosystem.
Easy, there are a few google teams that use flutter and the cost savings from not having to have dedicated ios and android teams is very easy to point at to justify the project's existence.<p>I think Dart and Flutter are <i>very</i> overlooked. The language has completely changed since its release, its statically typed, has null safety, enums, and pattern matching, and is very simple and easy to read. It has fast compilation and a ui framework with hot reload. It's as fast as Js on v8 while using less memory and has the overlooked feature of having very fast, almost 0 overhead, ffi.<p>I think the importance of good ffi is underrated for these ui languages. For reference, everyone that's using electron has to run two node processes doing ipc over a websocket connection. That's going to waste an absurd number of cpu cycles and memory when you are passing messages around when your app is basically a ui for a cli.
But they also fund JetBrains, Jetpack Compose, and KMP. It feels like the company threw their support behind Kotlin a long while ago on mobile, but internal struggles keep the others limping along. Compose UI tooling no longer requires viewing on device.
Android used to be its own kingdom separate from rest of Google. And maybe still is.
Only because it was cheaper to migrate Android to Kotlin instead of Dart. JetBrains needs Google more than Google needs JetBrains.
You're thinking of Google as a single top down company. It isn't. Think of it as an anarchy of warlords where each pulls the strings and management doesn't really know what's going on.<p>Flutter made a lot of sense during the Oracle lawsuit when Google needed a way to show Oracle that it can pivot from Java. Now it no longer makes sense but the inertia is too deep.<p>My guess is that flutter is sold internally through the Huawei support as a leg within China.
I’ve had good experiences with Flutter too. It’s actually much easier to build a performant macOS app with flutter than with SwiftUI.
Curious how you feel about KMP and Kotlin Compose.
How are they limping? Flutter has completely replaced it's rendering engine across all platforms and they're building out major window management support on desktop platforms.<p>At some point there's just not much exciting new stuff to add. Flutter is a nice stable platform, I'd highly recommend it.
> Flutter has completely replaced it's rendering engine across all platforms<p>And that new rendering engine is also why apps like Immich are unable to show HDR photos. Apple & Google both pushed broad support for that a couple years ago, with things like Ultra HDR and subsequently ISO 21496-1.<p>Meanwhile Flutter still doesn't really have wide gamut support <a href="https://github.com/flutter/flutter/issues/189155" rel="nofollow">https://github.com/flutter/flutter/issues/189155</a><p>Of course they need to prioritize where to spend resources, like any project, but Flutter also doesn't seem to be on any critical path for fancy headlining new features, either.
Right, but, nobody uses it. So what's the point for Google?
I've made a huge critic towards Flutter in another comment of mine, but adoption isn't it: the biggest bank in Brazil, with 135 million clients, is a digital bank whose sole interface is their Flutter app. They are different regarding tech choices (they use Clojure on the backend too), but I think it's a huge testament of how far along Flutter adoption has come.<p>Also, Google dogfoods it quite a bit.
Interesting, so Nubank is a heavy Flutter user?
Nubank also uses clojure and adoption is still a big issue.
The creator of flutter was on here saying that 1/3 of all apps on the App Store use it. That seems to be a lot more than “nobody”.
Is that true though? I'm reading HN on an app built using Flutter. I had no idea until recently, so I would assume more apps could use it without my knowledge.<p>I understand it's limitations vs native apps, but there's quite a few cases where it really doesn't matter.<p>The biggest one for me is always the fear it will be abandoned. Pretty much goes for any cross platform app framework though.
>but, nobody uses it.<p>I used to work at ByteDance and they alone employed I think more than 800 Flutter Devs. Douyin uses Flutter (the Chinese version of TikTok), Grab and Ebay use it, Alibaba and Baidu did too. Toyota and Volkswagen I think both use Flutter. Nubank I think is also a flutter app and they alone have like one hundred million some users.<p>With the popularity in the Chinese ecosystem alone there's gotta be a billion plus people using flutter.
Been using it for six years with fairly high success: <a href="https://stockevents.app" rel="nofollow">https://stockevents.app</a>
Google AdSense uses it.
I guess because they have buy-in from within Google? Google Pay, NotebookLM, Family Link, Google One, etc. are made with Flutter.
Most Google's projects that users loved were axed for a reason, typically internal management wars for promotions. Like YouTube really wanted to kill belowed Google Music, so they did. Or Google Pay vs Google Wallet.<p>Killing Flutter would not promote a manager. For now, of course.
Google internally uses dart, and I remember hearing that adwords in particular was rewritten in dart at least for the frontend relatively recently.<p>So they're probably investing in it enough for basic maintenance, but don't really care about evolving the language.
Sure, Adwords migrated from GWT to Dart. (And eventually I followed.) At one point, Dart moved from the Chrome division to the Adwords division. And Adwords alone can fund a team to do developer tools for them. Then, Flutter came a bit later.<p>It's been over a decade since then, though, and I'm out of touch now.
Flutter's not a web ecosystem project. It doesn't do HTML at all. Using canvas to pump pixels in people's faces does not the web make.
In one of their dev surveys, they did float the idea of divesting Flutter.
The one thing I hate about flutter is the ui code having an ungodly amount of nested brackets.
For some reason I prefer those to curlies.
You clearly need more Lispmaxxing
Loc goes brrrrrrr. The tokenmaxxing of the 20s
Awesome. I'd love if Flutter could also finally get Impeller on Web (I'm tracking the GitHub issues, seems like there's progress at least).<p>I personally would like for it to pick up some ideas from Svelte.
I've never used Kotlin, but I really enjoy Flutter. Not nearly as much as SwiftUI and the Lord's language, mind you.<p>Flutter can get you up and running quickly. If I want cross-plaform support, one codebase is hard to beat.
Been waiting especially for multi-window so it can be picked up by Flet.
> We are actively working toward enabling WebAssembly (Wasm) by default for Flutter web applications, bringing native-like performance to the browser.<p>lol.
I always find it strange that flutter isn’t built with golang or typescript. Why use a new language? When flutter came out both languages existed so curious about that.<p>The main reason i can think of is generics not existing initially
Dart shipped in 2011, four years before Flutter started.<p>On the technical side, Flutter needed AOT compilation to native ARM for release builds and a JIT for development (that's what makes stateful hot reload possible). Dart does both from one codebase. TypeScript means shipping a JS VM, which is precisely the overhead Flutter was designed to avoid. (In contrast to RN). Dart's other big win is GC tuned for allocating and throwing away tons of short-lived objects which is what happens when you hot reload over and over.<p>Go has no JIT, so no hot reload, and no generics until 2022, Flutter has a big widget library so that would not have been possible.<p>And of course the Dart team was inside Google, and had just lost its original mission when Chrome declined to ship the Dart VM, and was willing to change the language to suit Flutter.
I'm not sure why you're being downvoted, it's a super reasonable question.<p>Iirc the reason is that the Dart team was willing to heavily modify the language and runtime to accommodate the needs of Flutter and the V8 team wasn't.<p>I think this is the video that talks about this: <a href="https://m.youtube.com/watch?v=xqGAC5QCYuQ" rel="nofollow">https://m.youtube.com/watch?v=xqGAC5QCYuQ</a>
[dead]
[flagged]