Personal MVI Clean Architecture

PlantPediaZ

A comprehensive guide to all plants and zombies in 'Plants vs. Zombies 2'.

The Overview

A comprehensive guide to all plants and zombies in the "Plants vs. Zombies 2", powered by the PVZ 2 API. PlantPedia Z was initially built using Android Clean Architecture that follows the Model-View-Intent (MVI) pattern.

Architecture & Technical Decisions

PlantPedia Z follows a modular architecture to improve build times, maintain a separation of concerns, and make the codebase more scalable and maintainable. It follows the Model-View-Intent (MVI) pattern alongside Clean Architecture principles.

Module Design

  • App & Core: Central orchestration and shared utilities.
  • Data & Database: Data sources, local caching using Room, and API integration.
  • Domain: Pure Kotlin business logic and use cases.
  • Presentation & UI: Shared Jetpack Compose components and design systems.
  • Feature Modules: Isolated features like the main encyclopedia.

The Tech Stack

Language Kotlin
UI Framework Jetpack Compose
Architecture MVI / Repository
Networking Retrofit & OkHttp3
Persistence Room DB
DI Framework Hilt
Cloud Services Firebase