Course Code: fdwdartbesp
Duration: 35 hours
Prerequisites:
  • Experience with Android and iOS mobile apps development

Audience

  • Developers
  • Programmers
Overview:

Flutter is an open source UI toolkit made by Google for building mobile applications for Android, iOS, web, and other platforms from a single codebase. As a cross-platform framework, it reduces the cost and complexity of creating, designing, and maintaining the applications.

This instructor-led, live training (online or onsite) is aimed at developers who wish to use Flutter to create and build high-quality mobile apps for Android, iOS, and other platforms from a common codebase.

By the end of this training, participants will be able to:

  • Set up the necessary development environment to start creating Flutter apps.
  • Use Dart programming language to develop the code for building the apps.
  • Use Flutter widgets to design and create aesthetically pleasing and easy-to-use UI.
  • Deploy and test apps on different platforms (mobile, desktop, web, etc.).

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.
Course Outline:

Introduction

  • Flutter vs other cross-platform frameworks
  • Overview of Flutter features and architecture

Getting Started

  • Installing Flutter
  • Setting up the code editor (Visual Studio Code)
  • Understanding Dart functions and variables
  • Implementing abstraction, encapsulation, inheritance, polymorphism
  • Understanding Dart variables and data types
  • Understanding Future and Stream
  • Unit Tests and Mocks
  • Calling native methods
  • Clean architecture
  • Flavors
  • Dart Analyzer and Dart Metrics
  • Dependency Injection

Creating Flutter Apps From Scratch - Focus on the web

  • Creating a Flutter project
  • Building app layouts with Material components
  • Adding assets and images
  • Internationalization

Running and Testing Apps

  • Deploying apps to Azure WebApp (account provisioning needed from client)
     
  • Deploying apps to Android devices
  • Using Hot Reload and Hot Restart tools
     
  • Using Widgets
  • Stateful vs Stateless widgets
  • Setting up the project
  • Creating a Stateless widget
  • Creating a Stateful widget
  • Create an animations

Routing and Navigation

  • Using BuildRunner package
  • Using AutoRoute package
  • Create transitions
  • Navigation Stack

Databases and other Storages

  • Introducing to Hive
  • Introducing to SharedPreferences
  • Using SQL database

Using Rest Api, Parsing JSONs

  • Introducing to http package
  • Introducing to Dio package
  • parsing JSONs
  • Request and Responses

Managing Flutter State

  • Introducing the BLoC package
  • BLoC implementation
  • testing BLoC

Programming Tips and Best Practices

Troubleshooting

Summary and Conclusion