Skip to content

Apnah is a clean MVVM app with Jetpack Compose UI, Dagger Hilt for DI, and efficient data handling via Room, Shared Preferences, and Coroutine Flow. Explore All Books, Saved Books, Cart, Sign In, and more seamlessly! πŸ“–βœ¨

Notifications You must be signed in to change notification settings

Vibhav00/BookApnahAndroidApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š Book Apnah - Your Ocean-Themed Online Bookstore πŸŒŠπŸ“˜ πŸ“– 😍

platform API GitHub license

A Beautiful Book Store App build with Jetpack Compose with 🧹🧼 Clean Architecture ✨ 🧼

Why Book Apnah πŸ“–βœ¨

Book Apnah is an online bookstore. "Book" means book and "Apnah" (ΰ€…ΰ€ͺΰ€¨ΰ€ƒ) in Sanskrit means store. Discover a wide range of books with an easy-to-use interface. Find your next read with Book Apnah! πŸ“–βœ¨

Different Screens πŸ“±πŸ“²πŸ“³

Book Apnah (ΰ€…ΰ€ͺΰ€¨ΰ€ƒ) offers an ocean-themed experience with beautifully designed screens. Enjoy a seamless user interface across features like All Books, Filter Books, Saved Books, cart Books, Sign In, Sign Up, and more. Dive into a visually pleasing, user-friendly journey to find and purchase your favorite books! πŸ“–βœ¨

Cart Books

All Books

Saved Books

Book Details

Book Filter

Filter Result

Sign In


About πŸ’‘πŸŽ―

Book Apnah (ΰ€…ΰ€ͺΰ€¨ΰ€ƒ) is crafted with clean architecture and the MVVM design pattern, leveraging Jetpack Compose for a stunning UI. The app is powered by Dagger Hilt for seamless dependency injection and uses Shared Preferences, Room Database, and Coroutine Flow for efficient data management. Experience features like All Books, Filter Books, Saved Books, cart Books, Sign In, Sign Up, and more, all within a beautifully designed, user-friendly interface. Dive into a smooth, enjoyable journey to discover and purchase your favorite books! πŸ“–βœ¨


video πŸ“ΊπŸ’»

BookApnahInitial.mp4

Backend πŸŒπŸŒβš οΈβ›”

  • The backend of the app is also developed by myself and it is built with node , express and mongodb.
  • The backend is not deployed anywhere if anyone wants to test the app he can run the backend manually
  • I am running the backend in my pc and using localhost I am running the app
  • data is already given in my repo in form of csv
  • backend this is link of backend

Clean Architecture 🧼🧹

Clean architecture is a software design approach that emphasizes separation of concerns and the dependency rule, with the goal of creating maintainable and scalable codebases. It divides an application into layers, typically including presentation, domain, and data layers , each with specific responsibilities and dependencies. Clean architecture promotes testability, flexibility, and maintainability by enforcing clear boundaries between components and minimizing coupling between them.


Separation of Concern πŸ§πŸ€­πŸ‘©

Presentation Layer

Data layer

Domain

User Interface

Api Access

Connecting Layer

View Model

Database Access

Business Logic(filter,sort,etc)

Components

Database Access

Connecting Layer

Shared Preferences

Model classes , definition to repository


working πŸ’ͺβš’

  • All the screens are designed completely with jetpack compose
  • For injecting the dependencies I am using dagger hilt
  • retrofit is used for api access
  • Room database is used to store Books
  • use cases is for handling the business logic like(filtering , sorting etc )
  • flow is used to provide seamlessly fetching of Books

Technologies Used πŸ‘©β€πŸ’»βš™πŸ‘¨β€πŸ’»

    • Dagger Hilt is a dependency injection library for Android development, built on top of Dagger
    • It simplifies the process of dependency injection by providing a set of predefined components and annotations, reducing boilerplate code and improving readability. Dagger Hilt integrates seamlessly with Jetpack libraries and Android's lifecycle, making it the preferred choice for managing dependencies in modern Android apps
    • Clean architecture is a software design approach that emphasizes separation of concerns and the dependency rule, with the goal of creating maintainable and scalable codebases. It divides an application into layers, typically including presentation, domain, and data layers, each with specific responsibilities and dependencies. Clean architecture promotes testability, flexibility, and maintainability by enforcing clear boundaries between components and minimizing coupling between them.
    • MVVM stands for Model-View-ViewModel, which is a software architectural pattern commonly used in modern UI frameworks, including Android development. In MVVM, the application is divided into three main components:

      1. Model: Represents the data and business logic of the application.
      2. View: Represents the UI components visible to the user.
      3. ViewModel: Acts as an intermediary between the View and the Model, providing data and behavior to the View while
      4. abstracting away the underlying business logic.
    • MVVM promotes separation of concerns, making it easier to maintain and test the codebase. It also facilitates reusability of components and promotes a more modular architecture.

    • Jetpack Compose is a modern toolkit for building native Android UIs using a declarative approach. It allows developers to create UI components using Kotlin code, with a focus on simplicity, productivity, and performance. With Jetpack Compose, UIs are defined as functions that describe what should be displayed based on the current state of the app. This declarative style simplifies UI development, reduces boilerplate code, and enables powerful features like state management, animations, and theming. Jetpack Compose is part of the Android Jetpack library and is designed to work seamlessly with existing Android APIs and frameworks.
    • Retrofit is a concise and powerful HTTP client library for Android and Java applications. It simplifies the process of making network requests by providing a high-level API with annotations for URL handling and parameter passing. Retrofit supports asynchronous programming, error handling, and seamless integration with popular libraries like RxJava for reactive programming.

About

Apnah is a clean MVVM app with Jetpack Compose UI, Dagger Hilt for DI, and efficient data handling via Room, Shared Preferences, and Coroutine Flow. Explore All Books, Saved Books, Cart, Sign In, and more seamlessly! πŸ“–βœ¨

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages