ReadlyBook — это современное Android-приложение для управления личной библиотекой книг с поддержкой чтения epub, pdf и txt-файлов и синхронизацией данных в облаке.
ReadlyBookExample.mp4
- 🔐 Аутентификация пользователей — вход и регистрация через Firebase Authentication
- 📖 Управление библиотекой — добавление, редактирование и удаление книг
- 📄 Чтение epub, pdf и txt — встроенный просмотрщик файлов
- ☁️ Облачное хранилище — синхронизация обложек и файлов через Firebase Storage
- 💾 Оффлайн-режим — локальное кэширование данных с помощью Room Database
- ✨ Анимации — плавные переходы и Lottie-анимации
- 🔍 Поиск книг — быстрый поиск по названию, автору и жанру
- 🔑 Поддержка автоматического входа
- Jetpack Compose — современный декларативный UI toolkit
- Material 3 — компоненты Material Design 3
- Navigation Compose — навигация между экранами
- Coil — загрузка и кэширование изображений
- Lottie — анимации в формате JSON от Airbnb
- Firebase Authentication — аутентификация пользователей
- Firebase Firestore — облачная NoSQL база данных
- Firebase Storage — хранилище файлов (обложки и файлов)
- Room Database — локальное хранилище данных
- Pdf-Viewer (
io.github.afreakyelf:Pdf-Viewer) — библиотека для отображения PDF-файлов
- Dagger 2 — внедрение зависимостей
- Kotlin Coroutines — асинхронное программирование
- WorkManager — фоновые задачи
git clone https://github.com/maxkeils/ReadlyBook.git
cd ReadlyBookДля работы приложения необходим файл google-services.json:
- Создайте проект в Firebase Console
- Добавьте Android-приложение с package name:
max.keils.readlybook - Включите следующие сервисы:
- Authentication (Email/Password)
- Firestore Database
- Storage
- Скачайте файл
google-services.json - Поместите его в папку
app/
ReadlyBook/
├── app/
│ ├── google-services.json ← Поместите файл сюда
│ └── ...
Приложение протестировано на: Pixel 9 Pro API 36
- Поддержка только epub, pdf и txt форматов
- Требуется подключение к интернету для первого входа
- Размер загружаемых PDF-файлов ограничен настройками Firebase Storage
- Сейчас приложение корректно функционирует только при включённом VPN — это связано с ограничениями доступа к Firebase.