When I led the Google team we had pretty good analytics. `flutter` was for a long time opt-out with analytics and would phone home to Google and report usage. We filtered out docker containers and things that looked like CI and saw usage near 1M monthly actives when I left Google a couple years ago. I'm sure it's up since then.
There are 10s of millions of web developers in the world. Doesn't shock me that Flutter could be over 1M monthly (and probably several million annually).
There are just a lot of apps and app devs out there.
My knowledge of their usage is from discussions with ByteDance some many years ago when I was in charge of the Flutter project at Google. At the time they were using Flutter in 50+ applications (probably most of them internal), including Douyin (TikTok for China) as well as physical hardware kiosks on their campus, web apps, etc.
[0] https://douyin.en.uptodown.com/android/download/87248716
[1] https://github.com/flutter/flutter/issues/11884 - click on the search button in Douyin on the main page and search for something to get to a regular ScrollView. You don't need an account for this.
I wouldn't say its unlikely they carried a patch for it, I just wrote a framework patch that I apply at build time in CI and locally.
I refuse to sideload arbitrary APKs, especially from bytedance. I feel bad because that is irrational, you did, and it'd be really helpful if I did and just did this myself, but, you should install FlutterShark and check: https://play.google.com/store/apps/details?id=com.fluttersha...
Why is "bug" in scare quotes here? It was most definitely a bug.
>I wouldn't say its unlikely they carried a patch for it, I just wrote a framework patch that I apply at build time in CI and locally.
The actual fix was pretty involved. I doubt a large company like Bytedance would want to carry around extra patches at the gesture level that make the dev cycle more difficult. Having one person carry a patch on their local machine is a different story.
Anyway, the Bytedance blogpost says only 200 devs are using Flutter which would make no sense if it was used in Douyin, and LibChecker[0] returns no results for libflutter.so.
Is it? I thought it was cool, I can't think of why its disruptive to scroll a list faster if you scroll with more fingers.
> I doubt a large company like Bytedance would want to carry around extra patches at the gesture level
I'm a solo endeavour, and I spent ~30 minutes to do exactly this (patch gesture behavior) two days ago. I was stunned how easy it is. But I grew up on versioned closed source dependencies on Apple iOS frameworks that you had to patch the runtime at runtime to fix, so I'm easily wowed.
> 200 devs are using Flutter which would make no sense if it was used in Douyin
Seems reductive: "Only" 200 fulltime, 800 in the company...and we're in a discussion about how 50 maintain _the entire framework_. :)
Hard to say it is "everywhere". It's probably more popular than any of the other cross platform alternatives though.
>android.permission.QUERY_ALL_PACKAGES
>com.google.android.gms.permission.AD_ID
>android.permission.ACCESS_NETWORK_STATE
>android.permission.WAKE_LOCK
>android.permission.FOREGROUND_SERVICE
seems like imo the type of thing you should be prompted for but what do I know
They finally added a permission for it - QUERY_ALL_PACKAGES - in Android 11 (2020). Unfortunately it's one of those stupid permissions like filesystem access where you have to apply for it via a form, and only whitelisted use cases are allowed:
> Permitted uses involve apps that must discover any and all installed apps on the device, for awareness or interoperability purposes may have eligibility for the permission. Permitted uses include device search, antivirus apps, file managers and browsers.
I suppose that situation is slightly better than "anyone can do it for any reason".
- 5 years using Flutter - 31 full-time devs - 3 platforms (iOS, Android, and Web) - 1.3 million monthly active users
Overall, we’re very happy with our decision to use Flutter
That said, I literally only use Flutter as a hobbyist.
I made a basic web game for a friend, and a small web app that helps me manage my music lyric videos. I ultimately picked Flutter because I find it easier than actually building websites.
Dart is amazing.
But I'm not deploying to millions of users. At most 10 people have seen my Flutter apps.
It's VERY good for creating quick crud apps with Firebase.
Just counting the number of us who have it installed and might of spun up hello world says nothing about it's actual market share.
To be clear, I absolutely love Flutter, but it's still not something I really see job listings for.
Dart is great too BTW.
I bet they'd mean a bit more if it wasn't coupled to a lengthy thinking-out-loud post that casts doubt on it, based on how many job listings you see, for something you don't look for job listings for.
Quick Google shows Dart 10th, right below SQL, right above Kotlin. https://www.devjobsscanner.com/blog/top-8-most-demanded-prog...
I've been hearing about Kotlin multiplatform just as long as flutter, and writing Kotlin since 2019.
Kotlin is a horrible daily driver.
I worked on Android for Google at 7 years, and maybe it'd have a better chance if it didn't win internally. As it stands, there's too many organizational boundaries created, and each organization holds itself accountable only within itself, so it's sort of the worst of all worlds, impedance mismatches everywhere, and nobodys fault they exist
I'm always stunned to read wish casting about Kotlin because there's ~0 path to even basic things that change productivity dramatically, like hot reload.
C# , NodeJS, Python and rarely Java( had a rough year), pay my bills.
Flutter/Dart doesn't. If you know someone hiring a Flutter developer I'm 100% down to interview.
I don't hate Kotlin, it feels like Google's answer to Swift( although Java was never as hard as Objective C). I even built a small project with it.
Can we at least agree it's weird Google is trying to promote 2 different languages for multiplatform development?
Let me compare Unity to Flutter for a bit. When Unity jobs are hard to come by, I'm still an OK C# dev.
Flutter/Dart doesn't offer they same freedom. Say what you want about Microsoft, but C# can essentially do anything. Including keeping me employed.
Re: multiple frameworks, I worked at Google and would argue I know as much as anyone does exactly what happened there, so I can't agree it's weird, per se. Handwaving, I'd say that's because the situation seems more 'certain' or 'settled' to me, for good reasons, but ones not worth getting into.
There's absolutely tons of threads to unpack in your comment, I wish we were in person.
Speaking generally, based on observation you gravitated most towards discussing qualities of a job one might or might not get:
I essentially left my job at Google for no paycheck, partially because Google x Koyaanisqatsi, partially because I just couldn't imagine having to go back to write Kotlin and/or Java day to day and being criticized either way. That being said, it's deflating seeing Flutter job listings after getting into this whole industry from iOS dev. Thing with Flutter jobs is there's tons of low priced job seeking competition that are smart as hell.
That's because it is unusually effective in environments where people can't afford a Macbook only for iOS dev, and at this point in its lifecycle, it self selects for people who get experience with new frameworks
Java just feels like a less refined C# to me, but I'd be fine with it if offered a FAANG job.
I've tried to learn C++ too since I think I'd open up some job opportunities, but it's just too hard for me.
So who won, Kotlin or Flutter ?
From your last paragraph, I take your prefer to work as a Flutter dev all else(pay) being equal?
You have the wrong order: JetBrains created Kotlin[1], and anything Google had to do with it was just adopting their language. Same story for Gradle choosing it over Groovy
Google doesn’t promote anything. There are two competing teams with their own agendas. Flutter’s bills are mostly paid by internal usage, as far as I know. Android is mainly focused on Android part of Compose.
Multiplatform Compose, on the other hand, is mostly pushed by JetBrains to eat some of Flutter’s lunch and promote Kotlin usage to drive their IDE sales.
> Let me compare Unity to Flutter for a bit. When Unity jobs are hard to come by, I'm still an OK C# dev. Flutter/Dart doesn't offer they same freedom. Say what you want about Microsoft, but C# can essentially do anything. Including keeping me employed.
I might be wrong, as I’ve worked with .Net professionally, but I doubt you can jump from Senior Unity C# developer to Senior Asp.Net developer. Language is a small part in modern development.
I'm not exactly senior to senior, but I hopped from mid level hobbyist Unity dev to professional Unity dev , to mid level .net dev. I have a very specific niche though.
I'm very comfortable with my career.
>Multiplatform Compose, on the other hand, is mostly pushed by JetBrains to eat some of Flutter’s lunch and promote Kotlin usage to drive their IDE sales.
Android Studio is free ? Are they really making that much money off users using Kotlin outside of Android Studio ?
They even have Ktor (Kotlin web framework) plugin available only in Ultimate. For any non-trivial Kotlin development you need to have Ultimate.
That is so stunningly false that I am pretty sure I'm feeding the trolls: https://github.com/JetBrains/intellij-community/blob/idea/24... (Apache 2)
That may sound more useful than it is: think "oh I can specify a dummy title and subtitle for a list view cell in code, then open a special pane in the ide to preview a source file, and then resize the window to imitate different screen sizes!", not, oh there's a bug, fix, save, insta-reload, verified fix. No holistic screens, or loading info from a database, or mutating data.
I assume this is an extremely hard problem. I remember trying to get Obj-C hot reload working 15 years ago and it kinda half-worked some of the time. And its not like I can edit the C++ my Flutter app is linking against and get instareload.
But still, it's one of the things thats easy to point out and drives home that these once-a-decade-or-two frameworks started in response to React Native/Flutter aren't addressing the fundamentals of what made them a sea change. Industry is risk averse and we make too many decisions similar to staying on track to launch MacOS 9.110 in 2024, instead of biting the bullet to get OS X done.
For Flutter to have fully landed it, it would take more than just hot reload. I'm not familiar with the latest but what are the chances of the Flutter rendering stack "going native" (as in not drawing to a Skia canvas or similar) on at least Chrome or Android? Or, is that the wrong question?
Good question -- I don't think its the wrong question? Maybe? :P Tough to phrase on my end too.
I only feel native speaking in iOS or Flutter, even with the Android experience, forgive me: I guess I'd summarize it as "yeah, you're right. if you're wondering if they're ex. calling CoreGraphics on iOS, no" (well, they do, but for text rendering. Not for a red rectangle)
Generally, Flutter Web is rendering into a WebGL surface using Skia -> WASM (2.2 MB download! modern miracle). macOS, iOS, (done) Android (soon) are switching from Skia to Impeller. I think the thrust of your question is "are they still bundling the render engine?" and the answer is yes.
I find the way you phrased it intriguing, in that, before reading your post I'd say drawing to a Skia canvas is as native as you can get. But I realize now that means I was overindexing on "close to the metal", and its apex not-native to say "gimme the framebuffer and i'll take it from there"
I'm a bit picky with design stuff and I loooooove that Skia's bundled and I can rely on it cross platform
Killed the framework for good, true. No pattern matching, joke destructuring, static delegation, reliance on Gradle (puke).
I don’t understand how Dart still has bad reputation when it leapfrogged this joke of a language long time ago.
I was genuinely interested in your thoughts, "you wouldn't understand it, but trust me" is deeply unhelpful.
Glad you found it useful.
Did you really just thank the guy for saying thanks, but give him a big fuck you in the same breath for not being a 100% kool-aid drinker?
Speechless.
My point was you just can't count SDK downloads as developers. Is every CI/CD pipeline a developer ? The founder of Flutter who posted that stat has a startup which is heavily invested in the perception of Flutter being popular.
In the Unity community we aren't afraid to critique Unity and even suggest trying other engines. Of course Unity isn't open source so you don't get articles like this where someone claims it's time to fork.
At the same time, Unity uses C#, so you can take your skills, and even some nuget packages( with a bit of work) elsewhere if you want to switch.
Flutter requires a higher time commitment since I have to learn a language that's exclusive to Flutter. If this ship goes down I can't use Dart with anything else.
Anyway, I think job postings are a much better metric of adoption. I like Flutter, I've used it for 4 years and I want it to succeed. I don't want to go back to react native!
I'm guess I'm capable of being curious and engaging in conversation, beyond sitting in the bleachers grading everyone on my scale that at 100% is "koolaid drinker.", depending on if I feel like the things they're talking about are on Team A or Team B I've identified.
Then again, that perspective would sort of come naturally if I were reading hysterics into every comment I read. "Big fuck you" is textbook catastrophizing.
while I'd agree with you that 1 million is too high, Flutter certainly is not experimental Google tech. It's widely used in particular internationally. I talked to a ByteDance guy two or three years ago and I think they alone had about 1k Flutter engineers. Nubank, Alibaba, BMW, Ebay use it extensively.
Flawed metric but eyeballing VScode Extension installs, Python 140m, c# 30 mil, Go 15 mil, Flutter 10 mil. It is very, very popular.
Seeing as React Native has somewhere around 1 million active developers, Flutter almost certainly does as well.
Your point may still be valid, but... is 3-5% really that high?
(No dog in this, I'm not doing web development at the moment, although I have and probably will again.)
The 2024 SO dev survey https://survey.stackoverflow.co/2024/technology/ has flutter at 10% and nodejs at 40%. Github language stats has JS about 10-15x the popularity of dart, but seeing as JS is more than just node it might pan out. https://madnight.github.io/githut/#/pull_requests/2024/1
So I guess looking at the stats 1M flutter devs is not an implausible number on its face.
I’m pretty sure Node developers usually don’t install Node from npm.
No. It downloads binaries from nodejs.org. There is no "official" canonical means of managing Node versions. It's just a grab bag of community tools like NVM.
I'm not sure what conclusions we can draw from either number.
just because someone cloned a repo once or an NPM package was downloaded doesn't mean someone is a flutter dev. I don't know what the best metric would be, but its relevance is definitely overstated
Some relevant data:
- Over 165K GH stars
- Over 140K subredditers
- Over 500K YouTube subscribers
The 1M estimate is at least ballpark accurate.
I don’t sub him on YouTube - but I’m not lying when I say everyone I know IRL who does sub his channel has worked as a barista at some point in their lives (…and purchase actual chemical-lab supplies for their coffee brews).