App that shows characters of Rick And Morty.
After cloning the repository you have to create the file secrets.defaults.properties in the root of the project with the next properties:
- API_URL="https://rickandmortyapi.com/graphql" (In this case we expose the url because is public)
- ALIAS = Example
- KEY_PASS = Example
- KEY_ALIAS = Example
Looks like this:
The ALIAS, KEY_PASS, KEY_ALIAS keys are optional, if you want to run the app in build type release but you have to generate a keystore and store it in app module with the name keystore.jks and when you generate your keystore.jks add the keys that you store in secrets.defaults.properties.
:build-logic:app:core:local-storage:core:network:core:model:core:util:core:testing:core:resources:feature:character
The build-logic module contains all the gradle configurations. See more.
Contains the Application class and the Launcher Activity.
Contains the local storage with the Room library.
Contains the networking using GraphQl with Apollo3 client library.
Contains model classes.
Contains common Util classes.
Contains helper classes for unit test and instrumentationTest.
Contains all the resources of the app in order to have a single source of truth.
Contains the Character feature with clean architecture and MVVM architectural pattern (All the features has the same structure).
Catalogs is implemented in order to handle all the libraries.
For dependency injection Dagger hilt is used
cache is implemented when the device is offline using Room
Pagination implemented with Paging3
Fastlane is used in order to handle CI/CD
- Kotlin
- Jetpack Compose
- MVVM
- Dagger Hilt
- Flows
- Paging3
- Graphql + Apollo3
- Kotlin coroutines
- Fastlane

