Four Years using Flutter: Lessons Learned

Mohamed Hassan Kadri
5 min readMay 24, 2022

--

I can’t believe its been 4 years since I started using flutter and almost 3 years since I wrote my first article about flutter “ 6 Month into Flutter: As a junior Software Developer” where I documented my journey working with flutter in that article.

I always knew that Flutter would be huge when I started using it .

It’s been an amazing run for Flutter. In the couple last years Flutter completely changed with its addition of awesome features like the null safety support and support for almost all the platforms (mobile /web / desktop / embedded devices ). and since I wrote some of the oldest articles about flutter I almost get invitations and question weekly in my LinkedIn asking me about flutter and if its good for production or do I still use it even .

So I decided in this articles to answer some of the most common question I am still getting and some advices for all the aspiring flutter developers or anyone planning to use it.

1. Do you still use flutter ?

Clearly yes , I’m using everything that flutter can offer and I am still discovering something new each time . I published over 10 apps with flutter and I am planning to publish more because I always feel like I am missing something or its not enough .

2. what architecture and state management patterns you are using ?

Here comes the trickiest question for anyone in the flutter communities . I must say in my period using flutter I tried almost anything related to state management from scoped-model (no one knows this one this days) to provider , bloc, redux , riverpods , GetX 😁 … and I must say all of them did the job for me with their unique approach so I am not going to comment on any of them

but currently I am still using Provider since it was introduced in 2018 for state management in collaboration with get_it for dependency injection and its doing the job for me .

3. Why should I chose flutter over React Native / Cordova / Xamarin

This are the points that I think flutter is superior from any other cross platform or hybrid SDK. Performance , Unified UI Experience And awesome community

I think it’s important to emphasize that I don’t condemn React Native or any other framework or language! I myself use other options because one thing is certain: one technology does not exclude the other. Just use the best option looking for the specific problem that needs to be solved.

4. Is flutter good for complex production apps

Yes of course this is what flutter was built for to allow us to build mobile applications with a better user experience, robust performance, efficient programming, and enormous time and effort saving. All you need is a very good understand of OOP concepts and design patterns and you are ready to develop the next big hit .

5. Do I need to learn native development(iOS / android) to be good at flutter

The real answer for this question is Depends on what you wanna achieve .There’s no doubt native development has many advantages over Flutter, if your app need to access sensors a lot or use AR/VR or NFC or the app size need to be small than flutter isn't the best solution for you other then that flutter can be a good a choice for your app.

6. How can I learn flutter quickly

there is no magic formula to learn something quickly and that depends from the type of the person but I would recommend that you check the flutter documentation thoroughly because it have everything and its very detailed . and if this is not enough you can check some YouTube tutorials there's tons of them out there and start building your first MVP and I think you will be ready to go .

7. where do you see flutter in the future

I will answer this with a simple meme

I am sure flutter will keep growing . its already the most popular cross platform SDK in GitHub and it keep on rising in popularity and not showing any slow down. and with flutter supporting over 6 platforms . its the ideal tool for any new developer.

Tips for Newcomers

this is some tips for new people trying to discover flutter , build an MVP or trying to learn it

  1. Start with a simple project. Avoid those complex and Chat apps. You can practice with them to know the power of Dart and Flutter, but the best way to learn is having a real project you care for.
  2. Stay away from Firebase/Firestore at the beginning, first try to learn about HTTP request and API connections using http . Once you feel comfortable with this, you can take all the advantages of Firebase.
  3. Read all you can about State Management. Once you have a good understanding of the Flutter native State Management, go for the approach you like more: BLoC, Provider, riverpods or even Redux. (I personally use Provider).
  4. Pick and follow a Design Pattern. Avoid making your project based on blocks of codes copied from Stack Overflow.
  5. Don’t be overwhelmed by trying to learn all the things in one day trust me everything takes time.

Summery

If you’re looking to go down the cross-platform app development route, Flutter presents a lot of benefits. It offers quicker deployment, simultaneous app upgrades, a single codebase for both iOS and Android, and greater efficiency to name just a few. Perhaps this is why it’s constantly growing in popularity among the cross platform frameworks. And there are many big Flutter apps already out there, developed by big brands. But note that there are some scenarios in which Flutter should not be your top choice. If you’re developing apps connected to a hardware device over Bluetooth, or building instant apps which need to be small in size, Flutter would not be your best choice.

Your contribution

👏 Press the clap button below to show your support and motivate me to write better!

💬 Leave a response to this article by providing your insights, comments or requests for future articles.

📢 Share this article with your friends, colleagues on social media.

➕ Follow me on Medium and check other articles.

⭐ follow me in Github repository.

--

--