Skip to content

Repository files navigation

Reading Tracker (ReadingActivities)

Современное 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 (огоньки, плавные переходы)

Соответствие критериям оценки (Self-Check)

Приложение спроектировано с учетом ключевых метрик качества:

1. Архитектура

Используется паттерн MVVM. Слой данных (Room) полностью отделен от UI. Бизнес-логика сосредоточена в ReadingViewModel.

2. Структурированное тестирование

В проекте реализованы модульные тесты (ReadingLogicTest.kt), проверяющие корректность расчетов прогресса и логику бизнес-процессов.

3. Количественные метрики

Реализована вкладка Metrics, которая в реальном времени отслеживает:

  • Performance: Время запуска и задержки UI.
  • Stability: Crash-free rate и ошибки БД.
  • Memory: Использование Heap памяти.

4. Сбор фидбека

Реализован In-app Rating Overlay, который автоматически запрашивает отзыв у пользователя и позволяет редактировать его позже на вкладке статистики.

5. Продуктивность

Приложение полностью готово к работе, использует Room для сохранения состояния после перезагрузки и может быть запущено на любом Android устройстве (SDK 24+).


Как запустить

  1. Откройте проект в Android Studio (Ladybug или новее).
  2. Выполните Gradle Sync, чтобы загрузить зависимости (Room, Navigation, KSP).
  3. Нажмите Run для запуска на эмуляторе или физическом устройстве.

Тестирование

Чтобы запустить тесты:

  • Нажмите правой кнопкой на папку src/test/java.
  • Выберите Run 'Tests in...'.

About

Android application for book reading tracking.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages