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.
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/#/
4) Try web flutter gallery to see numerous app samples (more complex) and widgets
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.dem...
macos dmg (.zip): 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.
This is what it looks like now in terms of performance if you want a demo https://flutter.gskinner.com/wonderous/
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.
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.
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.
Regardless of the specifics I don’t think the narrative is true, Flutter has had substantial continued growth for years now.
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.
There's a lot of competition for state managers but other than that you have a lot fewer choices you have to make to get started and fewer third party pieces to break on you.
I played around with Flutter for a personal project and there very few third party packages.
- 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
Saying that, we've started a flutter project this year to see how it goes (the rest stays native or RN)...
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.
> 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.
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 need to do better marketing for the technology.
I learnt Flutter and find that it's very hard to get a Job with the technology.