Skip to content

nulib-labs/clover-android

Repository files navigation

Clover Android

Native Android IIIF viewer for browsing, searching, and viewing digital collection content from IIIF-compatible endpoints.

CloverAndroid screenshot

What the app does

  • Viewer: Opens a IIIF manifest and presents page-by-page content with zoom/pan image viewing, thumbnails, metadata info, and media playback.
  • Explore: Navigates hierarchical IIIF collections and opens manifests directly into the viewer flow.
  • Search: Runs keyword search against the configured works API, with facet filtering and paginated result loading.
  • Favorites: Saves manifests for quick return and supports removing entries from a dedicated favorites tab.
  • Settings: Configures appearance mode, viewer/debug options, and loading a custom manifest URL.

High-level architecture

  • App shell: Single-activity app with a bottom-tab navigation model (Viewer, Explore, Search, Favorites, Settings).
  • State management: A central Android ViewModel holds shared app state (active manifest, settings, favorites) and coordinates screen actions.
  • Data layer: A repository handles IIIF manifest/collection/search requests and maps JSON responses into app-level models.
  • Local persistence: Settings and favorites are stored on-device and restored at app startup.

Native Android technology stack

  • Language: Kotlin
  • UI: Jetpack Compose with Material 3
  • Architecture/runtime: Android SDK + AndroidX lifecycle/navigation/activity APIs
  • Concurrency: Kotlin coroutines
  • Networking/parsing: Platform HTTP + JSON handling
  • Media playback: Android media playback components for audiovisual IIIF content

Data and content model (broad strokes)

  • Uses IIIF Presentation-style manifests/canvases for page content.
  • Supports image-first viewing with tile-aware rendering behavior for high-resolution sources.
  • Supports media canvases when streams are present.
  • Exposes manifest metadata and visibility/restriction cues in the UI.

Running locally

  1. Open app directory in Android Studio.
  2. Let Gradle sync the project.
  3. Run the app module on an emulator or physical Android device.

Notes:

  • The app requires network access (INTERNET) to load remote IIIF resources.
  • A default manifest is configured so the viewer has immediate startup content.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages