Morky
An application to request and filter characters from the Rick and Morty API.
Architecture
This applications follows the MVVM + Clean Architecture with TDD.
Compiling
Requirements
- Android Studio Flamingo> or Java 17
- Android SDK 27 (min)
- Android SDK 33 (compile/target)
Steps
- Clone the project.
- Import the project in Android Studio.
- Sync dependencies
- Compile with
gradlew build
or with the Run button in your desired device.
Tests
Run gradlew test
command.
Dependencies
- Compose: Reactive UI in Android
- Landscapist with Fresco: Flexible image loading library for Compose. Fresco was chosen because it's has the 'click to reload' image feature by default.
- Retrofit: Standard for making http requests on Android.
- Moshi: Used with codegen to remove runtime overhead. Perfect with Kotlin and it's nullable types.
- Room: Used for saving characters in an SQL database.
- Hilt: Easy out of the box dependency injection
- Coroutines + Flow: Background work with flows, who now has a powerful operators API.
- Tests dependencies: mockk, truth, coroutiens-test.
Aside from Landscapist, Retrofit and Moshi, all dependencies come from either Google or Jetbrains.
Contributing
I made this app for practice/professional purposes, but PR's are welcome!