Skip to content

Repository files navigation

BookExplorer

Приложение для чтения и редактирования электронных книг в формате EPUB на устройствах Android.
Поддерживает тёмную тему, удобную навигацию по главам и полноценное редактирование содержимого книги «на лету» с сохранением изменений.

📱 Возможности

  • Открытие книг EPUB – выбор файла через системный проводник (SAF).
  • Разделение страниц – автоматическое определение глав и служебных страниц (обложка, содержание, введение).
  • Редактирование – встроенный редактор на базе WebView (contenteditable). Изменения отслеживаются с игнорированием незначащих пробелов.
  • Сохранение:
    • Сохранить – перезапись исходного файла.
    • Сохранить как… – создание нового файла в выбранной папке.
  • Навигация:
    • Кнопки переключения страниц.
    • Счётчик «Глава X / Y» для настоящих глав.
    • Чтение по вертикали
    • Переход по внутренним ссылкам (содержание, введение и т.д.).
    • Открытие внешних HTTP(S)‑ссылок в браузере.
  • Тёмная тема – автоматически подстраивается под системный режим, включая цвет статус‑бара.
  • Интуитивный интерфейс – панели управления скрываются в режиме чтения, показываются по касанию.
  • Защита от случайной перезаписи – кнопка «Сохранить» активна только при наличии реальных изменений.
  • Индикатор загрузки при открытии книги и сохранении.
  • Обработка системной кнопки «Назад» – корректно закрывает книгу и возвращает на главный экран, а также отменяет режим редактирования.

📸 Скриншоты

(будут добавлены позже)

🧑‍💻 Использование

  1. Откройте книгу – нажмите «Открыть книгу (EPUB)» и выберите файл в проводнике.
  2. Читайте – листайте страницы кнопками «<» и «>». Для отображения панелей управления коснитесь текста.
  3. Редактируйте – нажмите «Редактировать», вносите правки, затем «Закончить правку». Отмена изменений с помощью системной кнопки «Назад»
  4. Сохраните – если есть изменения, кнопка «Сохранить» станет активной. Нажмите её для перезаписи исходного файла или «Сохранить как…» для создания нового.
  5. Закрыть книгу – кнопка «Закрыть» или системная кнопка «Назад».

🛠 Технологии

  • Язык: Kotlin
  • UI: Jetpack Compose + Material 3
  • WebView: для отображения и редактирования HTML‑контента
  • EPUB‑парсер: epub4j (DocumentNode)
  • Хранение состояний: MVVM, StateFlow, ViewModel
  • Навигация: Compose‑навигация через состояние, BackHandler
  • Работа с файлами: Storage Access Framework (SAF), DocumentFile, ContentResolver

📂 Структура проекта

app/
├── src/main/java/io/github/lijspoop/bookexplorer/
│   ├── MainActivity.kt              # Главная активность, управление экранами
│   ├── model/
│   │   └── BookPage.kt              # Модели страниц (BookChapter, ServicePage)
│   ├── repository/
│   │   └── BookRepository.kt        # Чтение и запись EPUB
│   ├── viewmodel/
│   │   └── ReaderViewModel.kt       # Управляет состоянием книги: открытие/сохранение/изменения
│   └── ui/
│       ├── ReaderScreen.kt          # Основной экран читалки
│       └── theme/                   # Тема, цвета, типографика
├── build.gradle.kts                 # Конфигурация Gradle (зависимости)
└── ...                              # Прочие файлы

🚀 Сборка и запуск

  1. Клонируйте репозиторий:
    git clone https://github.com/lijspoop/bookexplorer.git
  2. Откройте проект в Android Studio.
  3. Синхронизируйте зависимости Gradle.
  4. Убедитесь, что у вас установлен Android SDK API 26+ (minSdk = 26).
  5. Запустите приложение на эмуляторе или физическом устройстве.

📥 Установка

  • Скачайте последний APK из раздела Releases и установите на устройство.
  • При установке может потребоваться разрешить «Установку из неизвестных источников».

⚙️ Настройка темы

Приложение автоматически использует тёмную/светлую тему в зависимости от системных настроек.

📝 Лицензия

Этот проект распространяется под лицензией BSD 3-Clause. См. файл LICENSE для подробностей.

Примечание

Этот проект был написан с помощью DeepSeek — AI-ассистента, который помогал в разработке архитектуры, кода и документации.

About

Читалка-редактор (epub) для android

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages