14 / 100

Mobile Application Development with Flutter

Introduction

Flutter Developer Learning Roadmap

Learn flutter development course syllabus 1
(Image is copied from another source, Not mine ?)

If you are planning to become a professional flutter app developer, here’s the perfect 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.

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. In the context of Nepal, the demand for flutter developers is also growing day by day.

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.

This course will teach Flutter and Dart from the ground up and no prior knowledge of either is required. Throughout this course, you will not only learn Flutter in theory, but you will also learn to build a complete app from start to finish. The app we build in this course will include all of the fundamentals as well as advanced features such as animations,data storage, state management and asynchronous programming.

Join this course if you,

  • Want to create a truly native apps for iOS & android,Mac OSX,Windows,Linux,Fuchsia with possibility of extending to other frameworks

  • Learn about the different features offered by flutter & dart

  • Want to become a professional mobile app developer in the shortest time possible.

Career Options for a Flutter Developer

  • Android & iOS App developer

  • Desktop application developer

  • Web application developer

  • Full Stack Developer

  • Freelance/Independent app developer

After completing a course you’ll be able to ,

  • Develop visually appealing, high performant, cross platform applications for android/iOS/web

  • Using github to manage your source code and collaborate with other developers

  • Implement best programming practices

  • Implementing user interaction,web connectivity and other interactive features to your apps

  • Releasing apps to the play store and app store

Requirements

This course is designed for both novice and experienced developers who want to learn mobile app development. Experienced iOS or Android developers who want to create cross-platform apps with flutter could also benefit from this course. Furthermore following prerequisite is expected,

  • Basic knowledge of any programming language

  • A capable windows/linux/mac computer

  • Passion for learning

Course Summary

This course covers fundamental to intermediate (and a few advanced) concepts in flutter app development. As the course is project-based, you will learn to develop real-world applications that incorporate both theoretical and practical concepts learned throughout this course. The course will teach you most of the things that you need to know to become a full-fledged flutter developer. It will take three months for the course to complete.

We will tailor the course to a student’s specific needs and abilities. This is a beginner-friendly course, but as mobile app development is a fairly complex topic, you should have some prior coding experience with other languages.

The syllabus is inspired from the best courses available on the internet with years of our experience developing applications in flutter.

Syllabus

  • Introduction to Mobile App Development

    In this chapter, the students 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

Students are strongly encouraged to continue their learning even after the completion of a course as learning is a never-ending process. 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