Skip to content

This is Characters, an app built with the latest industry practices. It features Multi-Modules, Clean Architecture, Compose UI, Coroutines & Flow, Dark/Light Theme, and comprehensive Unit Testing.

Notifications You must be signed in to change notification settings

osamasayed585/Characters-App

Repository files navigation

Rick & Morty App Cover

Characters App

License ktlint Android CI Unit Test Android CD

Overview

This Android application is built with Kotlin and Jetpack Compose. It fetches data from the Rick and Morty API and displays characters in a paginated list. The project is designed as a showcase of modern Android development, applying clean architecture principles and modularity while demonstrating elegant UI design with Jetpack Compose.


Features

Screen 1: Character List

  • Displays a paginated list of characters (20 per page).

  • Supports searching characters by name.

  • Handles loading, error, network, empty states, and support ry again.

  • On item tap → navigates to details screen.

  • Support Dark & Light mode

    Shimmer Effect Network Error Error State Page Error Empty State
    Shimmer Effect Network Error Error State Page Error Empty State


Tech Stack

  • Kotlin + Jetpack Compose for modern declarative UI.
  • Material 3 for design system.
  • Hilt for Dependency Injection.
  • Retrofit + OkHttp + Gson for networking.
  • Kotlin Coroutines & Flow for async operations.
  • Testing JUnit4, MockK, Kluent, Turbine.
  • DataStore for local persistence.
  • Paging 3 for pagination.
  • Coil for image loading.
  • CI/CD Automated build & test pipelines for seamless integration.
  • Timber for logging.

Architecture

The project follows Clean Architecture and Modularization principles.

  • app → Application entry point, DI setup, Navigation host, Theming.

  • core (shared logic & modules):

    • common: utilities, constants, helpers.
    • data: repository implementations.
    • dataStore: persistence with DataStore.
    • design: design system & shared UI components.
    • domain: entities & use cases (business logic).
    • model: DTOs / mappers.
    • navigation: navigation graph and routes.
    • network: Retrofit services and API setup.
  • feature (feature-based modules):

    • home: character list, pagination, search.
    • details: character details screen.

This modular structure ensures:

  • Separation of concerns.
  • Scalability for new features.
  • Reusability of common components.
  • Testability of each layer.

Architecture For Characters App


🚀 Getting Started

Clone this repository:

git clone https://github.com/osamasayed585/Characters-App.git

About

This is Characters, an app built with the latest industry practices. It features Multi-Modules, Clean Architecture, Compose UI, Coroutines & Flow, Dark/Light Theme, and comprehensive Unit Testing.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages