Flutter developers and Layoffs, love or hate?
Tags: flutter, dart, layoffs, mobile
Published: 2023-04-11 00:11:23

Yeah, lots of big companies have been laying people off lately, so the job market is pretty tough. But don't forget, there's still a big need for really good developers with specific skills, like Flutter development.

If you're a pro with Flutter, it could give you a major edge over other job candidates. 

Having expertise in a specific technology like Flutter can make you stand out from other developers and potentially help you secure a job. Employers are looking for candidates who have a deep understanding of specific technologies. And being an expert in Flutter allows you to deliver high-quality results in less time, it gives you an advantage over other candidates.

I know it requires a lot of dedication, discipline, and a well-defined learning path even during the 1st step to gather required resources. So I've tried to create one for becoming an expert Flutter developer in 2023:

**1. Dart programming language:** 
A pro Flutter developer should have a strong grasp of Dart programming language concepts such as object-oriented programming, asynchronous programming, and generics. 

_Resources:_
- [Official Dart documentation](https://dart.dev/guides)
- [Dart programming course on Udemy](https://www.udemy.com/share/103zO83@3oKGjt3r6hg5RSBsA7UUFk198K208kqrUkjxYK5b9jm-IvD5l5vEvfS3WC8keA==/)


**2. Flutter fundamentals:**
After getting a solid foundation in Dart, the next step is to learn the fundamentals of building Flutter apps, such as widgets, layouts, and navigation.

Resources:
- [Flutter documentation](https://docs.flutter.dev/)
- [Flutter app development tutorial on Udemy](https://www.udemy.com/share/101WB63@rpxkD27-k_qmdWgmXdgGz7QzMBzXRfOaYrL6c69_Tpwxr62vkJPAU05mzjFcLQ==/)
- [Flutter Widget of the Week video series](https://www.youtube.com/playlist?list=PLOU2XLYxmsIK0r_D-zWcmJ1plIcDNnRkK)
- [The Boring Flutter Development Show](https://www.youtube.com/playlist?list=PLOU2XLYxmsIK0r_D-zWcmJ1plIcDNnRkK)


**3. Flutter Internals**
it's impossible for a skilled Flutter engineer to use Flutter without understanding its internals. Having knowledge of how the framework works can provide several benefits for developers, including improved performance, faster debugging, enhanced functionality, and better understanding of the latest advancements in the technology.

Resources:
- [Flutter internals](https://www.didierboelens.com/2019/09/flutter-internals/)
- [Flutter, what are Widgets, RenderObjects and Elements? ](https://www.youtube.com/watch?v=PnWxW21vDak)
- [Flutter's Rendering Engine](https://medium.com/saugo360/flutters-rendering-engine-a-tutorial-part-1-e9eff68b825d)


**4. State management**
An expert Flutter developer should have experience with various state management techniques and libraries, such as Provider, BLoC, Riverpod and others
Resources:
- [List of state management approaches](https://docs.flutter.dev/development/data-and-backend/state-mgmt/options) 
- [How to Manage State in Flutter Apps ](https://www.freecodecamp.org/news/manage-state-in-flutter-apps/)
- [BLoC library](https://bloclibrary.dev)
- [Provider library](https://medium.com/bancolombia-tech/flutter-provider-what-is-it-what-is-it-for-and-how-to-use-it-47d6941860d7)
- [Riverpod library](https://codewithandrea.com/articles/flutter-state-management-riverpod/)



**5. Flutter async**
Flutter async topic is a critical part of deep understanding of the Flutter framework and its underlying principles for building responsive and performant applications, especially for complex and long-running tasks

_Resources:_
- [Asynchronous programming: futures, async, await ](https://dart.dev/codelabs/async-await)
- [Async Programming in Flutter With Streams](https://betterprogramming.pub/async-programming-in-flutter-with-streams-c949f74c9cf9)
- [Dart asynchronous programming: Isolates and event loops](https://medium.com/dartlang/dart-asynchronous-programming-isolates-and-event-loops-bffc3e296a6a)
- [Dart Isolates, Threads, The Event Loop, Microtasks, Synchronous & Asynchronous workflows](https://www.youtube.com/watch?v=ArbJhSsEwTk)


**6. RESTful API and GraphQL integrations**
Should have experience integrating APIs and GraphQL into Flutter applications using packages like Dio, Retrofit, Http and graphql_flutter.

_Resources:_
- [Fetch data from the internet](https://docs.flutter.dev/cookbook/networking/fetch-data) 
- [Working with REST APIs](https://blog.codemagic.io/rest-api-in-flutter/) 
- [How to implement GraphQL with Flutter + GraphQL example](https://blog.codemagic.io/flutter-graphql/)


**7. Database integration**
A skilled Flutter developer should have experience integrating databases into Flutter applications, such as SQLite or Firebase.

_Resources:_
- [Flutter Firebase & DDD Course](https://resocoder.com/category/tutorials/flutter/firebase-ddd/)


**8. Testing**
These times Flutter developer should have experience writing tests for Flutter applications using Flutter's built-in testing framework or third-party libraries like Mockito.

_Resources:_
- [An introduction to unit testing](https://docs.flutter.dev/cookbook/testing/unit/introduction) 
- [Testing Flutter apps](https://resocoder.com/2022/02/08/flutter-testing-guide-for-beginners-part-1-unit-tests-setup/)


**9. Performance optimization**
A good Flutter developer should have experience optimizing the performance of Flutter applications using techniques like lazy loading, code splitting, and caching.

_Resources:_
- [Performance](https://docs.flutter.dev/perf) 
- [Flutter Performance Top 10 Best Practices](https://surf.dev/flutter-performance-tips/)
- [Improving Rendering Performance in Flutter App](https://medium.flutterdevs.com/improving-rendering-performance-in-flutter-app-7f08bc8f9eff)


**10. Continuous Integration/Continuous Deployment (CI/CD)**
Nowadays you should have experience setting up CI/CD pipelines for Flutter applications using tools like Travis CI, CircleCI, or Bitrise.

_Resources:_
- [Continuous delivery with Flutter](https://docs.flutter.dev/deployment/cd) 
- [Flutter CI/CD, Which One and Why](https://glovorytech.medium.com/flutter-ci-cd-which-one-and-why-71cd85951bca) 


**11. Design patterns and architecture**
Very important topic  having experience implementing design patterns like MVP, MVVM and Clean Architecture to write maintainable and scalable apps code.

_Resources:_
- [Flutter Clean Architecture tutorial ](https://resocoder.com/category/tutorials/flutter/tdd-clean-architecture/)
- [The MVP architecture pattern in Flutter ](https://medium.com/codechai/the-mvp-architecture-pattern-in-flutter-with-simple-demo-65ab3282c54b)
- [How To Use MVVM in Flutter](https://betterprogramming.pub/how-to-use-mvvm-in-flutter-4b28b63da2ca)
- [Singletons and DI in Flutter](https://codewithandrea.com/articles/flutter-singletons/)


**12. Debugging and troubleshooting**
Should be comfortable debugging and troubleshooting issues that arise during development and production phases.

_Resources:_
- [Debugging Flutter apps](https://docs.flutter.dev/testing/debugging)


**13. Open source and Flutter apps code examples**
By studying open-source Flutter apps, you will learn about best practices in Flutter development, how to structure your code, how to design your app's architecture and learn about common patterns and techniques used in real-world Flutter apps. Contributing to open-source Flutter apps can be a great way to give back to the community and improve your own skills in the process.

_Resources:_
- [Flutter public repositories](https://github.com/topics/flutter) 
- [Flutter by Example](https://flutterbyexample.com/)
- [7 Flutter Open Source Projects to Become a Better Flutter Developer](https://medium.com/geekculture/7-flutter-open-source-projects-to-become-a-better-flutter-developer-66944e460bdb)
- [The official package repository for Dart and Flutter apps](https://pub.dev/)


**14. Join Flutter communities**
Joining Flutter communities can provide many benefits, such as staying up-to-date with the latest developments in the Flutter ecosystem, networking with other Flutter developers, getting help with difficult issues, and sharing your own knowledge and expertise with others. 

_Resources:_
- [Flutter community resources](https://flutter.dev/community)
- [Flutter Meetup groups](https://www.meetup.com/topics/flutter/)
- [Reddit Flutter community](https://www.reddit.com/r/FlutterDev/)

I hope following this learning path, you will become a great Flutter developer and will not be afraid of company layoffs because you will have a strong skill set and experience working with a variety of projects and clients. Also you will have a diverse network of professional connections and be well-positioned to find new job opportunities quickly. Some of you may even choose to pursue consulting work, which can offer greater flexibility and independence in your careers. 

_I had a blast writing this article, and I hope you enjoyed reading it just as much! If you did, drop a ❤️ to show some love! When I'm not working, I like to write about tech stuff and sip on some coffee_