Flutter Advanced Clean Architecture With Mvvm
Tags: Mobile Development
Become a job ready flutter developer.
Last updated 2022-01-10 | 4.5
- Clean Architecture Design Pattern- MVVM - Model - View - View Model Pattern
- ViewModel Inputs and Outputs
What you'll learn
Clean Architecture Design Pattern
MVVM - Model - View - View Model Pattern
ViewModel Inputs and Outputs
Base ViewModel and Base UseCase
Application Layer - Dependency Injection
Routes Manager and Application class
Application Layer - Extensions and Shared Functions
Data Layer - Data Sources (Remote Data Source/ Local Data Source)
Data Layer - API Service Client (Same as Retorfit in Android)
Data Layer - Calling APIs (Remote Data Source)
Data Layer - Adding Logger Interceptor
Data Layer - Caching APIs responses (Local Data Source)
Data Layer - Json Serialization and Annotations
Data Layer - Repository Implementation
Data Layer - Mapper (Converting responses into Models)
Data Layer - Mapper (Using toDomain Concept)
Data Layer - Applying Null Safety
Data Layer - Creating Mock APIs (Stub APIs)
Domain Layer - Models
Domain Layer - Repository Interfaces
Domain Layer - UseCases
Domain Layer - Either Concepts (Left - Failure) / (Right - Success)
Domain Layer - Data Classes
Presentation Layer - UI (Splash - Onboarding - Login - Register - Forgot Password - Main - Details - Settings - Notification - Search))
Presentation Layer - State Renderer (Full Screen States - Popup States)
Presentation Layer - State Management (Stream Controller - RX Dart - Stream Builder)
Presentation Layer - Localisations (English - Arabic)
(RTL - LTR)
Presentation Layer - Assets Manager (Android and Ios Icons and Images sizes)
Presentation Layer - (Fonts - Styles - Themes - Strings - Values - Colors) Managers
Presentation Layer - Using Json Animations
Presentation Layer - Using SVG images
Using 18 Flutter Packages
Getting Device Info (Android - Ios)
Using Abstract classes
* Requirements
* Dart and Flutter Knowlege is a MUST* Install Android Studio or Visual Studio and have Flutter SDK ready
Description
- Clean Architecture Design Pattern
- MVVM - Model - View - View Model Pattern
- ViewModel Inputs and Outputs
- Base ViewModel and Base UseCase
- Application Layer - Dependency Injection, Routes Manager and Application class
- Application Layer - Extensions and Shared Functions
- Data Layer - Data Sources (Remote Data Source/ Local Data Source)
- Data Layer - API Service Client (Same as Retorfit in Android)
- Data Layer - Calling APIs (Remote Data Source)
- Data Layer - Adding Logger Interceptor
- Data Layer - Caching APIs responses (Local Data Source)
- Data Layer - Json Serialization and Annotations
- Data Layer - Repository Implementation
- Data Layer - Mapper (Converting responses into Models)
- Data Layer - Mapper (Using toDomain Concept)
- Data Layer - Applying Null Safety
- Data Layer - Creating Mock APIs (Stub APIs)
- Domain Layer - Models
- Domain Layer - Repository Interfaces
- Domain Layer - UseCases
- Domain Layer - Either Concepts (Left - Failure) / (Right - Success)
- Domain Layer - Data Classes
- Presentation Layer - UI (Splash - Onboarding - Login - Register - Forgot Password - Main - Details - Settings - Notification - Search))
- Presentation Layer - State Renderer (Full Screen States - Popup States)
- Presentation Layer - State Management (Stream Controller - RX Dart - Stream Builder)
- Presentation Layer - Localisations (English - Arabic), (RTL - LTR)
- Presentation Layer - Assets Manager (Android and Ios Icons and Images sizes)
- Presentation Layer - (Fonts - Styles - Themes - Strings - Values - Colors) Managers
- Presentation Layer - Using Json Animations
- Presentation Layer - Using SVG images
- Using 18 Flutter Packages
- Getting Device Info (Android - Ios)
- Using Abstract classes
Course content
25 sections • 181 lectures
About the Course Preview 01:07
Content of the Course Preview 04:21
Who Can Attend this Course? Preview 00:42
Lecture 4 - Creating Application Class Preview 13:36
https://github.com/minafarideleia/complete_advanced_flutter
Lecture 5 - Creating Colors Manager Preview 11:47
Lecture 6 - Creating Fonts Manager Preview 10:22
Lecture 7 - Creating Values Manager Preview 03:37
Lecture 8 - Creating Styles Manager Preview 10:05
Lecture 9 - Creating Theme Manager Preview 06:04
Lecture 10 - Adding Card Theme Preview 02:13
Lecture 11 - Adding App Bar Theme Preview 03:56
Lecture 12 - Adding Button Theme Preview 06:05
Lecture 13 - Adding Text Theme Preview 05:29
Lecture 14 - Adding Text Form Field Theme Preview 11:32
Lecture 15 - Start Adding Routes Manager Preview 09:24
Lecture 16 - Finish Adding Routes Manager Preview 07:47
Lecture 17 - Adding Strings Manager Preview 03:16
Lecture 18 - How to Select Image Sizes in Flutter? Preview 07:06
Lecture 19 - Best Way to Add Icons to Flutter Project Preview 06:27
Lecture 20 - Start Splash Screen Preview 08:23
Lecture 21 - Adding Timer to Splash Screen Preview 06:13
Lec-22 Change App Name,Laucher Icon and Remove White Screen at Start for Android Preview 15:06
Lec-23 Change App Name,Laucher Icon and Remove White Screen at Start for Ios #1 Preview 08:26
Lec-24 Change App Name,Laucher Icon and Remove White Screen at Start for Ios #2 Preview 05:18
Lecture 25 - Adding Assets for Onboarding Screen Preview 08:47
Lecture 26 - Implementation Onboarding Screen Part1 Preview 11:14
Lecture 27- Implementation Onboarding Screen Part2 Preview 08:14
Lecture 28 - Implementation of Onboarding Screen Part3 Preview 09:22
Lecture 29 - Implementation of Onboarding Screen Part4 Preview 15:16
Lecture 30 - Implementation of Onboarding Screen Part5 Preview 10:10
Lecture 31 - Implementation Onboarding Screen Part6 Preview 03:11
Lecture 32 - Surprise Preview 01:44
Lecture 33 - What is MVVM? Preview 04:56
Lecture 34 - Creating Base ViewModel Preview 05:03
Lecture 35 - Creating Onboarding Screen ViewModel Preview 09:24
Lecture 36 - What is Stream Controller? Preview 03:01
Lecture 37 - Adding Stream Controller to Onboarding Viewmodel Preview 07:00
Lecture 38 - Onboarding Viewmodel Logic Implemenation Preview 11:41
Lecture 39: Continue Onboarding Viewmodel Logic Implemenation Preview 03:25
Lecture 40 - Binding Onboarding Viewmodel to View Preview 05:18
Lecture 41 - How to Recive Data in View From Viewmodel? Preview 11:53
Lecture 42 - What is Clean Architecture? Preview 04:52
Lecture 43 - Creating Mock APIs Preview 09:13
Lecture 44 - Data Layer - Adding Dependencies for network layer Preview 04:51
Lecture 45 - Data Layer - Adding APIs Responses Preview 09:54
Lecture 46 - Data Layer - Json Serialization Preview 12:57
Lecture 47 - Data Layer - Add API Service Client (Retrofit) Preview 09:12
Lecture 48 - Domain Layer - Creating Models Preview 04:19
Lecture 49 - Application Layer - Creating Extensions Functions Preview 04:38
Lecture 50 - Data Layer - Creating Mappers and Applying Null Safety Preview 11:49
Lecture 51 - Either Conecpt Preview 02:28
Lecture 52 - Domain Layer - Adding Repository, Request and Failure Preview 07:15
Lecture 53 - Data Layer - Remote Data Source Preview 06:46
Lecture 54 - Data Layer - Adding Netowrk Data Checker Preview 06:14
Lecture 55 - Data Layer - Adding Repository Implementer Preview 12:35
Lecture 56 - Data Layer - Adding Data Source Enum Preview 05:22
Lecture 57 - Data Layer - Adding Responses Codes Preview 06:26
Lecture 58 - Data Layer - Adding Responses Messages Preview 03:57
Lecture 59 - Data layer - Adding Extension on Data Sources Preview 06:06
Lecture 60 - Data Layer - Adding Error Handler Class Preview 14:19
Lecture 61 - Data Layer - Applying ErrorHandler on Repository Implementer Preview 07:10
Lecture 62 - Data Layer - Adding Dio Factory Preview 08:50
Lecture 63 - Data Layer - Adding Dio Logger Interceptor Preview 05:15
Lecture 64 - Presentation Layer - Adding Language Manager Preview 04:08
Lecture 65 - Application Layer - Adding Application Preferences Preview 06:41
Lecture 66 - Update Dio Factory with App Preferences Preview 02:16
Lecture 67 - Domain Layer - Adding Base UseCase Preview 04:37
Lecture 68 - Domain Layer - Adding Login UseCase Preview 04:25
Lecture 69 - Domain Layer - Getting Device Info Part 1 Preview 06:34
Lecture 70 - Domain Layer - Getting Device Info Part 2 Preview 03:56
Lecture 71 - Adding Login Viewmodel Preview 09:17
Lecture 72 - Adding Streams to Login ViewModel Preview 07:30
Lecture 73 - Adding Data Classes to Login ViewModel Preview 09:02
Lecture 74 - Usage of Data Classes Preview 01:56
Lecture 75 - Adding Login UseCase to Login ViewModel Preview 05:18
Lecture 76 - Binding Login ViewModel to Login View Preview 05:55
Lecture 77 - Login View UI Preview 13:22
Lecture 78 - Login View UI Continue Preview 07:40
Lecture 79 - Finalising Login UI Preview 03:43
Lecture 80 - Adding Stream Controller For Login Button Preview 10:35
Lecture 81 - Testing Login UI Implementation Preview 05:14
Lecture 82 - Adding Forgot Pasword and Register Texts Preview 07:00
Lecture 83 - Adding Dependency Injection App Module Preview 10:52
Lecture 84 - Add dependency injection Instances Preview 10:13
Lecture 85 - Add Dependency Injection Login Module Preview 05:59
Lecture 86 - How to Use Instance of Dependency Injection? Preview 02:40
Lecture 87 - Make App Makes HTTP Request (NOT only HTTPs) Preview 03:51
Lecture 88 - Testing Login API Preview 07:09
Lecture 89 - Showing Popup State Renderer Preview 02:04
Lecture 90 - Showing Full Screen State Renderer Preview 02:59
Lecture 91 - Adding State Renderer Implementation Preview 12:29
Lecture 92 - Adding State Renderer Implementation Part 2 Preview 05:51
Lecture 93 - Adding State Renderer Implementation Part 3 Preview 08:05
Lecture 94 - Adding State Renderer Implementation Part 4 Preview 06:25
Lecture 95 - Adding State Renderer Implementation Part 5 Preview 07:50
Lecture 96 - Adding State Renderer Implementation Part 6 Preview 05:12
Lecture 97 - Adding State Renderer Implementation Part 7 Preview 07:04
Lecture 98 - Applying State Renderer - Loading State Preview 05:29
Lecture 99 - Applying State Renderer - Error State - Empty State - Content State Preview 04:31
Lecture 100 - Adding Extension on State Renderer implementer Preview 05:00
Lecture 101 -Adding Implementation for Loading State Case Preview 08:41
Lect 102 Adding Implementation for (Error State-Empty State-Content State) Cases Preview 02:58
Lecture 103 - Handling showing many popup dialogs Preview 05:26
Lecture 104 - Adding Input Stream Controller Inside Base ViewModel Preview 07:54
Lecture 105 - Updating Login View with Flow State Controller Preview 06:05
Lecture 106 - Updating Login ViewModel with Flow State Controller Preview 06:29
Lecture 107 - Testing State Renderer Implementation Preview 02:19
Lecture 108 - Updating Login API in Mock Stub Preview 02:21
Lecture 109 - Handling Login Success Result to Go to Main Screen Preview 06:57
Lecture 110 - Updating Routes Navigation with App Prefernces Preview 11:32
Lecture 111 -Testing Navigation from Splash Screen Preview 01:50
Lecture 112 -Assignment #1 Requirement and Creating Mock API
you have to add the implementation of forgot password screen
Lecture 112 -Assignment #1 Requirement and Creating Mock API Preview 04:21
Lecture 113 -Assignment #1 Solution Keys Preview 05:29
Lecture 114 -Getting Assigment #1 source code from githup Preview 03:55
Pull request URL:
https://github.com/minafarideleia/complete_advanced_flutter/pull/100/files
Branch Source Code:
https://github.com/minafarideleia/complete_advanced_flutter/tree/Lecture_113_Assignment_%231_Forgot_password_Solution_Keys