ln-reader for Android app icon Android
L&N Reader for iPhone and iPad app icon iPhone & iPad

Lectures and Narrations

Audiobooks that read along with you.

A player for .m4b audiobooks on Android, iPhone, and iPad — with chapter-relative scrubbing, sleep timers, and an EPUB companion reader that highlights the text in sync with the narration.

★ Google Play · v1.6 ★ App Store · v1.1 Native Android · Kotlin + Jetpack Compose · 13+ Native iOS · Swift + SwiftUI · 17+ 100% on-device

The same app, twice — natively

Seven screens on both platforms, showing the same public-domain demo books: the library, the player, the image viewer, the sleep timer, the audio-synced EPUB reader with whole-book search, and the usage chart.

Android
Android library — cover grid with progress bars
Library
Android player — chapter scrubber with image markers
Player
Android image viewer — embedded illustrations grid
Images
Android sleep timer
Sleep timer
Android EPUB reader — narrated sentence highlighted in sync
Synced reader
Android reader search — whole-book results
Search
Android usage chart — time spent per book, stacked by day
Time spent
iPhone & iPad
iOS library — cover grid with progress bars
Library
iOS player — chapter scrubber, AirPlay and Google Cast
Player
iOS image viewer — embedded illustrations grid
Images
iOS sleep timer — running countdown
Sleep timer
iOS EPUB reader — narrated sentence highlighted in sync
Synced reader
iOS reader search — whole-book results
Search
iOS usage chart — time spent per book, stacked by day
Time spent

Tap any screen for the full-size store screenshot — tablet and iPad sets live in the repo. All four demo books were produced by ln-vox from public-domain texts.

Android v1.6 · 20 Sep 2026 iOS v1.1 · 20 Sep 2026

What's new

Books that are only an EPUB, a chart of where your time goes, and the sleep timer folded into Settings — on both platforms, behind a new shared look.

📚

Books without audio

Import a plain EPUB — no narration required. A page mark keeps your place, so the book reopens exactly where you left it, and the library tile shows the page you're on instead of a running time. The mini-player stays out of the way until something is actually playing.

📊

Time spent

A chart of how long each book has been open — listening and reading together — by day, week, month or year. One shade per book, stacked, so a bar shows both how long a day ran and what it went on. Details opens the individual sessions, loaded a page at a time as you scroll.

⚙️

One Settings tab

The Timer tab is gone on both platforms. The sleep timer now sits in Settings under the new chart — four tabs instead of five, and the settings that were split across tabs sit together.

😴

Change a running timer

iOS The setup controls stay on screen while a timer runs and start from what is armed: pick new values and tap Update timer to replace it, instead of cancelling and starting over — which is how the Android chips have always behaved.

🎨

A new look

The Athenaeum palette and a new icon, shared across the Android app, the iPhone app and this site. Material You theming from the wallpaper is still there behind a flag, but the shared identity is what ships.

🛠️

Fixes

Android the reader could lose sync with the narration when a page turned as it opened, and player controls could be pushed off a short screen. iOS the mini-player no longer covers the Update button, and the iPad library shows four large covers per row instead of six thin ones.

See the Android changelog and the iOS changelog for every change, including earlier release notes.

One ecosystem, two halves

LN began as an AI experiment in book understanding — using language models to analyze narrative structure, character traits, and scene dynamics — and grew into an end-to-end pipeline for immersive, multi-voice audiobooks.

ln-vox The Creator

An offline, self-hosted AI pipeline that ingests raw text or EPUBs. It orchestrates LLMs to cast characters and direct emotional delivery, then uses local TTS to generate a fully acted, multi-voice .m4b complete with text-to-audio sync markers.

The Python pipeline on GitHub →

ln-reader The Consumer

Two fully native apps built specifically to play these enhanced audiobooks — Kotlin + Jetpack Compose on Android, and a ground-up port in Swift + SwiftUI on iPhone / iPad (published as L&N Reader on the App Store). Same features, same files: chapter-relative scrubbing, sleep timers, and the EPUB reader that highlights the text in sync with the audio.

Get it on Google Play →
Download on the App Store →

What ln-reader does

A focused, offline audiobook player — no accounts, no streaming, no tracking.

📚

Library

  • Import .m4b from any SAF source — device storage, Drive, OneDrive, Dropbox…
  • Grid of covers, each with a playback progress bar; sort by name or date added (remembered).
  • Group books into collections (folders) with cover-shelf tiles; add / remove from a book's detail sheet, and hand-arrange each one.
  • Tap a book to start playing; detail sheet has Open, Read, images, collection, and Remove.
▶️

Player

  • Foreground media session — background playback from notification & lock screen.
  • Mini-player on every other screen — play/pause, skips, Read button, chapter + book progress bars; tap to expand.
  • Chapter-relative scrubber with a whole-book progress bar + time-left; the stacked chapter title / "Chapter N of M" is a tappable chapter picker.
  • ±10 s / ±30 s skips, prev / next chapter, 0.5×–3× speed; auto-saves and resumes your position.
  • Continue-the-collection prompt when a collected book finishes — jump to the next or previous by its cover.
🖼️

Image viewer

  • Grid of every image embedded in the m4b.
  • Full-screen pager — pinch to zoom up to 5×, pan, swipe between images.
  • Reachable from the library, the player top bar, or the Images tab.
😴

Sleep timer

  • Time mode — 5 to 90 min presets; pauses with playback, resumes on play.
  • Chapters mode — end of current, or +2 / +3 / +5 chapters.
  • Adjustable volume fade-out — Off / 10 s / 30 s / 1 min / 5 min — plus Postpone / Dismiss and shake-to-postpone.
⬇️

Downloads

  • Cloud SAF imports are copied locally so playback streams from disk.
  • Local imports are referenced in place — no copy.
  • Phase-aware progress: Downloading → Parsing m4b → done; pick any SAF folder.
📖

EPUB companion + sync

  • Built-in WebView reader with light / dark mode and adjustable text size, both remembered.
  • A sync manifest ties audio timestamps to EPUB beats & illustrations.
  • Auto-follow: highlights the active beat, scrolls, and turns pages as you listen.
📚

Books without audio

  • Import a plain .epub on its own — no m4b, no narration required.
  • A page mark keeps your place, so the book reopens exactly where you left it.
  • The library tile shows the page you are on instead of a running time; the mini-player stays out of the way until you are actually listening to something.
📊

Time spent

  • Every listening and reading session is logged on the device, and charted per book by day, week, month or year.
  • One shade per book, stacked, so a bar shows both how long a day ran and what it went on.
  • Details opens the individual sessions, loaded a page at a time as you scroll.

EPUB + sync, in detail

Each book can carry two optional companions, attached from its detail sheet. What you get depends on what's attached:

EPUBSyncResult
Reader auto-follows the audio: highlights the active lnvox-beat span, scrolls to it, and turns pages as playback advances. Scrubber shows tappable image markers.
Plain reader, manual paging only.
Image markers on the scrubber only (no reader).
Plain audiobook.

In auto-follow mode, manually flipping a page pauses following; a Resume button re-engages it and jumps to the current beat. Scrubber image markers sit at each manifest image's position within the current chapter — tap one to open the matching embedded m4b image.

Requirements & Limitations

ln-reader is single-device, offline-first software. Here's exactly what that means.

📱

Requirements — Android

  • Android 13 or newer (minSdk 33, targetSdk 36).
  • A file manager or cloud app exposing a DocumentsProvider for your .m4b files — Drive, OneDrive, the system Files app, and most third-party managers work.

Requirements — iPhone & iPad

  • iOS / iPadOS 17 or newer.
  • Your .m4b files reachable from the Files app — On My iPhone/iPad, iCloud Drive, or any file provider. Imports are always copied into the app.

Build it yourself

Prefer source over the Play Store? Build the debug APK in one command.

Android — JDK 21 required. From the project root:

$ ./gradlew assembleDebug

The debug APK lands in app/build/outputs/apk/debug/. Install it with adb install.

iPhone / iPad — Xcode 26 and XcodeGen:

$ xcodegen generate && open LnReader.xcodeproj

Architecture, design decisions, and tooling quirks live in each project's DESIGN.md.

Android source → iOS source →