CatCompose is a modern Android app built to demonstrate a clean, scalable, and pragmatic approach to app development using Jetpack Compose.
It displays a list of cat breeds and detailed information for each one — serving as a showcase of modular architecture, state management, and Compose-first UI design.
- Browse a list of cat breeds
- View detailed information about each breed
- Clean, reactive UI built entirely with Jetpack Compose
- Modular and scalable architecture for maintainable code
- Example of modern Android development best practices
CatCompose was created as a personal showcase project — a way to explore and apply modern Android development principles in a realistic setup.
It focuses on feature modularization, clean architecture, and Compose-based UI, showing how to keep an app both elegant and easy to scale.
The project is designed with maintainability and scalability in mind, following SOLID principles and a feature-first approach.
It keeps a clear separation between UI, state, and data, while staying flexible enough for real-world development.
- UI: Fully built with Jetpack Compose, using a declarative and reactive design. Composables are stateless and observe changes from the ViewModel.
- State Management: ViewModels manage and expose UI state using
StateFlow, handling data loading and user actions. - Data Flow: The UI observes the state from the ViewModel. User interactions trigger ViewModel functions, which communicate with repositories to fetch or update data.
The codebase is organized into feature-based modules, helping reduce build times and improve separation of concerns.
:app— The main application module. It integrates all features and handles high-level navigation and dependency injection.:features:list— Contains everything related to the cat breed list screen and its related components.:features:details— Handles the cat breed detail screen and its related components.
CatCompose uses a modern Android stack for performance, readability, and ease of development:
- Kotlin — Primary language
- Jetpack Compose — Declarative UI toolkit
- Hilt — Dependency injection
- Jetpack Navigation 3 — For navigating between composable screens
- ViewModel — Lifecycle-aware state management
- Kotlin Coroutines & Flow — For asynchronous and reactive data handling
- Retrofit — REST API client
- Coil — Lightweight image loading library
To build and run CatCompose:
- Clone this repository
- Open it in Android Studio
- Let Gradle sync and download all dependencies
- Run the app on an emulator or physical device
CatCompose is a focused demonstration of how to combine Jetpack Compose, modular architecture, and clean code practices into a cohesive Android project.
It’s built as a learning and portfolio project — not just to show what works, but to explore why it works.