This project was created as a Flutter test task. It includes state management, dependency injection, routing, localization, and various other technologies to build a structured and scalable Flutter application.
Created by Vasyl Horodetskyi.
flutter_dotenv
– Manages environment variables using a.env
file.
get_it
– A simple and fast service locator for managing dependencies.
flutter_bloc
– Implements the BLoC pattern for structured state management.equatable
– Helps in comparing Dart objects efficiently, reducing boilerplate code.
hive
– A lightweight and fast NoSQL database for local storage.hive_flutter
– Flutter integration for Hive storage.
go_router
– A declarative routing package for managing navigation efficiently.
connectivity_plus
– Detects network status changes (online/offline mode).
flutter_translate
– A flexible localization package for supporting multiple languages.
google_fonts
– Allows easy integration of Google Fonts.flutter_svg
– Supports rendering SVG images in Flutter.auto_size_text
– Adjusts text size dynamically to fit within its constraints.flutter_native_splash
– Adds a native splash screen to the app.
This project uses .env
file for managing environment variables.
You can configure the mock data source type via the .env
file:
# Available options: 'assets' or 'generator'
MOCK_TYPE=generator
assets
– Loads mock data from pre-defined assets.generator
– Uses a data generator for mock content.
git clone https://github.com/maestrovsmaster/flutter-test-task.git
cd flutter-test-task
flutter pub get
flutter run
Ensure you have CocoaPods installed:
sudo gem install cocoapods
Navigate to the iOS directory and install dependencies:
cd ios
pod install
cd ..
Run the app:
flutter run
To create a release build:
Android
flutter build apk
iOS
flutter build ios
This project is for testing purposes only.
The list of third-party packages, additional features, and UI enhancements can be found in tech_details.md
.
A breakdown of the time spent is documented in timing.md
.