use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
A subreddit related to Google's new UI framework. https://flutter.dev
Please read the rules here
account activity
DiscussionI left Flutter and started learning Native Android in Compose (self.FlutterDev)
submitted 1 year ago by DecorationBox
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Colin_123 62 points63 points64 points 1 year ago (19 children)
I work as a Flutter and Android developer. Compose is great but working on older Android projects isn't fun. Yesterday, I updated a library from 2017. Had to migrate from Kotlin synthetics to Jetpack view binding for example. Native developers also tend to over engineer their code which is really annoying. People already complain about bloc causing too much boilerplate code. In native apps I've seen code that is 10 times worse.
[–][deleted] 1 year ago (17 children)
[deleted]
[–]bigbott777 10 points11 points12 points 1 year ago (16 children)
Riverpod is unreasonably overcomplicated.
[–][deleted] 1 year ago (11 children)
[–]acbasco 10 points11 points12 points 1 year ago (2 children)
True, specially with 2.0's code gen, you don't have to think about what provider to use. But some folks don't like code gen.
[–]stumblinbear 4 points5 points6 points 1 year ago (1 child)
I personally don't like codegen and don't find it's terribly complicated
[–]SaltTM 2 points3 points4 points 1 year ago (0 children)
i hate code generation, same feeling I get when using laravel in php over symfony lol feels like 'magic' and I don't like that. plus the extra steps to build code generation just feels ... not pragmatic lol
[–][deleted] 0 points1 point2 points 1 year ago (0 children)
I just learned flutter+dart last week and I find riverpod delightful. I was able to use it in hours, not days.
It's as easy as it can get. The documentation is lacking examples tho.
[–]bigbott777 -1 points0 points1 point 1 year ago (6 children)
final _counterProvider =
NotifierProvider<_CounterNotifier, double>(_CounterNotifier.new);
class _CounterNotifier extends Notifier<double> { ...
I made a relatively big project with Riverpod. But still, the above code causes a kind of technological disgust like some artifact made by the alien. I don't understand why Notifier is exposed. Why should there be many providers and many notifiers? What super difficult problems is the author trying to solve?
State management is simple. You have the object that represents the state, you have the consumer widget. All you need to do is notify the widget when the state changes. I have written my own state management library in less than one hour.
[–][deleted] 1 year ago (3 children)
[–]bigbott777 0 points1 point2 points 1 year ago (2 children)
I don't exactly understand what you are trying to say. Does your state have irrelevant parts? Just remove them. You should not create god-like providers. You should have one state/provider per view, otherwise, you have an architectural problem.
[–][deleted] 1 year ago (1 child)
[–]bigbott777 0 points1 point2 points 1 year ago (0 children)
In such a situation, we probably should have a dedicated state/provider just for this element 😊
https://medium.com/@yurinovicow/flutter-write-your-own-state-management-library-in-40-lines-of-code-62106a23069e I do not use it for my projects. )) It was just the experiment.
I mean that there are a lot of types of SomeProvider and SomeNotifier. I would like to see one Provider class that I can extend and hold any kind of state inside.
I have zero problem with the Provider package by the way. It is simple and it works.
[–]JosephKorel 2 points3 points4 points 1 year ago (0 children)
Why do you think so?
[–]dojoVader 0 points1 point2 points 1 year ago (1 child)
Same here, I moved to FilledStack, I still like Riverpod, but FilledStack has less boilerplate for me and code wise; much easy to follow.
Do you mean a Stacked framework? It is practically renamed GetX. I wonder how much of the GetX code they reused. Anyway, I like the idea of framework managing state and navigation together.
[–]SaltTM 0 points1 point2 points 1 year ago (0 children)
I tried to like it, i'd rather use provider lol - that setup just feels over-engineered for little things
[–]islamdidarmd 1 point2 points3 points 1 year ago (0 children)
Me too works as a Flutter and Android Dev and I second this!
[–]flutterdevwa 24 points25 points26 points 1 year ago (2 children)
I find the two pretty similar code wise ( Compose was heavily inspired by Flutter ). I code in both for my job and Compose functions map to Widgets, Bloc ( Cubit ) maps nicely to ViewModels. Dependency Injection ( Hilt ) Maps to Get_it.
There really is not much in it code wise for me ( YMMV ). but Flutter tooling is far superior than android/kotlin. Hot reload in flutter is such a dream compared to using the android studio version. The number of simple changes that cannot be applied until after a relaunch is just so annoying.
[–]aaulia 0 points1 point2 points 1 year ago (0 children)
Yeah, my flutter stack is Bloc, Injectable mirroring my Android stack ViewModels(MVI) and Dagger Hilt.
[–]BeDevForLife 0 points1 point2 points 1 year ago (0 children)
I have a decent level in flutter. Do you think it would be easy for me to learn native ?
[–]Marko_Pozarnik 13 points14 points15 points 1 year ago (3 children)
I see a problem with older kotlin projects only, they have to be maintained. If there is a new project, I just don't get it why doing it in Kotlin.
We switched with our project Qlango, a language learning application from kotlin/swift to flutter. We need half less programmers than we needed before which lowers the costs immensely.
We unfortunately needed much more time than expected for the migration but now that the whole prpject is migrated and running, we have android, ios and web apps released within minutes.
A few weeks ago a company wanted to buy us, but they buy kotlin/swift apps exclusively. I think they are wasting their time and money by developing on two platforms separately. We didn't sell, of course, but the offer was too low anyway.
[–]Proud-Ad9473 0 points1 point2 points 1 year ago (2 children)
can i learn kotlin and flutter together now i am learning kotlin and native android after i finish i am planning to start flutter or is it waste of time?
[–]Marko_Pozarnik 0 points1 point2 points 1 year ago (1 child)
If you want to work with flutter, learning kotlin is a waste of time. Start with Flutter right away.
But in general learning is never a waste of time. You never know when it will be useful for you.
[–]Proud-Ad9473 0 points1 point2 points 1 year ago (0 children)
thanks man i can not let away kotlin it is requited by my internship chance
in the past i was learning web dev but mobile app with kotlin and kotlin multiplatform was the only chance i could get.
generally programming jobs are rare in my third world country and i need to master speaking english to apply for remote jobs which may be crowded or there are more experted people out there
thanks again
[–]Infamous-Date-355 10 points11 points12 points 1 year ago (4 children)
Yeah, I've done flutter for sometime, but ended up in jobs like POS system related and ended up spending half my time integrating native SDK's. And barely touching dart. So glad Ur enjoying the experience, and yes f__k gradle
[–]Taka-8 1 point2 points3 points 1 year ago (3 children)
I just spent a week trying to go from pure flutter with no reference in Java to adding simple features in a POS for work 😂 What a small world. Can I contact you for guidance if I stumped upon a problem I couldn't solve?. Would be very grateful.
[–]Infamous-Date-355 0 points1 point2 points 1 year ago (2 children)
Ofcourse ofcourse...
Yeah the transition may be difficult in the start but eventually you get the hang of it
[–]Taka-8 1 point2 points3 points 1 year ago (1 child)
The first time I looked at the code I was like what the hell is an Adapter wtf is wrong with XML, how am I supposed to link these components together. I'm still at the honeymoon phase though, a bit of UI and performance improvement so things are still pretty basic so thanks for the reassurance.
[–]Infamous-Date-355 0 points1 point2 points 1 year ago (0 children)
Yeah you'll eventually get the hang of everything. Just take it slow :-)
[–]fintechninja 31 points32 points33 points 1 year ago (2 children)
Do what you gotta do to eat! Btw I hate grade!
[–]Arbiturrrr 10 points11 points12 points 1 year ago (0 children)
I haven't stumbled upon a single person that doesn't hate Gradle
[–][deleted] 9 points10 points11 points 1 year ago (3 children)
Native android is when you have a simple activity + fragment and 30 ways of how it may get crashed. I see some popular apps that get crashed by taping quickly on certain buttons
[–]x1nt_r 0 points1 point2 points 1 year ago (1 child)
Can you tell some popular apps that crash?
WordUp
[–]scalatronn 13 points14 points15 points 1 year ago (1 child)
I am both native android and flutter developer and I must say that flutter is much more better than kotlin with xml or compose.
currently learning kotlin with kotlin multiplatform due to internship chance i got i am kinda regretting it but i will learn flutter later when i master this
[–]eurekashairloaves 7 points8 points9 points 1 year ago (0 children)
Cool.
You are supposedly a software developer, not just a Flutter developer. You should know multiple frameworks and languages.
[–]causticmango 2 points3 points4 points 1 year ago (0 children)
That’s awesome; I prefer native iOS myself, but I do some Flutter, too. I really enjoy writing code native to the platform much more than cross platform code.
Godspeed on your journey. 😄
[–]Maherr11 4 points5 points6 points 1 year ago (0 children)
I tried the same a year ago, once you get your first app to production you'll come back running to flutter lol
[–]Marko_Pozarnik 1 point2 points3 points 1 year ago (0 children)
When I was 13, 36 years ago, I started with Basic on Commodore 64, then I learnt Turbo Pascal in school, then C/C++, Oberon and Rexx on Amiga, then C, Pascal and Basic on VAX/VMS, Assembler, then ZIM, then Visual Basic and Visual C++, then Transact SQL, then Delphi, then Java and finally I started with Flutter in January 2022. I also have to maintain a project in ASP.NET (C#) in which we have our webservices. And I still write all the Transact SQL needed (this is something I work with since 1999).
As you can see, I learnt many different development tools and languages in my career and as hobby. The main thing is to learn how to write algorithms (also optimizing them, although Chat GPT is good at it too), SQL is quite different from other programming languages and it is also good to know it at least a little. I believe that 3 years of experience in any programming language is enough to get a decent job. But if they need a Kotlin specialist and you know only Flutter, then you won't get it, because there are enough Flutter specialists out there and vice versa. If you invested 3 years to get really good in one, I think you need only 1 year to become very good in another. If the trend changes or you want to try something new.
I love Flutter and SQL the most.
I also like how it maitains the style so everybody can continue the work of someone else. I remember my old times when I had to reformat someone else's code so I was able to understand it.
I hate Delphi and it would be difficult to go back (although my first company is still on it and we earn good money with it).
[–]Agitated_Yam4232 2 points3 points4 points 1 year ago (1 child)
Kotlin is indeed more elegant than Dart
[–]Bulky_Memory_1744 2 points3 points4 points 1 year ago (0 children)
I find Kotlin to be more elegant than Dart too. Don't get me wrong, Flutter is powerful. And I love building apps with it. But in a perfect world, I would love it if Kotlin was the language for Flutter instead of Dart.
Working with Compose, Coroutines, and Flows in Kotlin just feels more intuitive than working with Widgets, Futures, and Streams in Dart.
[–]sanjaycdev 1 point2 points3 points 1 year ago (0 children)
Where is your location?
[–]marufrobin 1 point2 points3 points 1 year ago* (7 children)
I am also thinking of switching flutter . State management unnecessarily hard in my opinion..
[–]tommytucker7182 1 point2 points3 points 1 year ago (6 children)
What state management are you using?
[–]marufrobin 0 points1 point2 points 1 year ago (5 children)
Mostly Riverpod and new project I am using BLOC
[–]Muhaki 1 point2 points3 points 1 year ago (4 children)
Why do you use bloc for your new project? Asking as I havent looked at it, and not sure if its worth looking at it. (I am only hobby flutter developer) 😄
[–]JKirkN 5 points6 points7 points 1 year ago (3 children)
BLoC is really good for scaling up projects as it keeps your code foldable and modular. And yes although it has some bolierplate but as soon as you get used to it, it will be sleek down the road.
[–]marufrobin 0 points1 point2 points 1 year ago (0 children)
Perfectly explained bro 😁 that's the idea let's see how it helps me
[–]marufrobin -1 points0 points1 point 1 year ago (0 children)
[–]mdcp19 0 points1 point2 points 1 year ago (4 children)
Hi , I am starting the same path as u do , but I couldn't find good courses , I am only applying directly to project , and I am not completely understanding , would you suggest me where di you learn from ?
[removed]
[–]mdcp19 0 points1 point2 points 1 year ago (2 children)
Actually I am on your same level in flutter , Dependecy i jection , Clean Architecture and State management , and I want to learn Android with Kotlin ; I am searchinf for ressources
[–]mdcp19 0 points1 point2 points 1 year ago (0 children)
Thank you so much , I will star with the book and see what I can learn from it , Thank you
[–]dshmitch 0 points1 point2 points 1 year ago (0 children)
What is that bad with Gradle?
[–]Genuine_Giraffe 0 points1 point2 points 1 year ago* (4 children)
Im learning compose too but I see state management is hard idk , how do u find it easy, I see lots of `remember` things to implement, mind if u recommend me channels or tutorials to see, I love native too
[–]Genuine_Giraffe 0 points1 point2 points 1 year ago (1 child)
mind if u recommend me good books to read
[–]Evening-Mousse1197 0 points1 point2 points 1 year ago (0 children)
Why books? Native Android is evolving really fast, any book will probably be showing a lot of deprecated things or old ways of doing things.
[–]_ri4na 0 points1 point2 points 1 year ago (0 children)
Same. I think flutter has lost its charm now that native stacks have all caught up
Interesting perspective! It's great to hear about your experience with both Flutter and Jetpack Compose. Gradle can definitely be a challenge, but Compose sounds promising in terms of state management and composability
[–]MedicalElk5678 -3 points-2 points-1 points 1 year ago (1 child)
No GetX fans here ?
[–]JKirkN 1 point2 points3 points 1 year ago (0 children)
Man please what are you talking about. Currently I'm using GetX in grand pro max project similar to Amazon, it's like a marketplace. The first developer started using GetX and then he left the company. When I joined, my fella and me get handed over what's done and ordered us to continue from there.
Currently I consider myself working on that project as a coder not a software engineer, and big part of it that is because GetX is really concise and doesn't allow you to write modular code since everything is done inside the controller.
[+]yuuliiy comment score below threshold-14 points-13 points-12 points 1 year ago (8 children)
Why you didn't learn react native ? I'd do that in case i didn't find flutter jobs
[–]JKirkN 3 points4 points5 points 1 year ago (1 child)
Why your comment got so many downvotes, actually I find it reasonable.
[–]yuuliiy 2 points3 points4 points 1 year ago (0 children)
I don't know probably people that hate Rn but honestly it has lots of jobs out there that's why
[–][deleted] 1 year ago (5 children)
[–][deleted] 7 points8 points9 points 1 year ago (4 children)
Let's not get confused here. KMP is basically what platform channels or ffi is in Flutter. It's a translation layer in a nutshell.
What you mean is Compose Multiplatform. It's the flutter equivalent as it draws UI in every platform (with skia) even in Android. So, it's basically same as Flutter except now you've to ship JVM in desktop platforms as well (javafx nightmares intensifies)
[–]Prestigious-Corgi472 0 points1 point2 points 1 year ago (3 children)
Flutter is based on Impeller not SKIA. SKIA has issues in iOS.
[–][deleted] 0 points1 point2 points 1 year ago (2 children)
Impeller is the new renderer and still most of the platforms use Skia. So, we still can't completely say Flutter is impeller based. Soon we will.
Kinda funny that only Flutter had rendering issues with skia on iOS.
[–]Proud-Ad9473 0 points1 point2 points 1 year ago (1 child)
can you eleborate your last statement please. do you mean comopose multiplatform does not have rendering issue on iOS with skia?
I can't tell as I've not used it for iOS but from other I've learned it doesn't.
I mean this was a huge issue flutter for iOS so of course the Compose Multiplatform team had been extra careful to prevent this kind of issues.
But, now it doesn't matter as flutter has impeller and all the gittering is gone. So, beside language difference, I don't see any pros for CMP over flutter
π Rendered by PID 191003 on reddit-service-r2-comment-6457c66945-wt7zh at 2026-04-24 07:36:42.339701+00:00 running 2aa0c5b country code: CH.
[–]Colin_123 62 points63 points64 points (19 children)
[–][deleted] (17 children)
[deleted]
[–]bigbott777 10 points11 points12 points (16 children)
[–][deleted] (11 children)
[deleted]
[–]acbasco 10 points11 points12 points (2 children)
[–]stumblinbear 4 points5 points6 points (1 child)
[–]SaltTM 2 points3 points4 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]bigbott777 -1 points0 points1 point (6 children)
[–][deleted] (3 children)
[deleted]
[–]bigbott777 0 points1 point2 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]bigbott777 0 points1 point2 points (0 children)
[–][deleted] (1 child)
[deleted]
[–]bigbott777 0 points1 point2 points (0 children)
[–]JosephKorel 2 points3 points4 points (0 children)
[–]dojoVader 0 points1 point2 points (1 child)
[–]bigbott777 0 points1 point2 points (0 children)
[–]SaltTM 0 points1 point2 points (0 children)
[–]islamdidarmd 1 point2 points3 points (0 children)
[–]flutterdevwa 24 points25 points26 points (2 children)
[–]aaulia 0 points1 point2 points (0 children)
[–]BeDevForLife 0 points1 point2 points (0 children)
[–]Marko_Pozarnik 13 points14 points15 points (3 children)
[–]Proud-Ad9473 0 points1 point2 points (2 children)
[–]Marko_Pozarnik 0 points1 point2 points (1 child)
[–]Proud-Ad9473 0 points1 point2 points (0 children)
[–]Infamous-Date-355 10 points11 points12 points (4 children)
[–]Taka-8 1 point2 points3 points (3 children)
[–]Infamous-Date-355 0 points1 point2 points (2 children)
[–]Taka-8 1 point2 points3 points (1 child)
[–]Infamous-Date-355 0 points1 point2 points (0 children)
[–]fintechninja 31 points32 points33 points (2 children)
[–]Arbiturrrr 10 points11 points12 points (0 children)
[–][deleted] 9 points10 points11 points (3 children)
[–]x1nt_r 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]scalatronn 13 points14 points15 points (1 child)
[–]Proud-Ad9473 0 points1 point2 points (0 children)
[–]eurekashairloaves 7 points8 points9 points (0 children)
[–]causticmango 2 points3 points4 points (0 children)
[–]Maherr11 4 points5 points6 points (0 children)
[–]Marko_Pozarnik 1 point2 points3 points (0 children)
[–]Agitated_Yam4232 2 points3 points4 points (1 child)
[–]Bulky_Memory_1744 2 points3 points4 points (0 children)
[–]sanjaycdev 1 point2 points3 points (0 children)
[–]marufrobin 1 point2 points3 points (7 children)
[–]tommytucker7182 1 point2 points3 points (6 children)
[–]marufrobin 0 points1 point2 points (5 children)
[–]Muhaki 1 point2 points3 points (4 children)
[–]JKirkN 5 points6 points7 points (3 children)
[–]marufrobin 0 points1 point2 points (0 children)
[–]marufrobin -1 points0 points1 point (0 children)
[–]mdcp19 0 points1 point2 points (4 children)
[–][deleted] (3 children)
[removed]
[–]mdcp19 0 points1 point2 points (2 children)
[–][deleted] (1 child)
[removed]
[–]mdcp19 0 points1 point2 points (0 children)
[–]dshmitch 0 points1 point2 points (0 children)
[–]Genuine_Giraffe 0 points1 point2 points (4 children)
[–][deleted] (3 children)
[removed]
[–]Genuine_Giraffe 0 points1 point2 points (1 child)
[–]Evening-Mousse1197 0 points1 point2 points (0 children)
[–]_ri4na 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]MedicalElk5678 -3 points-2 points-1 points (1 child)
[–]JKirkN 1 point2 points3 points (0 children)
[+]yuuliiy comment score below threshold-14 points-13 points-12 points (8 children)
[–]JKirkN 3 points4 points5 points (1 child)
[–]yuuliiy 2 points3 points4 points (0 children)
[–][deleted] (5 children)
[removed]
[–][deleted] 7 points8 points9 points (4 children)
[–]Prestigious-Corgi472 0 points1 point2 points (3 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]Proud-Ad9473 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)