GitHub repository: Ahmedabdelalem61/flutter-mvvm-arch
Primary language: Dart
Created: 2022-03-28T12:27:44Z
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