It is an application using apollo garphql with multi module and clean architecture for fetching rick and morty characters and navigate to details for each character and also search for character.
The multi-module architecture by layer is an architectural approach that structures a software project into separate modules based on functional layers. Each layer is responsible for a specific aspect of the application, promoting modularity, maintainability, and scalability.
- Separation of Concerns : Modules are organized based on the separation of concerns, with each module focusing on a specific layer of functionality. This separation helps in isolating responsibilities and making the codebase more comprehensible.
- Independence and Reusability : Modules are designed to be independent, allowing for better encapsulation and reusability of code. Each layer can be reused in different contexts or projects, contributing to a more modular and extensible codebase.
- Scalability : As the project grows, it becomes easier to scale and maintain by adding or modifying modules within specific layers without affecting other parts of the application. This allows for a more agile development process.
- Kotlin - First class and official programming language for Android development.
- Apollo - Apollo Kotlin (formerly Apollo Android) is a GraphQL client that generates Kotlin and Java models from GraphQL queries.
- Landscapist - A pluggable, highly optimized Jetpack Compose image loading library that fetches and displays network images with Glide, Coil, and Fresco.
- Kotlin DSL - is a term used to describe a set of programming constructs and conventions in the Kotlin programming language that allow you to create code that feels more like a specialized language for a particular domain or problem.
- Coroutines - library for coroutines developed by JetBrains. It contains a number of high-level coroutine-enabled primitives that this guide covers, including launch, async, and others.
- ComposeUi - is a library used for building user interfaces in Jetpack Compose, which is a modern Android UI toolkit for building native user interfaces.
- Compose Navigation - library provides a Compose-based way to handle navigation within your Android app.
- Koin - A framework to help you build any kind of Kotlin & Kotlin Multiplatform application, from Android mobile, Multiplatform apps to backend Ktor server applications Koin is developed by Kotzilla and open-source contributors.
- Timber - Timber is a popular Android logging library created by Jake Wharton. It provides a flexible and efficient way to log messages and debug information in Android applications.