Bookshelf π
A modern, professional Android application for book enthusiasts, built with Jetpack Compose and
Material 3. Explore a vast collection of books, manage your personal library, and stay updated with
the latest in the literary world.
β¨ Features
- Explore & Discover: Search for books using the Google Books API and discover new titles across
various categories.
- Personal Library: Save your favorite books to βMy Booksβ for offline access, powered by Room
database.
- Detailed Insights: View comprehensive details for each book, including descriptions, authors,
ratings, and high-quality covers.
- Professional UI/UX: Built with Material Design 3 (Material You) for a beautiful, responsive,
and personalized experience.
- Dark Mode Support: Seamlessly switches between light and dark themes.
- Stay Notified: Receive updates and recommendations via Firebase Cloud Messaging.
- Ad-Supported & Premium: Includes AdMob integration for sustainability and Google Play Billing
for premium features.
- Search & Filter: Powerful search functionality helping you find exactly what youβre looking
for.
π Tech Stack
- UI: Jetpack Compose - Modern declarative UI
toolkit.
- Architecture: MVVM (Model-View-ViewModel) with Clean Architecture principles.
- Dependency Injection: Hilt - Standard DI
library for Android.
- Database: Room - Robust local data
persistence.
- Networking: Retrofit & Kotlinx Serialization -
Efficient API communication.
- Image Loading: Coil - Lightweight image loading
library.
- Firebase:
- Cloud Messaging (FCM): Remote notifications.
- Analytics: User behavior insights.
- Crashlytics: Real-time crash reporting.
- In-App Messaging: Engaging users within the app.
- Monetization:
- AdMob: Banner and Interstitial ads.
- Google Play Billing: Seamless in-app purchases.
- Data Persistence: DataStore - Scalable
and modern data storage for preferences.
π Architecture
The project follows the recommended Android Architecture guidelines:
- UI Layer: Composable functions observing state from ViewModels.
- Domain Layer: Contains business logic and repository interfaces (simplified in this project
for direct repository access).
- Data Layer: Repositories managing data flow between the local database (Room) and the remote
API (Retrofit).
Developed with β€οΈ by Huda Fawzi