Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Habit Tracker 🌱

Мобильное приложение для отслеживания привычек и задач. Тёмная тема, современный интерфейс, локальное хранение данных.

Построено на 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 — выбор времени/напоминания

Запуск

  1. Установить зависимости (проект использует pnpm):

    pnpm install
  2. Запустить приложение:

    pnpm start          # выбор платформы в интерактивном меню
    pnpm ios            # iOS-симулятор
    pnpm android        # Android-эмулятор
    pnpm web            # в браузере

Сборка Android APK (локально)

Сборка нативного APK без облака. APK можно поставить прямо на телефон.

Требования

  • Android Studio + Android SDK (переменная ANDROID_HOME, обычно ~/Library/Android/sdk)
  • JDK 17+ (проверено на JDK 21)

1. Сгенерировать нативный проект

Один раз (или после изменения app.json / нативных зависимостей):

npx expo prebuild -p android

Создаст папку android/ из конфигурации app.json.

2. Собрать APK

cd android
./gradlew assembleRelease

Готовый файл появится тут:

android/app/build/outputs/apk/release/app-release.apk

Первая сборка долгая (~10–15 мин, компилируется нативный код). Повторные — быстрее за счёт кэша. APK подписан debug-ключом — для личной установки этого достаточно. Для Google Play нужен свой keystore и ./gradlew bundleRelease (.aab).

3. Установить на телефон

По USB (adb):

  1. На телефоне включить режим разработчика: Настройки → «О телефоне» → 7 тапов по «Номер сборки».

  2. Там же включить «Отладка по USB», подключить кабель, на телефоне нажать «Разрешить».

  3. Проверить, что устройство видно (device, не unauthorized):

    adb devices
  4. Установить (флаг -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. Меняете значения там — обновляется весь интерфейс.

Полезные ссылки

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages