কোর্স আউটলাইন
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |