The BookHub project is a demo application that showcases modern Android development practices, including MVI architecture, Clean Architecture principles, Network calls with Retrofit, Hilt for dependency injection.
- Developed using a declarative approach with Jetpack Compose.
- Designed for the latest Android SDK 35 and Kotlin 2.0 with the Compose compiler.
The app is modularized into three distinct layers for better scalability and maintainability:
- Data module: Responsible for managing API calls and local data storage.
- Domain module: Contains business logic.
- Presentation module: Handles UI rendering and user interactions.
- Architecture Pattern : Implemented Model-View-Intent (MVI) architecture pattern to maintain a unidirectional data flow and predictable state management.
- Clean Architecture Principles : Follows Clean Architecture principles to ensure modularity, scalability, and a clear separation of layers.
- Network Calls: Network calls are managed using Retrofit. Includes a common method for safe API calls to handle errors and responses efficiently.
- Dependency Injection : Hilt is used for dependency injection, making it easy to provide and inject dependencies throughout the app.
- Image Handling : Used Coil for asynchronous image loading & a common image picker with robust permission handling.
- Reactive Programming : Used Kotlin Flow for reactive and asynchronous data streams.
- Dependency Management : All dependencies are managed using a centralized TOML file for better maintainability.
- KSP (Kotlin Symbol Processing) is used over KAPT for improved build performance (Reduces annotation processing overhead).
- Android Studio Koala or later (Used Android studio Ladybug).
- JDK 17.
- A device/emulator running Android 7.0 (API level 24) or higher.
Clone the repository:
git clone https://github.com/PanktiSP13/jetpack_modular_project_demo.git
![](https://private-user-images.githubusercontent.com/58383702/394865109-f88cf162-786d-4118-8ccf-566e6b2214d4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwODcwOTYsIm5iZiI6MTczOTA4Njc5NiwicGF0aCI6Ii81ODM4MzcwMi8zOTQ4NjUxMDktZjg4Y2YxNjItNzg2ZC00MTE4LThjY2YtNTY2ZTZiMjIxNGQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDA3Mzk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY5YzI2ZDNjMTJlODk0ZDU4NDIyNmVkMGU3ZGQzMzhlY2IxZTg2NGI4MGRiYzYzMjllYTRhMWI4YjRhODFhMWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.yXk01ON8rUW2Dkw3r-ZnMarRLmhCobQPw09ub4LjRX8)
![](https://private-user-images.githubusercontent.com/58383702/394865603-fd7b35ba-4ad0-4984-90dc-83ddda3cbb16.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwODcwOTYsIm5iZiI6MTczOTA4Njc5NiwicGF0aCI6Ii81ODM4MzcwMi8zOTQ4NjU2MDMtZmQ3YjM1YmEtNGFkMC00OTg0LTkwZGMtODNkZGRhM2NiYjE2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDA3Mzk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJlZDViMDk4ODNlMjFhNjUzOWQ5YTEwNGQ1YThhM2M2NTNiYjk4NDNjMTRjY2FlMjI0MWFlYzA1NWMyOTE1NmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.f9J-8rhqJQC0YSlNFrkuiGvlFw_TJD3zmEuNtNKSxqM)
![](https://private-user-images.githubusercontent.com/58383702/407430228-9f406318-2546-412f-8a6c-cf81f26a3312.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwODcwOTYsIm5iZiI6MTczOTA4Njc5NiwicGF0aCI6Ii81ODM4MzcwMi80MDc0MzAyMjgtOWY0MDYzMTgtMjU0Ni00MTJmLThhNmMtY2Y4MWYyNmEzMzEyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDA3Mzk1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcyOTYzN2VjMDVlY2U5ZWUzYmM0ZTBmY2IwZDE2OGMzZThiYjAxNThmMDdlNTZhMWMwMzkxYjYxOThiMDQwNDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YDCzYPBIZpDkZl6drnrP4ntByuuFjpIFpW0ZL5OxUB0)
Feel free to explore, use, and contribute to BookHub to learn and grow with modern Android development practices! 🚀