Читалка на прокачку как Episteme Reader возвращает контроль над электронными книгами
Найти в Google Play нормальное приложение для чтения — тот еще квест. Либо интерфейс застрял в эпохе Android 4.4, либо на каждом шагу выскакивает реклама, либо приложение весит 100 мегабайт и требует доступ к контактам. На этом фоне проект Episteme Reader выглядит как глоток свежего воздуха для тех, кто ценит приватность и чистый код.

Что это за зверь
Episteme Reader — это опенсорсная читалка для Android, написанная на Kotlin и Jetpack Compose. Автор явно делал ставку на концепцию offline-first. Приложение не пытается синхронизировать вашу библиотеку с непонятным облаком или собирать аналитику о том, сколько страниц вы прочитали перед сном. Оно просто открывает файлы и дает их с комфортом читать.
Интересно, что проект разделен на две части: OSS-версия на GitHub и расширенная версия в Google Play. Мы смотрим на открытый исходный код, который сам по себе является отличным примером современной Android-разработки.
Всеядный движок и поддержка форматов
Обычно читалки делятся на два лагеря: либо они хорошо работают с PDF, либо с текстовыми форматами вроде EPUB. Episteme пытается усидеть на всех стульях сразу, и у него это получается благодаря использованию разных движков под конкретные задачи.
Список поддерживаемых форматов выглядит солидно:
- Классика: PDF, DOCX, EPUB, FB2.
- Комиксы: CBZ, CBR, CB7 (редкая птица для универсальных читалок).
- Техническая литература: MOBI, AZW3 (форматы Kindle).
- Текстовые файлы: Markdown, TXT, HTML.
Для PDF используется pdfium-android, что дает плавный скролл и возможность рисовать поверх страниц. Для EPUB разработчик реализовал два режима: привычный WebView для вертикальной прокрутки и кастомный движок для постраничного чтения.
Аннотации и работа с текстом
Если вы используете планшет для учебы или работы, вам понравится работа с аннотациями в PDF. В приложении есть полноценный инструментарий для заметок: перо, маркер и ластик. Можно накидать мысли прямо на полях или выделить важную цитату.
Кстати, о цитатах. В приложении встроен движок Text-to-Speech (TTS). Если глаза устали, можно переключиться в режим аудиокниги. Это стандартная системная функция, но здесь она вписана в интерфейс без лишних костылей.
Как это устроено внутри
Для разработчиков Episteme интересен как учебное пособие по Jetpack Compose и Material 3. Архитектура построена на классическом MVVM с однонаправленным потоком данных (Unidirectional Data Flow).
Технологический стек проекта:
- UI: Jetpack Compose. Никаких XML, только декларативный подход.
- База данных: Room (SQLite) для хранения метаданных книг и ваших аннотаций.
- Сетевой слой: Используется для работы с OPDS-каталогами (библиотеками в сети).
- Нативные вставки: Для поддержки MOBI и AZW3 используются JNI-биндинги к библиотеке
libmobi.
Проект активно использует возможности Kotlinx Serialization и Coil для загрузки обложек. Если вы планируете внедрять Material 3 в свой проект, посмотрите, как здесь реализованы темы: есть поддержка темной темы, сепии и специального OLED-режима, который реально экономит заряд на соответствующих экранах.
Зачем это нужно разработчику
Помимо прямого назначения — чтения документации в PDF или книг по архитектуре ПО — проект полезен как база для своих наработок. Например, если вам нужно внедрить просмотр документов в свое приложение, можно подсмотреть, как автор реализовал интеграцию pdfium или парсинг Markdown через Flexmark.
Еще одна крутая фишка — поддержка OPDS 1.x/2.0. Это позволяет подключаться к сетевым библиотекам и скачивать книги напрямую, не используя браузер. Реализация парсинга фидов здесь довольно легковесная и понятная.
Как собрать и пощупать
Сборка стандартная для Android-проектов. Клонируете репозиторий, открываете в Android Studio и запускаете вариант ossDebug.
git clone https://github.com/Aryan-Raj3112/episteme.git
cd episteme
./gradlew assembleOssDebug
Готовый APK появится в папке app/build/outputs/apk/oss/debug/.
Episteme Reader не пытается совершить революцию, но он делает одну вещь и делает ее хорошо: дает читать книги без лишнего шума. Проект подойдет тем, кто:
- Ищет легкую читалку без рекламы и трекеров.
- Хочет изучить качественную реализацию Jetpack Compose на реальном примере.
- Нуждается в инструменте для чтения комиксов и PDF с возможностью делать пометки.
Конечно, в коде можно найти места для оптимизации, а список открытых Issue намекает, что работы еще много. Но именно это делает проект отличным местом для первого контрибьюта в Open Source.
