কোর্স আউটলাইন

Background and Installation (8h/2d)
Day Topic Class Duration Teaching Method
Day 1 Introduction 4hr Lecture
What is Flutter? Lecture
Understanding the Flutter Architecture Lecture
How Flutter & Dart Code Gets Compiled to Native Apps Lecture
Understanding Flutter Versions Lecture
Flutter macOS Setup Lecture and Lab Exercise
macOS Development Environment Lecture and Lab Exercise
Day 2 Flutter Windows Setup 4hr Lecture and Lab Exercise
Windows Development Environment Lecture and Lab Exercise
Flutter & Material Design Lecture and Lab Exercise
Flutter Alternatives Lecture and Lab Exercise
Introducing Widget(16h/4d)
Day Topic Class Duration Teaching Method
Day 3 Introduction 4hr Lecture
Widget Tree & Element Tree - What, Why and How? Lecture and Lab Exercise
How Flutter Rebuilds & Repaints the Screen Lecture and Lab Exercise
How Flutter Executes build() Lecture and Lab Exercise
Day 4 Widget and their role in a flutter app 4hr Lecture and Lab Exercise
The Material App and Scaffold widget Lecture and Lab Exercise
AppBar Lecture and Lab Exercise
Day 5 Uses of Buttons 4hr Lecture and Lab Exercise
More widget – Text styling and decoration Lecture and Lab Exercise
Animations Lecture and Lab Exercise
Day 6 Advanced UI -slivers, gestures, splash screen 4hr Lecture and Lab Exercise
Hot reload and Hot restart, the tricks of the trade Lecture and Lab Exercise
Recreating the default flutter app (UI only) Lecture and Lab Exercise
Running Apps on Different Devices & Debugging Apps (8h/2d)
Day Topic Class Duration Teaching Method
Day 7 Introduction 4hr Lecture
Running the App on a Real Android Device Lecture and Lab Exercise
Running the App on an Android Emulator Lecture and Lab Exercise
Running the App on a Real iOS Device Lecture and Lab Exercise
Running the App on an iOS Emulator Lecture and Lab Exercise
Day 8 Working with the Emulators / Using the Emulators 4hr Lecture and Lab Exercise
Understanding Error Messages & Fixing Errors Lecture and Lab Exercise
Using the Debugger Lecture and Lab Exercise
Getting Started with the Dart DevTools Lecture and Lab Exercise
Understanding the Repaint Rainbow Lecture and Lab Exercise
Wrapping up the Dart DevTools Lecture and Lab Exercise
Common Widget in Flutter (12h/3d)
Day Topic Class Duration Teaching Method
Day 9 Containers and their role 4hr Lecture and Lab Exercise
Importing images from network and assets Lecture and Lab Exercise
Adding icons to widgets Lecture and Lab Exercise
Day 10 Understanding Row and Column 4hr Lecture and Lab Exercise
ListView and ListTile Lecture and Lab Exercise
Day 11 Building views using ListView.builder 4hr Lecture and Lab Exercise
Inkwell and its importance Lecture and Lab Exercise
Stateless and Stateful Widgets- The Concept (16/4d)
Day Topic Class Duration Teaching Method
Day 12 Stateless vs Stateful widgets 4hr Lecture and Lab Exercise
Day 13 Define a ‘State’ 4hr Lecture and Lab Exercise
Day 14 The setState Method 4hr Lecture and Lab Exercise
Day 15 Returning to the default flutter app 4hr Lecture and Lab Exercise
Navigating through Navigation (12h/3d)
Day Topic Class Duration Teaching Method
Day 16 Navigators and routes 4hr Lecture and Lab Exercise
Applying push() using MaterialPageRoute Lecture and Lab Exercise
Day 17 Applying pop() 4hr Lecture and Lab Exercise
Day 18 Declaring parameter-less routes (pushNamed()) in MaterialApp widget 4hr Lecture and Lab Exercise
Handling User Input. (12h/3d)
Day Topic Class Duration Teaching Method
Day 19 Using TestField 4hr Lecture and Lab Exercise
Day 20 Handling changes to a TextField 4hr Lecture and Lab Exercise
Day 21 Pass retrieved values using Navigator 4hr Lecture and Lab Exercise
User Interface (8h/2d)
Day Topic Class Duration Teaching Method
Day 22 Applying ThemeData 4hr Lecture and Lab Exercise
Day 23 The Basic Screen layout 4hr Lecture and Lab Exercise
Applying custom Font Lecture and Lab Exercise
Responsive & Adaptive User Interfaces and Apps (12h/3d)
Day Topic Class Duration Teaching Method
Day 24 Introduction 4hr Lecture
What does "Responsive" and "Adaptive" Mean? Lecture
Calculating Sizes Dynamically Lecture and Lab Exercise
Day 25 Responsiveness 4hr Lecture and Lab Exercise
Controlling the Device Orientation Lecture and Lab Exercise
Rendering Alternative Landscape Content Lecture and Lab Exercise
Finishing Landscape Mode Lecture and Lab Exercise
Day 26 Showing Different Content Based on Device Orientation 4hr Lecture and Lab Exercise
Respecting Softkeyboard, device size, MediaQuery Device Platform, OS etc Lecture and Lab Exercise
Creating Custom Adaptive Widgets Lecture and Lab Exercise
Adaptive Widgets Lecture and Lab Exercise
Wrap up Lecture and Lab Exercise
Asynchronous Functions(12h/3d)
Day Topic Class Duration Teaching Method
Day 27-28 The ‘Future’ function 6hr Lecture and Lab Exercise
Day 28-29 ‘async’ and ‘await’ 6hr Lecture and Lab Exercise
Working with Remote Data (12h/3d)
Day Topic Class Duration Teaching Method
Day 30 The ‘http’ packages 4hr Lecture and Lab Exercise
Day 31 Model Class and JSON parsing 4hr Lecture and Lab Exercise
Day 32 Displaying remote Data (News API) 4hr Lecture and Lab Exercise
Using 3rd Party Packages (12h/3d)
Day Topic Class Duration Teaching Method
Day 33-34 The ‘url_launcher’ package 6hr Lecture and Lab Exercise
Day 34-35 Adding onTap() to NEWS API 6hr Lecture and Lab Exercise
Other Useful Widgets (8h/2d)
Day Topic Class Duration Teaching Method
Day 36 GridView 4hr Lecture and Lab Exercise
The’HERO’ Animation Lecture and Lab Exercise
Day 37 Stack 4hr Lecture and Lab Exercise
‘AlertDialoug’ with buttons Lecture and Lab Exercise
Practical session-1 [eCommerce APP]-State Management
Day Topic Class Duration Teaching Method
Day 38 Introduction 4hr Practical
Planning the App Practical
Defining a Data Model Practical
Working on the "Products" Grid & Item Widgets Practical
Styling & Theming the App Practical
Adding Navigation to the App Practical
Why State Management? And what is "State" and "State Management"? Practical
Understanding the "Provider" Package & Approach Practical
Day 39 Working with Providers & Listeners 4hr Practical
Inheritance ("extends") vs Mixins ("with") Practical
Providing non-Objects Practical
Listening in Different Places & Ways Practical
Using Nested Models & Providers Practical
Exploring Alternative Provider Syntaxes Practical
Using "Consumer" instead of "Provider.of" Practical
Local State vs App-wide State Practical
Day 40 Adding Shopping Cart Data 4hr Practical
Working with Multiple Providers Practical
Connecting the Cart Provider Practical
Working on the Shopping Cart & Displaying a Total Practical
Displaying a List of Cart Items Practical
Making Cart Items Dismissible Practical
Adding Product Detail Data Practical
Providing an Orders Object Practical
Adding Orders Practical
Adding an Orders Screen Practical
Using a Side Drawer Practical
Making Orders Expandable & Stateful Widgets vs Providers Practical
Wrap Up Practical
Practical session-1 [e Commerce APP]-Working with User Input & Forms
Day Topic Class Duration Teaching Method
Day 41 Introduction 4hr Practical
Snackbars & Undoing "Add to Cart" Actions Practical
Showing Alert Dialogs Practical
Adding a "Manage Products" Page Practical
"Edit Product" Screen & A Problem Practical
Using Forms & Working with Form Inputs Practical
ListView or Column Practical
Managing Form Input Focus Practical
Day 42 Multiline Inputs & Disposing Objects 4hr Practical
Image Input & Image Preview Practical
Submitting Forms Practical
Validating User Input Practical
Adding Validation to All Inputs Practical
Saving New Products Practical
Time to Update Products! Practical
Allowing Users to Delete Products Practical
Wrap Up Practical
Practical session-1 [eCommerce APP]- Sending Http Requests
Day Topic Class Duration Teaching Method
Day 43 Introduction 4hr Practical
On-Device vs Web Storage Practical
How to Connect Flutter to a Database Practical
Preparing Our Backend Practical
How To Send Http Requests Practical
Sending POST Requests Practical
Working with Futures in Dart Practical
Futures & Async Code Practical
Http Requests & Futures Practical
Showing a Loading Indicator Practical
Handling Errors Gracefully Practical
Day 44 Working with "async" & "await" 4hr Practical
Fetching Data, initState & "of(context)" Practical
How to Transform Fetched Data Practical
Implementing Pull-to-Refresh Practical
Updating Data via PATCH Requests Practical
Utilizing Optimistic Updating Practical
Day 45 Creating Custom Exceptions & More Error Handling 4hr Practical
Updating the "Favorite" Status Optimistically Practical
Storing Orders in the Web Fetching Orders & Fixing an Issue Practical
Using the "FutureBuilder" Widget & Improving the Code Practical
Wrap Up Practical
Practical session-1 [eCommerce APP]- Adding User Authentication
Day Topic Class Duration Teaching Method
Day 46 Introduction 4hr Practical
How Authentication Works Practical
Prepare Backend Practical
Adding the Auth Screen Practical
Adding User Signup Practical
Allowing Users to Log In Practical
Handling Authentication Errors Practical
Managing the Auth Token Locally (in the App) Practical
Day 47 Using the "ProxyProvider" and Attaching the Token to Outgoing Http Requests 4hr Practical
Adding the Token to All Requests Practical
Connecting the "Favorite" Status to Users Practical
Attaching Products to Users & Filtering By Creator Practical
Attaching Orders to Users Practical
Adding a Logout Functionality Practical
Automatically Logging Users Out (After Some Time) Practical
Automatically Logging Users In Practical
Wrap Up Practical
Practical session-1 [eCommerce APP]- Adding Animations
Day Topic Class Duration Teaching Method
Day 48 Introduction 4hr Practical
Animations From Scratch (Completely Manually Controlled) Practical
Using the "AnimatedBuilder" Widget Practical
Working with the "AnimatedContainer" Practical
More Built-in Animation & Transition Widgets Practical
Day 49 Fading Loaded Images In (And Showing a Placeholder) 4hr Practical
Adding a "Hero" Transition Practical
Working with Slivers Practical
Animating Order Boxes Practical
Implementing Custom Route Transitions Practical
Wrap Up Practical
Publish App to Market Place
Day Topic Class Duration Teaching Method
Day 50 Android app publishing mechanism 4hr Lecture and Lab Exercise
iOS app publishing mechanism Lecture and Lab Exercise