← Back to portfolio

// case_study / android

Novella Book Reader

An offline-first Android reader for FB2 and EPUB books. Import a local file, keep the library on the device and read with a configurable, distraction-free interface.

PlatformAndroid 8.0+ · package ua.ck.net.reader
FormatsFB2 and EPUB with offline reading
UIKotlin and Jetpack Compose

01 / the product

A private library in your pocket.

Novella is designed for readers who want their books and reading progress to remain on the device. Books are imported through the Android document picker, stored locally and available without an account or remote library.

The app provides a searchable library, reading progress, table of contents, bookmarks, text search and configurable typography, margins, spacing, themes and reading behavior.

02 / technology

Native Android with Compose UI.

  • Kotlin with Jetpack Compose and Material 3.
  • Android SDK 36, minSdk 26 and Java 17 toolchain.
  • Readium Kotlin Toolkit for EPUB packaging and navigation.
  • Android DocumentFile and Storage Access Framework for local imports.
  • DataStore Preferences for reader settings and local state.
  • Pure offline workflow with no account or cloud transcription/library backend.

03 / interface

Selected screens.

Novella Android book library screenshot
Library — local books and reading progress · open full size ↗
Novella Android reading screen screenshot
Reader — focused reading experience · open full size ↗
Novella Android reader settings screenshot
Settings — typography, layout and themes · open full size ↗

04 / result

Offline by design.

Novella keeps the core reading experience independent of connectivity. The result is a focused Android product with a native UI, local data flow and a clear path for future reader features.