Flutter Developer Learning Roadmap

Sabin Khanal
4 min readMay 22, 2021
(Image is copied from another source, Not mine 😏)

If you are planning to become a professional flutter app developer, here’s the good syllabus for you. I recommend you to learn all the topics given below in consecutive order. I do believe that it cover’s most of the things you need to learn to become a professional flutter software developer.

Introduction

Flutter is an open source cross-platform application development framework that enables developers to build high-quality, performant, and UI-rich applications with minimal effort. Furthermore, it is one of the best cross-platform app development frameworks available, with a vast ecosystem of third-party packages, a robust community, with strong support and backing from Google. It is based on the Dart programming language, which is a high-performance, cross-platform,modern programming language developed by Google itself.

Flutter is extremely popular and is used by thousands of popular brands and companies all over the world. As more and more companies are adopting flutter, it’s the best time to join the flutter development course and get ready for the future market.

As flutter provides the best cross platform app development experience, many companies and developers are switching to flutter. Providing native like performance on different ecosystems with a single base with maximum code sharing is possible with flutter.

Requirements

Beginner developer or Experienced iOS or Android developers who want to create cross-platform apps with flutter could also benefit from this syllabus. Furthermore following prerequisite is expected,

  • Basic knowledge of any programming language
  • A capable windows/Linux/mac computer
  • Passion for learning

Syllabus

Introduction to Mobile App Development

In this chapter, you will learn about the history as well as current trends in mobile app development. Students will also learn about the other existing platforms & development tools. Questions like why dart & why flutters would be answered.Key terms related to mobile app will also be explored.

  • Introduction to mobile app development
  • History
  • Platforms
  • Native vs Hybrid Apps
  • Existing tools
  • Why Flutter ? Why Dart ?
  • Mobile Development key terms

Introduction to Dart

  • History & Introduction
  • Basics : Environment , Syntax , Data Types, Variables, Operators, Loops,Decision making, List, Map, Functions , Parameters (Default+Named)
  • OOP with Dart : Class,Constructor, Inheritance, Interfaces, Mixins, Overriding , Operator overloading
  • Intermediate Dart : Keywords, Null Safety, Getters & Setters, Exception handling
  • Advanced Dart : Lambdas,Higher Order Functions, Closures, Future, Stream

Introduction to Flutter

  • Introduction & History
  • Flutter Project overview
  • Flutter UI
  • Flutter Architecture
  • Flutter Key terms

Development Environment Setup

  • Installing Dart+Flutter on Windows/Linux/Mac
  • Setting up Emulators
  • Setting up VMWare & XCode for iOS development
  • Connecting with android & iOS devices

Git Basics

  • Creating repository on local & GitHub
  • Pushing local changes into the repository
  • Pulling and cloning projects from the repository
  • Branching
  • Merging & Pull requests

UI Design with flutter

  • Flutter App Structure
  • Introduction to Widgets
  • Build method
  • Stateful vs Stateless Widgets
  • Some Important Widgets
  • Layout widgets
  • Handling gestures
  • Building complex UI
  • Navigation & Routing

Communicating with the world

  • Consuming REST API’s
  • Working with JSON
  • JSON to models
  • Displaying data from API
  • Future & async await
  • Using third party packages

Data storage & Assets

  • Using Assets
  • Reading & Writing Files
  • Shared Preferences
  • SQLite (Creating databases, issuing queries..)
  • Firebase (Firestore & Realtime databases)

Forms & Validation

  • Creating Login screen
  • User Input & Keyboard
  • Retrieving Form values
  • Form validation
  • Global Keys
  • Form submission
  • Mixins and Validations

Animations in flutter

  • Animation basics
  • Implicit & explicit animation
  • Common animation widgets
  • AnimationController
  • Tween animation
  • Hero Effect
  • Animated Builder
  • Parallel animation

Reactive programming with flutter

  • Introduction to Streams
  • Working with streams
  • Handling stream data
  • Working with RxDart
  • Broadcast streams
  • Observable,PublishSubject,BehaviourSubject & ReplaySubject
  • Implementing BLOC with Streams

State management with flutter

  • Introduction & Why state management
  • State management approaches (Provider/Rivderpod/BLOC)
  • State management with Riverpod
  • Implementing a project in Riverpod
  • Provider & ScopedModel
  • State management with BLOC
  • Implementing a project in BLOC

Basic Testing

  • Types of tests
  • Unit testing
  • Integration Testing
  • Mocking HTTP requests

Custom Components & packages

  • Creating custom components
  • Creating basic packages

App publishing

  • Creating release builds
  • Code Obfuscation
  • Signing apps
  • Performance and other optimization
  • Creating developer accounts on App Store and play store
  • Publishing apps on play store
  • Publishing apps on app store

Misc

  • Camera, Custom Paint, Advanced Design, Sensors, Permission Handling , File IO,Push Notifications,Multipart form requests, Google Maps, Location, Swipe to refresh etc.

Bonus

  • Project structuring
  • Project management
  • Design patterns
  • Creating & publishing packages to pub.dev

What’s Next

  • Final Project
  • Internship & Jobs

Keep practicing, keep learning , and a better future awaits you.

Best wishes.

Projects

Here is the list of the projects which students could practise with. Each of the projects has different levels of complexity.

  • Todo List App with Cloud/Local storage
  • Calculator App (Math/Interest/BMI)
  • Converter App (Unit/Date/..)
  • NEPSE app
  • Hangman game
  • Quiz Game
  • Tic Tac Toe Game
  • News App (Wordpress/NewsAPI)
  • Movies App
  • Ecommerce App
  • Simple app with authentication
  • Crypto App
  • Covid-19 tracker
  • Music Player
  • Travel App
  • Paint App
  • Food delivery/ordering app
  • Solving design challenges (from dribbble/behance)
  • State management implementation

Prepared by : Sabin Khanal

--

--