Skip to content
Andrés Pedraza Míguez edited this page Dec 6, 2025 · 4 revisions

Welcome to the ExpenseShareApp Wiki

ExpenseShareApp is a modular Android application designed for travelers to manage shared expenses efficiently. It focuses on Clean Architecture, modularity, and modern Android development practices.

🎯 Project Goal

To provide a seamless experience for creating expense groups, tracking spending in multiple currencies, and calculating debts/balances between users, with offline support and cloud synchronization.

🏗️ Architecture Overview

The project follows Clean Architecture with MVVM and a multi-module structure:

  • :app: Entry point and dependency injection setup.
  • :core: Shared components (:core:ui, :core:config).
  • :domain: Pure Kotlin business logic (Models, UseCases, Repository Interfaces).
  • :data: Implementation of repositories (Firebase, Room, Retrofit).
  • :ui: Feature-specific modules (e.g., :ui:feature-expenses, :ui:settings).

🛠️ Key Technologies

  • Language: Kotlin
  • UI: Jetpack Compose (Material 3)
  • DI: Koin
  • Async: Coroutines & Flow
  • Navigation: Jetpack Navigation Compose
  • Backend: Firebase (Auth, Firestore) + Room (Local Cache)

🚀 Getting Started

Check the sidebar to navigate through specific architectural concepts like our ScreenUiProvider system, Navigation strategies, and UI patterns.

Clone this wiki locally