Приложение для чтения и редактирования электронных книг в формате EPUB на устройствах Android.
Поддерживает тёмную тему, удобную навигацию по главам и полноценное редактирование содержимого книги «на лету» с сохранением изменений.
- Открытие книг EPUB – выбор файла через системный проводник (SAF).
- Разделение страниц – автоматическое определение глав и служебных страниц (обложка, содержание, введение).
- Редактирование – встроенный редактор на базе WebView (
contenteditable). Изменения отслеживаются с игнорированием незначащих пробелов. - Сохранение:
- Сохранить – перезапись исходного файла.
- Сохранить как… – создание нового файла в выбранной папке.
- Навигация:
- Кнопки переключения страниц.
- Счётчик «Глава X / Y» для настоящих глав.
- Чтение по вертикали
- Переход по внутренним ссылкам (содержание, введение и т.д.).
- Открытие внешних HTTP(S)‑ссылок в браузере.
- Тёмная тема – автоматически подстраивается под системный режим, включая цвет статус‑бара.
- Интуитивный интерфейс – панели управления скрываются в режиме чтения, показываются по касанию.
- Защита от случайной перезаписи – кнопка «Сохранить» активна только при наличии реальных изменений.
- Индикатор загрузки при открытии книги и сохранении.
- Обработка системной кнопки «Назад» – корректно закрывает книгу и возвращает на главный экран, а также отменяет режим редактирования.
(будут добавлены позже)
- Откройте книгу – нажмите «Открыть книгу (EPUB)» и выберите файл в проводнике.
- Читайте – листайте страницы кнопками «<» и «>». Для отображения панелей управления коснитесь текста.
- Редактируйте – нажмите «Редактировать», вносите правки, затем «Закончить правку». Отмена изменений с помощью системной кнопки «Назад»
- Сохраните – если есть изменения, кнопка «Сохранить» станет активной. Нажмите её для перезаписи исходного файла или «Сохранить как…» для создания нового.
- Закрыть книгу – кнопка «Закрыть» или системная кнопка «Назад».
- Язык: 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 (зависимости)
└── ... # Прочие файлы
- Клонируйте репозиторий:
git clone https://github.com/lijspoop/bookexplorer.git
- Откройте проект в Android Studio.
- Синхронизируйте зависимости Gradle.
- Убедитесь, что у вас установлен Android SDK API 26+ (minSdk = 26).
- Запустите приложение на эмуляторе или физическом устройстве.
- Скачайте последний APK из раздела Releases и установите на устройство.
- При установке может потребоваться разрешить «Установку из неизвестных источников».
Приложение автоматически использует тёмную/светлую тему в зависимости от системных настроек.
Этот проект распространяется под лицензией BSD 3-Clause. См. файл LICENSE для подробностей.
Этот проект был написан с помощью DeepSeek — AI-ассистента, который помогал в разработке архитектуры, кода и документации.