A Flutter clean-architecture project that uses Riverpod and Retrofit with best practices. Includes e2e integration tests, widget tests and unit tests. This project usage rick morty opensource api.
Tools | Link |
---|---|
🤖 State Management | flutter_riverpod |
💚 Service Locator | get_it |
🏛 Navigation | Flutter Navigator |
📄 Serialization | json_serializable |
🚀 Test | riverpod_test flutter_test |
🖊️ Mock | mockito |
🌐 Networking | Retrofit(Dio) |
💾 Database | Floor |
🔡 Localization | intl |
The Rick & Morty Flutter app adheres to Clean Architecture principles. The project architecture has been inspired from Praxis Flutter.
Android | iOS | macOS | Windows | Linux | Web |
---|---|---|---|---|---|
✅ | ✅ | 🚧 | 🚧 | 🚧 | ❌ |
OnBoarding | Login | Characters list |
---|---|---|
Characters Info | Favourites list | Settings |
---|---|---|
-
Execute the following commands to establish a Git hook that will automatically format the code, analyze it, and run tests.
git config core.hooksPath .githooks/
: point git hooks path for projectchmod ug+x .githooks/*
: update permission for hooks file
To generate code for freez, json serialization and mockito
flutter packages pub run build_runner build --delete-conflicting-outputs
Integration tests
flutter test integration_tests/ui_tests.dart
Unit tests
flutter test
- Support it by clicking the ⭐️ button on the upper right of this page. ✌️
Fork repo and Open new PR. You are most welcome to contribute to this project!
MIT License
Copyright (c) 2023 Pranay Patel
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.