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.
The Project is Based on MVVM and Clean-Architecture with consideration of SOLID principles which Includes four Module:
- App: is responsible for infrastructure of the project include network handlers and exception handlers and base files.
- 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.
- 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.
- 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.
-
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.
- Ensure that you have Flutter and Dart installed on your machine. Flutter Installation Guide
-
Clone the repository:
git clone https://github.com/m4rzb4ni/communere.git
-
Update the pub:
flutter pub get
-
Build models with Freezed:
dart run build_runner build --delete-conflicting-outputs
-
Build the apk:
flutter build apk
Hamidreza Marzbani
- LinkedIn: https://www.linkedin.com/in/marzbani/
- Email: [email protected]