https://github.com/ps-sujith/mybooksapidemo
A sample app to showcase the Open Library API, built in Kotlin using Jetpack Compose and architecture components, following Clean Code principles and modularization.
https://github.com/ps-sujith/mybooksapidemo
compose kotlin kotlinflow mvvm retrofit rxjava solid-principles unit-testing
Last synced: 3 months ago
JSON representation
A sample app to showcase the Open Library API, built in Kotlin using Jetpack Compose and architecture components, following Clean Code principles and modularization.
- Host: GitHub
- URL: https://github.com/ps-sujith/mybooksapidemo
- Owner: ps-sujith
- Created: 2024-11-30T20:26:13.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-12-03T08:42:15.000Z (7 months ago)
- Last Synced: 2025-03-29T09:13:44.880Z (3 months ago)
- Topics: compose, kotlin, kotlinflow, mvvm, retrofit, rxjava, solid-principles, unit-testing
- Language: Kotlin
- Homepage:
- Size: 470 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# BOOKS API DEMO
"Android app built with jetpack compose that displays data from the Open Library API. The home screen will show a list of already read books, each featuring an cover , title and author name. When a user selects a book, it will be navigated to a detail screen with more in-depth information about that book. The project complies to SOLID principles and follow a clean architecture design pattern.
"

## PROJECT SPECIFICATION
### TECH STACK
* Kotlin
* Jetpack Compose for the UI
* Hilt for DI
* RX Kotlin & Flow - for making asynchronous calls
* Retrofit - for networking
* mockk - for unit testing
* Coil - Image Loader library.
* Lottie - for animation### API
* https://openlibrary.org/developers/api
### FEATURES
* Book List- Lists all the books already read with cover image ,title and author name
* Book Details - Displays the details of selected book with the extra 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### IMPROVEMENTS
* RX kotlin can be optimized for more scalability
* Furthermore cosmetics and refactoring is an endless thought