This roadmap was created for the Flutter committee in IEEE Mansoura Computer Society Chapter by Omar Nabil Elmesiry, head of the committee. I hope you get the most benefit from it. Also, I would like to thank Code2Start channel very much for the amazing content provided that I built most of the roadmap on. Don't waste any time, let's get started!
The main goal for this committee is to prepare committee members for being able to work as a Flutter Developer, either in a company or as a freelancer. In order to achieve this main goal, we have to the following objectives to focus on:
- Building active cooperative environment that enables everyone to communicate his/her ideas, opinions, work, or anything the member would like to share in a professional formal manner.
- Building active individuals that have advanced public speaking skills, advanced researching and self learning skills, and advanced writing skills, especially when writing about projects or technical concepts.
- Advancing in basic programming concepts, OOP for example, and essential methodologies such as Clean Code.
- Advancing in basic and intermediate flutter concepts that are essential for building full simple and intermediate mobile apps.
- Introduction to some advanced software development concepts such as Clean Architecture and Design patterns.
- Building projects portfolio from different projects starting from the advanced level, some of the projects will be as individuals and others will be in teams.
- Beginner: Dart
- Intermediate: Flutter
- Advanced: Practical Experience in Flutter
- Advanced Software Development
- Learning concepts related to basics of programming, such as: compiler, IDE, packages, libraries.
- Having a good background about Flutter and Dart.
- Learning Dart Programming language basics, common data structures, OOP, exception, and Futures.
- Solving a lot of programming problems using Dart.
- Learning about widgets, state, stateful & stateless widgets, and some common widgets.
- Week 01: What is Flutter?
- Week 02: Dart Basics, Exceptions, & Null Safety
- Week 03: Basics Review & More Tasks
- Week 04: Object Oriented Programming with Dart
- Week 05: Flutter Basics, Images, & Layout Widgets
- Week 06: Buttons, AppBar, & Themes
- Learning more advanced Flutter widgets, such as GridView and ListView.
- Gaining very good practical experience with UI coding in Flutter.
- Learning about pub.dev, how to add and use packages.
- Learning how to use Git & Github as a Version Control System.
- Learning how to use APIs using https package.
- Learning how to store data locally using sqflite package.
- Learning about common ways to create Animations in Flutter.
- Week 07: Git & GitHub
- Week 08: ListView, GridView, & Dialogs
- Week 09: Navigation & Forms
- Practical Break 01
- Practical Break 02
- Week 10: SQLite W01
- Week 11: SQLite W02
- Week 12: Async Dart & API (using http package)
- Advancing in UI coding & using APIs in applications.
- Learning about Firebase services and how to use Firebase Authentication, Firebase Storage, Firebase Firestore.
- Learning how to achieve State Management in your application using provider package.
- Learning about Clean Code and SOLID Principles.
- Week 13: Animations
- Week 14: Practical Break: Demo Project
- Week 15: State Management with Provider
- Week 16: Practical Break: State Management With Provider Project
- Week 17: Clean Architecture Introduction & Clean Code (W01)
- Week 18: Clean Code (W02) & SOLID Principles
- Week 19: Firebase
- Week 20: Practical Break: Firebase
To be added soon...