RunCompanion
An AI-powered running coach that adapts to your sessions, syncs across every device, and connects to robot hardware over Bluetooth.
Overview
RunCompanion was built to solve one problem: static training plans don't work. Real training requires real feedback — adjusting Tuesday's long run based on Monday's effort, or shortening a session when recovery metrics are poor. RunCompanion does this automatically, using a lightweight AI function that analyses session data and returns an updated plan in real time.
Features
- Cross-platform Flutter app: iOS, Android, Windows, Web from one codebase
- Firebase Firestore real-time, offline-first sync
- BLE (Bluetooth Low Energy) connection to robot treadmill firmware
- AI-driven adaptive session planning via Firebase Cloud Functions
- Live pace, cadence, and heart-rate zone display
- Riverpod state management with watch-based reactivity
- Race countdown and interval training modes
Architecture
Presentation
Flutter widgets consume Riverpod providers. No business logic in the UI layer.
BLE Adapter
Isolated adapter that discovers GATT services and subscribes to treadmill speed, incline, and cadence characteristics.
Firestore Adapter
Real-time sync with optimistic local writes and automatic conflict resolution.
AI Function
Firebase Cloud Function that receives session metrics and returns updated training recommendations as structured JSON.