/RickAndMortyCompose

App made with jetpack compose to learn how to use different tools and impprove knowledge about android development.

Primary LanguageKotlin

Rick and Morty - Compose

This app is built to practice some concepts, skills and new technologies to me. The application allow fetch all the information from Rick And Morty API.

⭐ Features

  • Fetch characters from the API and display them in a list.
  • Show error screen if try to fetch the data and doesn't have network connection.
  • Implements Pagination.
  • Save all the characters in local storage.
  • See the detail from a specific character.
  • Unit tests for domain, data and presentation layers
  • Implements code coverage with Jacoco

🏃 For run the app just clone the repository and execute the app on Android Studio.

Requirements to install the app

  • Use phones with Android Api 23+
  • Having an internet connection
This application was developed using Kotlin and uses the following components:
  • Jetpack compose
  • Coroutines
  • Clean architecture (Domain, Data, Presentation)
  • MVVM
  • Repository pattern
  • Use cases
  • Flow
  • StateFlow
  • Jetpack navigation
  • Retrofit
  • Room dabatase (Local storage)
  • Pagination
  • ViewModel
  • Accompanist ( navigation animation)
  • Dagger Hilt (Dependency injection)
  • Coil (Load images)
  • Retrofit (HTTP requests)
  • Unit testing (Mockk, Turbine)
  • Code coverage (Jacoco)

Screenshots

Main Screen Detail Detail episodes list
Home Favorites Post Detail

Screenshots Dark Mode

Main Screen Detail
Home Favorites

🎯 Architecture

The application is built using Clean Architeture pattern based on Architecture Components on Android. The application is divided into three layers:

Clean Arquitecture

  • Domain: This layer contains the business logic of the application, here we define the data models and the use cases.
  • Data: This layer contains the data layer of the application. It contains the database, network and the repository implementation.
  • Presentation: This layer contains the presentation layer of the application.

License

MIT

Bikcodeh