Rick-and-Morty is a small demo application to test out and showcase integrations with various modern Android tech stacks and libraries.
- Minimum SDK level 22
- Completely written in Kotlin.
- Jetpack Compose - Declarative UI toolkit for Android.
- Hilt for dependency injection.
- Apollo - A strongly-typed
GraphQL
client. - Paging for pagination.
- Room for local data persistence.
- Gradle Versions Plugin - Plugin to determine dependency version updates
- Coil - Image loading library backed by Kotlin Coroutines.
- Eventbus for inter-module communication.
- Coroutines & Flow for asynchronous operations.
- Navigation component for handling navigation between screens.
Dark mode | Light mode |
---|---|
Dark mode | Light mode |
---|---|
This project started off initially with the regular view
based UI, and after completion of the UI and all of the business logic,
piece by piece (module by module) migration to the Jetpack Compose
implementation began and has completely been migrated to Jetpack Compose
now,
and all of the view
-based code has been removed.
Each of these stages has been individually tracked in separate respective branches as follows
- Migrate to
buildSrc
- Migrate to
GraphQl
client - Add pagination for 'list screens'
- Add shared element transitions for view based implementation
- Enhance overall page animations for view based implementation
- Migrate to
Jetpack Compose
- Improve router implementation
- Add animations to the
Jetpack Compose
implementation
This project doesn't require setting up any API key and can be built and run using the latest version of Android Studio Arctic Fox (stable channel) (tested with 2020.3.1 Patch 3). You just need to clone the project and are pretty much ready to go.
All of the data and images presented in this app are sourced from The Rick and Morty API. Huge thanks to Axel Fuhrmann for this.