Introduction
About the Course
Content of the Course
Who Can Attend this Course?
Presentation Layer – Resources Manager
Lecture 4 – Creating Application Class
Lecture 5 – Creating Colors Manager
Lecture 6 – Creating Fonts Manager
Lecture 7 – Creating Values Manager
Lecture 8 – Creating Styles Manager
Lecture 9 – Creating Theme Manager
Lecture 10 – Adding Card Theme
Lecture 11 – Adding App Bar Theme
Lecture 12 – Adding Button Theme
Lecture 13 – Adding Text Theme
Lecture 14 – Adding Text Form Field Theme
Lecture 15 – Start Adding Routes Manager
Lecture 16 – Finish Adding Routes Manager
Lecture 17 – Adding Strings Manager
Lecture 18 – How to Select Image Sizes in Flutter?
Lecture 19 – Best Way to Add Icons to Flutter Project
Presentation Layer – Splash Screen
Lecture 20 – Start Splash Screen
Lecture 21 – Adding Timer to Splash Screen
Lec-22 Change App Name,Laucher Icon and Remove White Screen at Start for Android
Lec-23 Change App Name,Laucher Icon and Remove White Screen at Start for Ios #1
Lec-24 Change App Name,Laucher Icon and Remove White Screen at Start for Ios #2
Presentation Layer – OnBoarding Screen
Lecture 25 – Adding Assets for Onboarding Screen
Lecture 26 – Implementation Onboarding Screen Part1
Lecture 27- Implementation Onboarding Screen Part2
Lecture 28 – Implementation of Onboarding Screen Part3
Lecture 29 – Implementation of Onboarding Screen Part4
Lecture 30 – Implementation of Onboarding Screen Part5
Lecture 31 – Implementation Onboarding Screen Part6
Lecture 32 – Surprise
Presentation Layer – MVVM
Lecture 33 – What is MVVM?
Lecture 34 – Creating Base ViewModel
Lecture 35 – Creating Onboarding Screen ViewModel
Lecture 36 – What is Stream Controller?
Lecture 37 – Adding Stream Controller to Onboarding Viewmodel
Lecture 38 – Onboarding Viewmodel Logic Implemenation
Lecture 39: Continue Onboarding Viewmodel Logic Implemenation
Lecture 40 – Binding Onboarding Viewmodel to View
Lecture 41 – How to Recive Data in View From Viewmodel?
Data / Domain layers – Clean Architecture Design Pattern
Lecture 42 – What is Clean Architecture?
Lecture 43 – Creating Mock APIs
Lecture 44 – Data Layer – Adding Dependencies for network layer
Lecture 45 – Data Layer – Adding APIs Responses
Lecture 46 – Data Layer – Json Serialization
Lecture 47 – Data Layer – Add API Service Client (Retrofit)
Lecture 48 – Domain Layer – Creating Models
Lecture 49 – Application Layer – Creating Extensions Functions
Lecture 50 – Data Layer – Creating Mappers and Applying Null Safety
Lecture 51 – Either Conecpt
Lecture 52 – Domain Layer – Adding Repository, Request and Failure
Lecture 53 – Data Layer – Remote Data Source
Lecture 54 – Data Layer – Adding Netowrk Data Checker
Lecture 55 – Data Layer – Adding Repository Implementer
Lecture 56 – Data Layer – Adding Data Source Enum
Lecture 57 – Data Layer – Adding Responses Codes
Lecture 58 – Data Layer – Adding Responses Messages
Lecture 59 – Data layer – Adding Extension on Data Sources
Lecture 60 – Data Layer – Adding Error Handler Class
Lecture 61 – Data Layer – Applying ErrorHandler on Repository Implementer
Lecture 62 – Data Layer – Adding Dio Factory
Lecture 63 – Data Layer – Adding Dio Logger Interceptor
Lecture 64 – Presentation Layer – Adding Language Manager
Lecture 65 – Application Layer – Adding Application Preferences
Lecture 66 – Update Dio Factory with App Preferences
Lecture 67 – Domain Layer – Adding Base UseCase
Lecture 68 – Domain Layer – Adding Login UseCase
Lecture 69 – Domain Layer – Getting Device Info Part 1
Lecture 70 – Domain Layer – Getting Device Info Part 2
Presentation Layer – Login Flow
Lecture 71 – Adding Login Viewmodel
Lecture 72 – Adding Streams to Login ViewModel
Lecture 73 – Adding Data Classes to Login ViewModel
Lecture 74 – Usage of Data Classes
Lecture 75 – Adding Login UseCase to Login ViewModel
Lecture 76 – Binding Login ViewModel to Login View
Lecture 77 – Login View UI
Lecture 78 – Login View UI Continue
Lecture 79 – Finalising Login UI
Lecture 80 – Adding Stream Controller For Login Button
Lecture 81 – Testing Login UI Implementation
Lecture 82 – Adding Forgot Pasword and Register Texts
Application Layer – Dependency Injection
Lecture 83 – Adding Dependency Injection App Module
Lecture 84 – Add dependency injection Instances
Lecture 85 – Add Dependency Injection Login Module
Lecture 86 – How to Use Instance of Dependency Injection?
Presentation Layer – State Renderer
Lecture 87 – Make App Makes HTTP Request (NOT only HTTPs)
Lecture 88 – Testing Login API
Lecture 89 – Showing Popup State Renderer
Lecture 90 – Showing Full Screen State Renderer
Lecture 91 – Adding State Renderer Implementation
Lecture 92 – Adding State Renderer Implementation Part 2
Lecture 93 – Adding State Renderer Implementation Part 3
Lecture 94 – Adding State Renderer Implementation Part 4
Lecture 95 – Adding State Renderer Implementation Part 5
Lecture 96 – Adding State Renderer Implementation Part 6
Lecture 97 – Adding State Renderer Implementation Part 7
Lecture 98 – Applying State Renderer – Loading State
Lecture 99 – Applying State Renderer – Error State – Empty State – Content State
Lecture 100 – Adding Extension on State Renderer implementer
Lecture 101 -Adding Implementation for Loading State Case
Lect 102 Adding Implementation for (Error State-Empty State-Content State) Cases
Lecture 103 – Handling showing many popup dialogs
Lecture 104 – Adding Input Stream Controller Inside Base ViewModel
Lecture 105 – Updating Login View with Flow State Controller
Lecture 106 – Updating Login ViewModel with Flow State Controller
Lecture 107 – Testing State Renderer Implementation
Lecture 108 – Updating Login API in Mock Stub
Presentation Layer – Handling Pre Login Flow
Lecture 109 – Handling Login Success Result to Go to Main Screen
Lecture 110 – Updating Routes Navigation with App Prefernces
Lecture 111 -Testing Navigation from Splash Screen
Assignment #1 – Forgot Password Flow
Lecture 112 -Assignment #1 Requirement and Creating Mock API
Lecture 113 -Assignment #1 Solution Keys
Lecture 114 -Getting Assigment #1 source code from githup
Assignment #2 – Adding Success State Renderer
Lecture 115 -Assignment Requirement
Lecture 116 -Assignment #2 Solution Keys
Lecture 117 -Creating Pull Request for Assigment #2 Solution
Data / Domain Layers – Registration Flow
Lecture 118 – Createing Mock API for Register Screen
Lecture 119 – Adding Register API Interface and Repository
Lec-120 Add Register API Call in Repository Impl, Remote Data Source and Usecase
Presentation Layer – MVVM – Register Flow
Lecture 121 – Adding Stream Controllers to Register ViewModel
Lecture 122- Adding Register ViewModel Input and Output
Lecture 123 – Implementations of Register ViewModel Inputs and Outputs
Lecture 124 – Adding Streams Implementations in Register ViewModel
Lecture 125 – Adding Register View Object Data Class
Updating Register View Object Data Class
Lecture 127 – Applying Validation to Register ViewModel
Lecture 128 – Add Register API Implementation Inside ViewModel
Lecture 129 -Binding Register ViewModel to View and Adding Dependencey Injection
Lecture 130- Adding Stream Builders Inside Register View
Lecture 131- Adding UI for Register Screen
Lecture 132- Adding UI for Register Screen Part 2
Lecture 133- Adding UI for Register Screen Part 3
Lecture 134- Adding UI for Register Screen Part 4
Lecture 135- Adding UI for Register Screen Part 5
Lecture 136- Adding UI for Register Screen Part 6
Lecture 137- Fixing UI Implementation for Register Screen
Lecture 138- Testing Register Flow
Lecture 139- Finalising Register Flow
Lecture 140- Navigate to Main Screen
Presentation Layer – Main Flow
Lecture 141- Adding Pages Inside Main View
Lecture 142- Finalising Adding Pages inside Main View
Lecture 143 – Testing Pages Inside Main View
Data / Domain Layers – Home Flow
Lecture 144 – Creating Mock API for Home Screen
Lecture 145 – Adding Home API Responses
Lecture 146 – Adding Home API Models
Lecture 147 – Adding Mappers for Home APIs
Lecture 148 – Adding Mappers for Home API Continue
Lecture 149 – Adding Home API Inside App Service Client
Lecture 150 – Updating Remote Data Source and Repository with Home API
Lecture 151 – Adding Home UseCase
Presentation Layer – MVVM – Home Flow
Lecture 152 – Adding Home ViewModel and Rxdart
Lecture 153 – Add Home ViewModel Inputs and Outputs
Lecture 154 – Adding Implementation of Home API in ViewModel
Lec 155 add Home View, Adding Dependency Injection and Binding View to ViewModel
Lecture 156 – Home View UI
Lecture 157 – Adding Banner Carousel Widget
Lecture 158 – Adding Services Widget
Lecture 159 – Adding Stores Widget
Lecture 160 – Testing Home Implementation and Fixing Issues
Assignment #3 – Refactor Home
Lecture 161 – Assignment Requirement
Lecture 162 – Assignment Solution Keys
Data Layer – Caching (Local Data Source)
Lecture 163 – Start Caching Implementation
Lecture 164 – Adding Retrieving Caching Data from Local Data Source
Lecture 165 – Updating Repository Implementer With Local Data Source
Lecture 166 – Testing Caching on Home Page
Assignment #4 – Store Details Flow
Lecture 167 – Assignment Requirement – Creating Mock API
Lecture 168 – Assignment Solution Keys
Presentation Layer – Setting Screen
Lecture 169 – Adding UI of Settings Screen
Lecture 170 – Finalising Setting Screen
Presentation Layer – Localisation
Lecture 171 – Start Implementing Localisation
Lecture 172 – Updating Application Strings
Lecture 173 – Continue Updating Application Strings
Lecture 174 – Updating Application Preferences with langauge changes
Lecture 175 – Update Main function with Localisation
Lecture 176 – Update Application Class and Settings Screen with localisation
Lecture 177 – Testing Localisation
Source Code
Lecture 178 – How to get source code from github?
Bonus!
Lecture 179 – Get More Experience