Skip to content

enyason/OpenLibrary-Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenLibrary Android App

About the App

OpenLibrary is an Android application that allows users to search, explore, and view detailed information about books using the OpenLibrary API. The app focuses on clean architecture, modularity, and modern Android development practices.

The goal of this project is to demonstrate:

  • A scalable, modular Android architecture
  • Clear separation of concerns using layered design
  • Practical use of modern Android libraries
  • Testable and maintainable code

Minimum SDK: API 24 Device Coverage: Runs on ~99.2% of Android devices

Design Inspiration


Architecture

The app follows a Modular Clean Architecture approach. Each feature lives in its own module, making the codebase scalable, testable, and easy to maintain.

High-Level Architecture

Presentation (UI)
   ↓
Domain (Business Logic)
   ↓
Data (Repositories & Data Sources)
   ↓
API (OpenLibrary)

Modules Overview

1. Presentation Layer

  • Built with Jetpack Compose
  • Contains UI components, ViewModels, and state handling
  • Observes data from the Domain layer
  • Structured with MVVM pattern

2. Domain Layer

  • Pure Kotlin module (no Android dependencies)
  • Contains:
    • Use cases
    • Domain models
    • Repository interfaces
  • Easily testable and reusable

3. Data Layer

  • Kotlin library module(No Android Specific Library was used here).

4. Core Module

  • Common dependencies used across the app are defined here

Libraries & Dependencies Used

  • Jetpack Compose – Declarative UI toolkit
  • RxJava – Reactive programming and async handling
  • Hilt – Dependency injection
  • Retrofit – Networking and API consumption
  • Mockk – Mocking and Unit Testing
  • Coil - For Image Loading

Testing

The project includes:

  • Unit Tests

    • SearchBooksUseCaseTest
    • BookRepositoryImplTest
    • BookListViewModelTest
  • Integration Tests

    • BooksActivityTest

This ensures correctness across business logic, data handling, and UI flow.


Improvements & Future Upgrades

Planned enhancements include:

  1. Advanced book search
  2. Pagination support
  3. Offline support using Room Database
  4. Bookmarking and saving favourite books

Demo


About

Explore your next great read with OpenLibrary Android app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages