Skip to content

Tabishahmad/BookList-Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BookList Android

A paginated book discovery app built twice — once with the classic Fragments/XML view system, once with Jetpack Compose — on top of the same Clean Architecture core, to demonstrate both UI paradigms on identical business logic.

main Fragments + XML, ViewBinding, RecyclerView + DiffUtil
compose-ui Jetpack Compose, Navigation-Compose, declarative screens

Both branches share: domain layer, use cases, repositories, Hilt modules, Room-backed favorites.

Features

  • Infinite-scroll paginated book list from a remote API
  • Book detail screen
  • Offline favorites (Room database)
  • Image loading (Glide)
  • Splash → List → Detail navigation flow

Architecture

Clean Architecture, 3 layers:

presentation/   → ViewModels, Fragments or Composables
domain/         → UseCases, repository interfaces, models
data/           → Repository impls, remote data source, local DB (Room)
  • DI: Hilt (AppModule, NetworkModule, DatabaseModule, ViewModelModule)
  • Concurrency: Kotlin Coroutines + Flow
  • Testing: JUnit + coroutine test rules for use cases and repositories, instrumented tests for DB and UI flow

Tech stack

Kotlin Jetpack Compose Coroutines Hilt Room Retrofit Glide JUnit

Running it

git clone https://github.com/Tabishahmad/BookList-Android.git
# XML/Fragments version
git checkout main
# Compose version
git checkout compose-ui

Open in Android Studio and run.

Why two implementations?

Originally built as a take-home assignment, then extended with a Compose rewrite and a favorites feature to compare the two Android UI approaches on the same domain/data layer — the kind of migration work that comes up in real production codebases moving from Views to Compose.

About

Book discovery app with pagination and offline favorites — built in both Fragments/XML (MVVM) and Jetpack Compose using shared Clean Architecture, Hilt, and unit tests.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages