https://github.com/ps-sujith/catapidemo
A sample app to showcase the CAT API, built in Kotlin using Jetpack Compose and architecture components, following Clean Code principles and modularization
https://github.com/ps-sujith/catapidemo
clean-architecture coil compose koin modularization mvvm unit-testing
Last synced: 8 months ago
JSON representation
A sample app to showcase the CAT API, built in Kotlin using Jetpack Compose and architecture components, following Clean Code principles and modularization
- Host: GitHub
- URL: https://github.com/ps-sujith/catapidemo
- Owner: ps-sujith
- Created: 2024-10-10T11:19:22.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-15T13:49:37.000Z (over 1 year ago)
- Last Synced: 2025-04-06T08:18:36.717Z (about 1 year ago)
- Topics: clean-architecture, coil, compose, koin, modularization, mvvm, unit-testing
- Language: Kotlin
- Homepage:
- Size: 850 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CAT API DEMO
"A sample app to showcase the CAT API, built in Kotlin using Jetpack Compose and architecture components, following Clean Code principles and modularization."


## PROJECT SPECIFICATION
### TECH STACK
* Kotlin
* Jetpack Compose for the UI
* Hilt for DI
* Coroutines and Flow - for making asynchronous calls
* Retrofit - for networking
* Room -for local caching
* mockk - for unit testing
* Coil - Image Loader library.
### API
* [https://hp-api.onrender.com/](https://thecatapi.com/)
### FEATURES
* Cat Breed List- Lists all the cats breeds with image and breed name and option to add favourite
* Favourite List - Lists all the cats breeds added to favourite by the user
* Cat Breed Details - Displays the details of a selected cat including its breed name,country of orgin , life span etc
* Add/Remove Favourite - Breeds can be added/removed to favourites from Breed List or Breed details
### ARCHITECTURE & DESIGN PATTERN
* SOLID PRINCIPLE - The app follows SOLID design principles to ensure scalability and maintainability.
* CLEAN CODE ARCHITECTURE -The app's architecture is designed to be clean, separating concerns into distinct layers (e.g., UI, Domain, Data).
* MODULAR - The app codebase is modularized by layers (UI, Data, Domain), with the Domain module being independent of the other modules.
* DESIGN PATTERN - Application is developed using Test-Driven Development (TDD) and follows the Model-View-ViewModel (MVVM) design pattern