Современное Android-приложение для учета прочитанных книг, отслеживания целей и ведения дневника цитат. Проект разработан в рамках учебного курса "Mobile Application Development" (НИУ ВШЭ).
- Управление библиотекой: Разделение книг на "Читаю сейчас" и "Прочитано".
- Интерактивный прогресс: Плавный Slider для обновления страниц с защитой от случайного уменьшения прогресса и анимацией "On Fire!".
- Дневник заметок: Возможность сохранять цитаты и мысли, привязанные к конкретным книгам, с удобной фильтрацией.
- Система целей: Постановка краткосрочных целей с архивом выполненных достижений.
- Глубокая статистика: Визуализация недельной активности (Bar Chart), подсчет стрика (серии дней), общего количества страниц и цитат.
- Обратная связь: Встроенная система In-app Rating для сбора фидбека (CSI/NPS).
- Язык: Kotlin
- UI: Jetpack Compose (Material 3)
- Архитектура: MVVM (Model-View-ViewModel)
- База данных: Room (локальное хранение всех данных)
- Навигация: Compose Navigation
- Анимации: Compose Animation (огоньки, плавные переходы)
Приложение спроектировано с учетом ключевых метрик качества:
Используется паттерн MVVM. Слой данных (Room) полностью отделен от UI. Бизнес-логика сосредоточена в ReadingViewModel.
В проекте реализованы модульные тесты (ReadingLogicTest.kt), проверяющие корректность расчетов прогресса и логику бизнес-процессов.
Реализована вкладка Metrics, которая в реальном времени отслеживает:
- Performance: Время запуска и задержки UI.
- Stability: Crash-free rate и ошибки БД.
- Memory: Использование Heap памяти.
Реализован In-app Rating Overlay, который автоматически запрашивает отзыв у пользователя и позволяет редактировать его позже на вкладке статистики.
Приложение полностью готово к работе, использует Room для сохранения состояния после перезагрузки и может быть запущено на любом Android устройстве (SDK 24+).
- Откройте проект в Android Studio (Ladybug или новее).
- Выполните Gradle Sync, чтобы загрузить зависимости (Room, Navigation, KSP).
- Нажмите Run для запуска на эмуляторе или физическом устройстве.
Чтобы запустить тесты:
- Нажмите правой кнопкой на папку
src/test/java. - Выберите Run 'Tests in...'.