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