Skip to content

This is a Flicker image show and search Flutter project based on MVVM + DI + Clean Architecture + GetX

Notifications You must be signed in to change notification settings

M4RZB4Ni/Flutter-MVVM-Clean-Architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Simple Flicker App - Flutter

Overview

This is a Flutter project developed as a technical test by Hamidreza Marzbani. The project focuses on Using Flicker's API to fetch recent images and search between Flicker's images.

Table of Contents

Architecture

The Project is Based on MVVM and Clean-Architecture with consideration of SOLID principles which Includes four Module:

  1. App: is responsible for infrastructure of the project include network handlers and exception handlers and base files.
  2. Data: The data layer serves as a bridge between the domain layer and the presentation layer, supplying data through implementations of data sources, repositories, and models.
  3. Domain: The domain layer encapsulates the core business logic and rules, acting as an intermediary between the data layer and presentation layer to ensure separation of concerns and maintain a clean, business-centric architecture.
  4. Presentation: The presentation layer manages user interfaces and interactions, focusing on the visual representation of data and user experience. It relies on the domain layer for business logic and the data layer for data retrieval, fostering a clear separation of concerns in the application architecture.

Technologies and Libraries Used

  • Flutter: Flutter is a UI toolkit that enables the creation of natively compiled applications for mobile, web, and desktop from a single codebase.

  • Cached Network Image: A Flutter library to load and cache network images.

  • Flutter Dotenv: A library for loading environment variables from a .env file.

  • Freezed and Freezed Annotation: A code generation package for unions/pattern-matching/copy/toString/equals/hashCode.

  • Flutter Screenutil: A Flutter plugin to provide a simple way to set the width and height of widgets based on screen size.

  • Get: A state management, Dependency Injection library for Flutter.

  • Internet Connection Checker: A library to check the internet connection status in a Flutter app.

  • Json Annotation and Json Serializable: Packages for converting Dart objects to and from JSON.

  • HTTP: Flutter main package for making HTTP requests.

  • Lottie: A Flutter package for smoothly displaying Lottie animations.

  • Xml2json: A package for converting XML to JSON in Flutter.

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/m4rzb4ni/communere.git
    

Running the Project

  1. Update the pub:

    flutter pub get
  2. Build models with Freezed:

    dart run build_runner build --delete-conflicting-outputs  
  3. Build the apk:

    flutter build apk
    

Author

Hamidreza Marzbani

About

This is a Flicker image show and search Flutter project based on MVVM + DI + Clean Architecture + GetX

Resources

Stars

Watchers

Forks