Project Skebob — современное Android-приложение для получения, хранения и управления интересными фактами.
Использует Retrofit для работы с API, SQLite (локальная БД) для офлайн-доступа, реализует систему избранного, фильтрацию записей за 24 часа и живую статистику.
Интерфейс построен на Material Design и адаптирован под портретную и ландшафтную ориентации.
- 🔄 Загрузка случайных фактов из сети с сохранением в локальную базу
- ⭐ Добавление фактов в «Избранное» (защита от удаления)
- 🗑️ Удаление обычных фактов свайпом вправо
- 📊 Живая статистика: общее количество фактов, максимальная длина текста
- ⏱️ Фильтрация записей, добавленных за последние 24 часа
- 📱 Адаптивный дизайн для портретной и ландшафтной ориентации (двухпанельная верстка)
- 🗃️ Нижняя навигация: все факты / избранное
- 💾 Полная офлайн-работоспособность
- Язык: Kotlin
- Архитектура: MVVM
- Сеть: Retrofit, Coroutines
- БД: SQLite (с миграциями)
- UI: Material Design Components, RecyclerView, Swipe gestures
- Навигация: Bottom Navigation View
-
Клонируйте репозиторий
git clone https://github.com/An3step/Project_Skebob.git
-
Откройте проект в Android Studio
Рекомендуется версия Hedgehog или новее. -
Синхронизируйте Gradle
Дождитесь автоматической загрузки зависимостей (Retrofit, Coroutines, Material Components и др.). -
Запустите приложение
Подключите физическое устройство или запустите эмулятор (API level 24+). Нажмите Run (зелёный треугольник) в верхней панели IDE.
| Действие | Результат |
|---|---|
| Кнопка «Загрузить факт» | Получение случайного факта из сети с отображением в списке и сохранением локально. |
| Свайп вправо | Удаление обычного факта (без отметки «Избранное»). |
| Клик по элементу | Добавление/удаление факта в «Избранное» (появляется значок ⭐). |
| Нижняя навигация | Переключение между всеми фактами и только избранными. |
| Кнопка фильтра | Показывает только факты, добавленные за последние 24 часа. |
| Статистика (верх экрана) | Автообновление: общее количество фактов и максимальная длина текста в текущем списке. |
| Поворот устройства | Автоматическая смена раскладки на двухпанельный вид в ландшафтном режиме. |
Tip
Избранные факты нельзя удалить свайпом. Чтобы удалить такой факт — сначала снимите отметку «Избранное» простым нажатием.
Автор: Антон Степанов (An3step)
Разработка функционала:
- Архитектура MVVM
- Локальное хранилище SQLite и миграции БД
- Сетевой слой (Retrofit)
- Адаптивный UI (портрет / ландшафт)
- Интерактивные свайпы, навигация, агрегация статистики
Автор: Артём Наумчик (shoksin)
Разработка функционала:
- Unit тесты
- UI тесты
- GitHub Actions
- Firebase Test Lab
Проект распространяется под лицензией MIT.