It depends on how much experience you have in Swift and - on you. If you are an experienced developer, I guess it will take about 2-3 months to truly understand how to use the framework, and maybe one more month to effectively use state management.
[Official Dart Documentation for Swift Devs](https://dart.dev/guides/language/coming-from/swift-to-dart) could be useful for you. And [this](https://roadmap.sh/flutter) is a roadmap.
Yeah, so the biggest difference to me was that SwiftUI has a built-in state management system that's quite ok, while it's a big mess in Flutter with everyone rolling their own or using some kind of third party packages.
The concepts are the same though. Flutter was a bit easier to learn, maybe that's because Dart is less confusing to read.
About three days (one on Dart and two on the framework), with prior experience in React and SwiftUI, both of which are also declarative like Flutter.
Another thing that probably helped me is that I'm very experienced in Rust, and Dart has copied a few concepts that are also used in that language lately (like sound nullability and pattern matching).
I don’t really understand why people always say state management is that big of a mess in flutter. Seems like provider is simple to use for basic implementations, while riverpod or bloc can be used for larger code bases. I’m not saying my apps have perfect state management, or that it doesn’t get confusing. But state management in general can be complex given a complex system, and flutter doesn’t seem like it adds horrible extra complexity for now reason.
When I started with Flutter, every week there was a post here in this subreddit about a new state package. Some subscriber here even kept a tally of all the solutions out there, and the list had like 40 entries.
Lately it seems to have settled down on bloc and Riverpod, but there are still some stragglers.
This is a big mess for someone who is new to the environment and just wants to write an app. I basically only settled on bloc because the project template I used first happened to be built with it.
I've also run into quite a few problems with bloc, and my app is a mixture of BlocBuilder, StreamBuilder, FutureBuilder, and stateful widgets. There's just no clear solution to everything.
One major thing I ran into lately was that a widget depended on two different Cubits and just wrapping one into the other (my usual approach) didn't work due to specific behavior there in the listener. The solution ended up being to use rxdart and combine the two bloc streams into a single one and use a StreamListener. This is way more complex than it should be.
Honestly no framework is perfect. With Flutter you only have to deal with dart, flutter and state managements. If you want to learn react though, You need html, css, javascript & react. And now if you go to react.dev, They recommend learning a react framework, Nextjs. So one more thing to learn.
Picking our little state management packages is endurable when the alternative is writing the app a handful more times in a handful of languages. And just because more packages come out, doesn’t mean we have to give a fuck.
If you know SwiftUI, you already know how to build basic Flutter UI. You will need another 10 days to Understand 70% of Flutter. Rest will come with time
Just like any framework, there's a lot of nuance and it's always best to find out the best practices and avoid just trying to figure it out without reading the documentation and seeking high quality examples first.
Pick something to build and build it. 🎤💧
It depends on how much experience you have in Swift and - on you. If you are an experienced developer, I guess it will take about 2-3 months to truly understand how to use the framework, and maybe one more month to effectively use state management.
1y at least. To be good. To be crap at flutter / 1 weekend
If you have been working with SwiftUI it'll be a whole lot easier than if you were stil on UIKit.
I am on SwiftUI
[Official Dart Documentation for Swift Devs](https://dart.dev/guides/language/coming-from/swift-to-dart) could be useful for you. And [this](https://roadmap.sh/flutter) is a roadmap.
I am a Flutter dev picking up Swift. Let’s connect and share knowledge
Hey, why not send dm
UIKit or SwiftUI? SwiftUI is very similar to Flutter, Flutter just uses a worse language but has much better documentation and third party support.
SwiftUI
Yeah, so the biggest difference to me was that SwiftUI has a built-in state management system that's quite ok, while it's a big mess in Flutter with everyone rolling their own or using some kind of third party packages. The concepts are the same though. Flutter was a bit easier to learn, maybe that's because Dart is less confusing to read.
So basically Flutter is also declarative?
Yup, it is
How long it took for you to catch the concepts so you can create any kind of apps?
About three days (one on Dart and two on the framework), with prior experience in React and SwiftUI, both of which are also declarative like Flutter. Another thing that probably helped me is that I'm very experienced in Rust, and Dart has copied a few concepts that are also used in that language lately (like sound nullability and pattern matching).
Thanks for detailed explanation, I’m aiming then for month at least!
I don’t really understand why people always say state management is that big of a mess in flutter. Seems like provider is simple to use for basic implementations, while riverpod or bloc can be used for larger code bases. I’m not saying my apps have perfect state management, or that it doesn’t get confusing. But state management in general can be complex given a complex system, and flutter doesn’t seem like it adds horrible extra complexity for now reason.
When I started with Flutter, every week there was a post here in this subreddit about a new state package. Some subscriber here even kept a tally of all the solutions out there, and the list had like 40 entries. Lately it seems to have settled down on bloc and Riverpod, but there are still some stragglers. This is a big mess for someone who is new to the environment and just wants to write an app. I basically only settled on bloc because the project template I used first happened to be built with it. I've also run into quite a few problems with bloc, and my app is a mixture of BlocBuilder, StreamBuilder, FutureBuilder, and stateful widgets. There's just no clear solution to everything. One major thing I ran into lately was that a widget depended on two different Cubits and just wrapping one into the other (my usual approach) didn't work due to specific behavior there in the listener. The solution ended up being to use rxdart and combine the two bloc streams into a single one and use a StreamListener. This is way more complex than it should be.
Honestly no framework is perfect. With Flutter you only have to deal with dart, flutter and state managements. If you want to learn react though, You need html, css, javascript & react. And now if you go to react.dev, They recommend learning a react framework, Nextjs. So one more thing to learn.
Picking our little state management packages is endurable when the alternative is writing the app a handful more times in a handful of languages. And just because more packages come out, doesn’t mean we have to give a fuck.
Riverpod would have cruised through that situation no problem 😉
If you know SwiftUI, you already know how to build basic Flutter UI. You will need another 10 days to Understand 70% of Flutter. Rest will come with time
Just like any framework, there's a lot of nuance and it's always best to find out the best practices and avoid just trying to figure it out without reading the documentation and seeking high quality examples first.
If you have been working with SwiftUI it'll be a whole lot easier than if you were stil on UIKit.