Manga app with a feature-first layered clean architecture, generic caching, lazy loading, debouncing, throttling, and adaptive theming. The UI of the app is intentionally kept simple, as my primary objective was to showcase the implementation of clean architecture, generic caching, lazy loading, debouncing, and throttling.
- Popular Mangas List: The app displays a list of popular mangas. This list is loaded lazily to optimize performance and reduce initial loading times. Additionally, throttling is implemented to minimize consecutive API calls.
- View Details: Access detailed information about each manga.
- Favorites: Add and store favorite mangas locally using HiveDB.
- Search: Find any manga with the search feature. Debouncing technique is used to prevent unnecessary API calls.
- Adaptive Theme: The app automatically adjusts its theme based on the device's settings and remembers user preferences.
- "app" folder holds files specific to this particular application.
- "core" folder contains application-agnostic code that can be reused in other projects.
- "feature" folder represents the app's feature set. Each feature is divided into subfolders for data, domain, and presentation.
- State Management
- Caching
- Networking
- Routing
- Dependency Injection
- JsonParsing
- Localization
- Functional Programming
- Logging
- Testing
git clone https://github.com/cem256/manga_clean_arch
cd manga_clean_arch
flutter pub get
sh scripst/build_runner.sh
sh scripts/localization.sh