5 ms·
I find Flutter way more technologically superior than React Native. But I still don't understand why most companies still focus on React Native for their cross
by max_ 3y ago
I find Flutter way more technologically superior than React Native.
But I still don't understand why most companies still focus on React Native for their cross platform development.
It is fantastic for side projects and personal projects or when you are contracted. But I find it very difficult to get a job with Flutter.
Google needs to do better marketing for the technology.
I learnt Flutter and find that it's very hard to get a Job with the technology.
- boo-ga-ga 3y agoI think that Flutter apps by the framework's nature will always have non-native appearance and feeling to at least some extent. And this makes it not very good fit for apps with a sufficient budget and the need for native appearance. It's definitely good for small one-person projects, but the job market for these is not very lucrative.
- robertlagrant 3y agoIsn't that also true for React Native?
- mvid 3y agoNot really. RN usually defaults to system components
- ohgodplsno 3y agoSystem components is not a thing on Android. You've not seen the default EditTexts in years. Material, which you'd consider the default is a library, whether in XML or Compose (and Compose is a reimplementation of them). Also, Android has never pushed for unification of UIs. Use Material if you want because it's an alright design system, or write yours entirely from scratch. React Native & Flutter look... Exactly how you want them to look. Unless there's a bug in Flutter's Material implementation, it'll be the same.
- earthnail 3y agoYeah, but on iOS it's a thing. And it shows heavily in things like scroll behaviour.
- pzo 3y agoI'm iOS dev but right now learning flutter. Few observations: 1) Difference between new latest Material You (aka material 3.0) and SwiftUI is smaller than Material 2.0 and UIKit - at least regarding look & feel. 2) I find old UIKit style quite boring same with older material 2.0. On the other hand SwiftUI and Material 3.0 looks more modern. There is rarely any iOS app that use native widgets without completely changing branding and styling. 3) Comparing to SwiftUI, new Material 3.0 feels more complete - there is more widgets and navigation choices. UIKit and SwiftUI is lacking in widget departments regarding: snackbar, bottom sheet, modal bottom sheet, navigation drawer, navigation rail, modal navigation drawer, cards, multiple dialog options. I recommend to checkout and play with material 3.0 demo (just keep in mind this is web version- you will have even better experience when using native compiled version on mobile or desktop - web version of flutter could be better): https://flutter.github.io/samples/web/material_3_demo/#/ https://flutter.github.io/samples/web/material_3_demo/#/ 4) Try web flutter gallery to see numerous app samples (more complex) and widgets https://gallery.flutter.dev/#/ https://gallery.flutter.dev/#/ again even better to download mobile or desktop version that there is in play store: play store: https://play.google.com/store/apps/details?id=io.flutter.demo.gallery https://play.google.com/store/apps/details?id=io.flutter.dem... macos dmg (.zip): https://github.com/flutter/gallery/releases/latest https://github.com/flutter/gallery/releases/latest I tried both macos flutter gallery and on iOS and surpassingly is pretty good these days and smooth and feel native - even text selection works these days, moving cursor with long press on keyboard space etc. Occasionally was more difficult to dismiss keyboard on iOS and back/next mouse keys or touchpad gestures didn't work on macOS flutter gallery. But overall I'm quite satisfied and surprised comparing how it looked 4 years ago.
- mhoad 3y agoJust as an FYI your information is a bit out of date. They rewrote their entire graphics pipeline a while back to solve exactly this. This is what it looks like now in terms of performance if you want a demo https://flutter.gskinner.com/wonderous/ https://flutter.gskinner.com/wonderous/
- cageface 3y agoSort of. It adds a lot of layers on top of the core components and isn't just vanilla native UI plus some tweaks. React Native apps still stick out compared to real native apps unless you put in a fair amount of extra work.
- jwells89 3y agoIn my experience RN apps are most obviously “un-native” feeling in their navigation, which is where the most custom-rolled code seems to be. It often feels clunky, with weird transitions and foreign behaviors.
- zigzag312 3y ago> And this makes it not very good fit for apps with a sufficient budget and the need for native appearance. It's definitely good for small one-person projects Do you have any data to back this claim. From my experience, many big budget applications (at least on desktop) don't have native appearance. Eg. products by Adobe, Steinberg, Autodesk, JetBrains etc.
- zerr 3y ago"Native controls" is less and less relevant, especially on mobile, where everyone tries to come up with completely custom styling.
- Tao3300 3y agoThis is one of those dumb things where user tests will stir up things like "why doesn't it look or act like (insert mainstream application)?" They have their hypercritical glasses on and fail to realize that the mainstream app already looks and behaves exactly like that; they're just so accustomed to it that they don't notice it. I'm not sure what you do about it. I fell victim to this a couple decades ago trying to reconcile theme inconsistencies between GTK and KDE apps on my Linux desktop. It was so irritating, but for longest time I was overlooking that Windows at the time also had apps using different Windows UIs from different eras. IIRC Outlook actually had an XP scrollbar for the Inbox frame and a Win32 scrollbar in the Preview frame. Two different UI styles in different frames of the same window within one application.
- phist_mcgee 3y agoScrolling. Simple as that. Using a flutter app has non system scrolling acceleration, scroll speed etc. It doesn't feel like a native app, because it isn't a native app. With react native, there are many parts of it that use the underlying system's UI, and so it feels like it could almost be a native app. Also hitching their horse to dart was a poor move to get devs to switch over from swift/kotlin and JS.
- zigzag312 3y agoYes, scrolling is currently one of Flutter's weak spots. Their implementations of scrolling are still not up to par with native implementations.
- mhoad 3y agoWhile that really was a big issue, that hasn’t been true for a while now.
- phist_mcgee 3y agoLong enough to kill the momentum and let RN take the lead.
- mhoad 3y agoFlutter overtook RN a while back in terms of popularity in a few different metrics if I recall correctly. I forget the specifics but something from GitHub and StackOverflow I think. Regardless of the specifics I don’t think the narrative is true, Flutter has had substantial continued growth for years now.
- akmittal 3y agoThere are millions of react developers so learning RN is much more easier. Dart is good but learning it just for flutter makes less sense
- comatory 3y agoI picked up Dart in a week or so and felt very productive with it in less than a month, the language itself is very easy to understand if you already know Typescript or Java. Flutter has a learning curve as well, you need to understand the concepts and the built-in widgets but even after month or so I was able to code up basic cross-platform app for iOS/Android. Ended up spending almost a year working on that project and gradually evolving it to support offline state, geolocation and real time updates.
- pzo 3y agoIf you are comming from front-end side (javascript, typescript, react) then sure. But for me who didn't touch front-end since 10 years and did mostly: Java nad C++, Objective-C, Swift, Python there is no easy way to learn the React Native ecosystem. I tried RN last week and I been all the time googling to figure out all the choices: 1) should I use nvm, n, nodenv for for nodejs management? Should I use script or homebrew? 2) what's the difference between npm, npx? Why npx giving mi different version number than node? Did I had some old version of nodejs from some dependency when using homebrew? Will it bite me in the future (those all questions were in my head) 3) should I use expo cli, ignite cli, react native cli? 4) expo vs repack vs vite vs capacitor vs tauri 5) webpack vs metro vs swc vs esbuild vs rollout vs sucrase... 6) vanilla react or next.js or react native or solido? 7) what ui kit to use? native-base? tamagui? react-native-paper? They all sucks in some way comparing to flutter proposition 8) should I use style-components? emotion? tailwindcss? nativewind? 9) should i use vanilla javascript or typescript? (is learning typescript straight away is too big to swallow in one bite?) 10) learn vscode shortcuts + figure out which plugin to install and how to setup 11) JSON config hell in RN for everything: postcss, vite, tailwind etc. 12) react-navigation vs react-native-navigation vs expo-router 13) redux vs mobx vs mobx-state-tree React native feels to me like thinkpad + dekstop linux: you like the philosophy, crossing finger it gets better and less fragmented and working out of the box But in the end you end up buying macbook with macOS (feels like flutter) even though you hate apple solders stuff and it's gonna cost you a lot of it breaks and apple giving you limited choices and too much constrained walled garden.
- Osiris 3y ago1. Their engineers already know React syntax and tooling. 2. The React Native ecosystem is orders or magnitude larger I played around with Flutter for a personal project and there very few third party packages.
- brabel 3y agoWhen was that? It seems to me there are Flutter/Dart packages for everything these days, and if I remember correctly, Flutter has overtaken React Native on the StackOverflow popularity ranking.
- pzo 3y agoThings have improved though last time I checked 4 years ago. Flutter UI kit is definitely more complete and not fragmented as RN UI kits, or even React UI kits. On top of that you have official: - firebase - supabase - revenue cat - stripe - google maps - google ads / analytics - grpc - webview - tensorflow just to name a few - there is even more community one e.g: lottie, mobx, just_audio etc. interop seems also improved: cffi got improved and been out of beta for a while and they also added FFIgen [0] that can generate bindings to C and Rust C rust flutter bridge [1] - even though not official is very popular and well maintained. So you can use vast cross-platform crates if you need something more advanced and low latency like for Audio you have CPAL [0] https://pub.dev/packages/ffigen https://pub.dev/packages/ffigen [1] https://github.com/fzyzcjy/flutter_rust_bridge https://github.com/fzyzcjy/flutter_rust_bridge
- mclion 3y agoAt my company it's Google and it's history of deprecating products that many people and/or companies depended on. Flutter is OS, but it can't survive without a big company to sponsor development (at this stage). Saying that, we've started a flutter project this year to see how it goes (the rest stays native or RN)...
- camgunz 3y agoI think this is pretty true. Google should start a Dart/Flutter foundation or something and get industry partners.
- NeutralForest 3y agoSame, it's pretty scary to start a Flutter project because idk if it'll still be around in 3-5 years.
- Longhanks 3y agoThere are millions of react developers. Apart from Flutter or Google employees, there are close to zero Dart developers. Even managers have heard of React and its success by now. Nobody has heard of Flutter or Dart. By this point, betting on Google technology is known to be a high risk, as Google might kill off Flutter/Dart without transition to anything close at any point in time. Even managers have heard of this "behavior" by now.
- tsss 3y agoMany startups around me seem to be using Flutter, about as many as are using React Native. The problem with startups is that they're chronically broke and contracts are often too short to be worth it. All the cross platform frameworks are compromises, which makes them an unprofitable business for freelancers because the only customers using them are poor.
- alexandr1us 3y agoFlutter apps on iOS feel way off
- deleted 3y ago[deleted]
- nicoburns 3y agoThe thing with React Native is that you essentially have the full power of the native platform, including all native UI controls. You might have to write you're own integration if you're doing something unusual, but you will definitely be able to do it. With Flutter that isn't so much the case.
- lukeh 3y agoFWIW I've been working on a native Swift implementation of Flutter channels [1], so I can use Swift for business logic with Sony's embedded Flutter embedder [2]. Probably a niche interest, but I'd prefer to write Swift than Dart, and there's no Objective-C runtime on Linux (so I can't use the default Darwin embedder). [1] https://github.com/PADL/FlutterSwift https://github.com/PADL/FlutterSwift [2] https://github.com/sony/flutter-elinux https://github.com/sony/flutter-elinux
- binary132 3y agoMost companies are 100% focused on the logistics of delivering a product and only “care” about technical implementation inasmuch it will be a liability to the objective. Þe olde chicken and egg strikes again
- deliriumchn 3y agoHow superior it can be if it just shows a native canvas element and then draws custom stuff on it, which leads to funny bugs like 1 frame lag on iOS (OS detects touch and rightfully assigns a draw action, then flutter slaps its hands and reassigns with scroll action)? > But I still don't understand why most companies still focus on React Native for their cross platform development. Because it uses native components, which leads to native feeling apps. For bonus points, they added new engine that makes performance differences between react-native and native apps very small (unless you're working on interval trading terminal or games, which flutter does not handle as well). Plus its simply easier and entry barrier is non existent, therefore its cheaper. > Google needs to do better marketing for the technology. Dart as a language is a bad marketing for their technology. I also hate the amount of boilerplate I have to write and how weird it looks compared to RN/SwiftUI/Compose.