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-15: Practical Break: Demo Project
- Week 16: State Management with Provider
- Week 17: Clean Architecture Introduction & Clean Code (W01)
- Week 18: Clean Code (W02) & SOLID Principles
- Week 19: Practical Break: Movies App.
- Week 20: Firebase
- Week 21: Practical Break: Firebase
To be added soon, or in the coming versions from the roadmap. If you are on GitHub, please check the repository forks for the newer versions.
To be added soon, or in the coming versions from the roadmap. If you are on GitHub, please check the repository forks for the newer versions.