Мобильное приложение для отслеживания привычек и задач. Тёмная тема, современный интерфейс, локальное хранение данных.
Построено на Expo (SDK 57) с файловой маршрутизацией expo-router.
| Экран | Маршрут | Статус | Описание |
|---|---|---|---|
| Привычки | / |
✅ Готово | Добавление привычек, отметка выполнения по дням, круговой прогресс за день и недельный календарь |
| Задачи | /tasks |
✅ Готово | Задачи с приоритетами, фильтрами (все / активные / выполненные), прогресс-баром и гибким расписанием: для каждого дня недели своё время и напоминание (за N минут) |
| Цели | /goals |
🚧 Заглушка | — |
| Дневник | /diary |
🚧 Заглушка | — |
| Аналитика | /analytics |
🚧 Заглушка | — |
Данные привычек и задач сохраняются локально через AsyncStorage и не теряются между запусками.
⚠️ Напоминания. Расписание задач сохраняется и отображается, но системные push-уведомления пока не отправляются — для этого нужен пакетexpo-notificationsи запуск на устройстве/эмуляторе (в вебе push не поддерживается).
- Expo SDK 57, React Native 0.86, React 19
- expo-router 6 — файловая навигация и табы
- TypeScript 6
react-native-svg— круговая диаграмма прогресса@react-native-async-storage/async-storage— локальное хранилище@react-native-picker/picker— выбор времени/напоминания
-
Установить зависимости (проект использует pnpm):
pnpm install
-
Запустить приложение:
pnpm start # выбор платформы в интерактивном меню pnpm ios # iOS-симулятор pnpm android # Android-эмулятор pnpm web # в браузере
Сборка нативного APK без облака. APK можно поставить прямо на телефон.
- Android Studio + Android SDK (переменная
ANDROID_HOME, обычно~/Library/Android/sdk) - JDK 17+ (проверено на JDK 21)
Один раз (или после изменения app.json / нативных зависимостей):
npx expo prebuild -p androidСоздаст папку android/ из конфигурации app.json.
cd android
./gradlew assembleReleaseГотовый файл появится тут:
android/app/build/outputs/apk/release/app-release.apk
Первая сборка долгая (~10–15 мин, компилируется нативный код). Повторные — быстрее за счёт кэша. APK подписан debug-ключом — для личной установки этого достаточно. Для Google Play нужен свой keystore и
./gradlew bundleRelease(.aab).
По USB (adb):
-
На телефоне включить режим разработчика: Настройки → «О телефоне» → 7 тапов по «Номер сборки».
-
Там же включить «Отладка по USB», подключить кабель, на телефоне нажать «Разрешить».
-
Проверить, что устройство видно (
device, неunauthorized):adb devices
-
Установить (флаг
-r— обновление поверх с сохранением данных):adb install -r android/app/build/outputs/apk/release/app-release.apk
adbлежит в$ANDROID_HOME/platform-tools/adb, если его нет вPATH.
Без кабеля: просто скинуть app-release.apk на телефон (мессенджер, облако) и открыть — Android попросит разрешить «Установку из неизвестных источников».
Перед пересборкой поднимите android.versionCode в app.json, затем повторите шаги 2–3.
app/ # экраны = маршруты (expo-router)
_layout.tsx # таб-навигация (тёмная тема, иконки)
index.tsx # экран «Привычки» (маршрут /)
tasks.tsx # экран «Задачи»
goals.tsx # заглушка «Цели»
diary.tsx # заглушка «Дневник»
analytics.tsx # заглушка «Аналитика»
src/
theme/theme.ts # единая тёмная тема (цвета, отступы, радиусы, шрифты)
components/
ScreenPlaceholder.tsx # переиспользуемая заглушка экрана
Вся палитра и токены дизайна централизованы в src/theme/theme.ts. Меняете значения там — обновляется весь интерфейс.