Беговой трекер для рынка СНГ — быстрый, минималистичный, с тёмным интерфейсом на русском языке.
RunTrack создан для бегунов в России и СНГ, которым нужен простой и быстрый трекер без лишних подписок и сложных настроек. Открыл — нажал СТАРТ — побежал.
| Функция | Статус |
|---|---|
| Таймер пробежки (СТАРТ / ПАУЗА / ПРОДОЛЖИТЬ) | ✅ Готово |
| Дистанция и темп в реальном времени | ✅ Готово |
| Анимированная кнопка со spring-эффектом | ✅ Готово |
| GPS-трекинг через expo-location | ✅ Готово |
| Экран итогов: карта маршрута, сплиты, калории | ✅ Готово |
| История пробежек (AsyncStorage, офлайн) | ✅ Готово |
| Свайп для удаления пробежки из истории | ✅ Готово |
| Tab-навигация (Бег / История / Статистика) | ✅ Готово |
| График дистанции по дням (барчарт) | ✅ Готово |
| График темпа по забегам (линейный) | ✅ Готово |
| Личные рекорды (темп / дистанция / серия) | ✅ Готово |
| Шеринг результатов (нативный Share) | ✅ Готово |
| Тёмный интерфейс, полностью на русском | ✅ Готово |
| Magic Link авторизация (Supabase) | ✅ Готово |
| Синхронизация пробежек с облаком | ✅ Готово |
| Шеринг карточки забега (PNG) | ✅ Готово |
| Русская локализация (i18n) | ✅ Готово |
| Уведомления и напоминания | 📋 Sprint 4 |
| Виджет на экран блокировки | 📋 Позже |
📸 Скриншоты будут добавлены после первого публичного релиза
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ RunTrack │ │ История │ │ Статистика │
│─────────────────────│ │─────────────────────│ │─────────────────────│
│ 00:42:17 │ │ Итого: 24.3 км │ │ [Неделя|Месяц|Всё] │
│ ВРЕМЯ │ │ 12 забегов │ │ │
│ │ │ 5:12 / лучший темп │ │ █ █ │
│ [4.8 км][5:47/км] │ │─────────────────────│ │ █ █ █ █ │
│ │ │ 23 марта 2026 │ │─────────────────────│
│ ╭─────╮ │ │ 5.2 км · 26:41 │ │ 🏆 5:12 /км │
│ │ПАУЗА│ │ │ 5:08 / км │ │ 📏 10.1 км │
│ ╰─────╯ │ │─────────────────────│ │ 🔥 4 за неделю │
│ [ ЗАВЕРШИТЬ ] │ │ 22 марта 2026 │ │ │
│ │ │ 3.0 км · 15:30 │ │ │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
🏃 Бег 📊 История 📈 Статистика
- React Native + Expo SDK 51 — кроссплатформенный UI (iOS + Android)
- TypeScript — строгая типизация, без
any - expo-location — GPS-трекинг в реальном времени
- react-native-maps — карта маршрута на экране итогов
- AsyncStorage — офлайн-хранилище истории пробежек
- victory-native — графики дистанции и темпа
- React Navigation — Tab + Stack навигация
# Клонировать репозиторий
git clone https://github.com/RudiFreeman/RunTrack.git
cd RunTrack
# Установить зависимости
npm install
# Запустить
npx expo start
# На телефоне: открыть Expo Go и отсканировать QR-кодRunTrack/
├── App.tsx # Точка входа, Tab + Stack навигация
├── src/
│ ├── components/
│ │ ├── HomeScreen.tsx # Экран бега (таймер, GPS, кнопки)
│ │ ├── StartButton.tsx # Анимированная кнопка СТАРТ/ПАУЗА
│ │ └── StatCard.tsx # Карточка: значение + подпись
│ ├── hooks/
│ │ ├── useRunTimer.ts # Точный таймер с паузой
│ │ └── useGPSTracker.ts # GPS-трекинг через expo-location
│ ├── navigation/
│ │ └── types.ts # Типы навигации (Tab, Stack)
│ ├── screens/
│ │ ├── SummaryScreen.tsx # Итоги забега: карта, сплиты, калории
│ │ ├── HistoryScreen.tsx # История забегов со свайпом удаления
│ │ └── StatsScreen.tsx # Статистика: графики, личные рекорды
│ ├── services/
│ │ ├── locationService.ts # haversine, расчёт темпа, форматирование
│ │ └── storageService.ts # CRUD для AsyncStorage
│ └── types/
│ └── index.ts # SavedRun, RunSession, Coordinate, Split
🚧 В активной разработке — Sprint 4 в процессе
Sprint 4 — финальный: аудит кода, исправление багов, онбординг, оптимизация GPS.
Полная история изменений → CHANGELOG.md
| Версия | Sprint | Что добавлено |
|---|---|---|
| 0.4.0 | Sprint 4 | Онбординг, GPS-сглаживание, аудит и багфиксы |
| 0.3.0 | Sprint 3 | Supabase Auth, облачная синхронизация, i18n |
| 0.2.0 | Sprint 2 | История, карта, графики, рекорды |
| 0.1.0 | Sprint 1 | GPS, таймер, базовый UI |
MIT