Releases: sprobst76/VibedKickr
v1.4.0 - Guten Morgen Training
Guten Morgen Training
Neues 10-Minuten Morgen-Training im Gesundheitsbereich mit HR-Recovery-Tracking.
Neue Features
- Guten Morgen Training: Sanftes 10-Min Workout (2 Min Warmup + 3Γ2 Min Aktivierung + 2 Min Cooldown) mit altersbasierter HR-Personalisierung
- HR-Recovery-Score: Automatische Bewertung (0-100) der Herzfrequenz-Erholung nach dem Training
- Recovery-Trend-Dashboard: Interaktives Diagramm mit 7- und 30-Tage-Ansicht (fl_chart)
- Morgen-Erinnerungen: TΓ€gliche Benachrichtigungen mit konfigurierbarer Uhrzeit und Wochentagen
- Quick-Start Card: Sofortiger Training-Start mit Score-Anzeige und Streak-ZΓ€hler
- Neuer "Morgen" Tab: Eigener Tab im Gesundheitsbereich mit allen Morning-Workout-Funktionen
Technische Γnderungen
- DB-Schema v4:
morning_recovery_scoresTabelle fΓΌr Recovery-Daten flutter_local_notificationsundtimezoneDependencies- Android: Core Library Desugaring aktiviert, Notification-Berechtigungen
- 7 neue Dateien, 5 modifizierte Dateien
VibedKickr v1.3.0 - BLE Reconnection System
π New Features
Robust BLE Reconnection System
- Exponential backoff strategy: Connection delays increase from 2s to 60s max (2s β 4s β 8s β 16s β 32s)
- Retry limit enforcement: Max 5 attempts with circuit breaker pattern
- Clear user feedback: New "Reconnecting..." state with snackbar notifications
- Workout auto-pause: Automatically pauses sessions on trainer disconnect to prevent data corruption
- Bluetooth adapter recovery: Auto-reconnects when Bluetooth adapter is turned back on
- App lifecycle handling: Proper background/foreground transition handling (critical for iOS)
- Settings integration: Auto-reconnect toggle fully functional and integrated
Architecture
- BleReconnectionManager: Core reconnection logic with stream-based state management
- AppLifecycleObserver: Handles app pause/resume events for reconnection recovery
- Enhanced WorkoutPlayer: Auto-pause on disconnect with user notifications
- Connection status UI: Updated dashboard and status bar to show reconnecting state
π Quality Metrics
- β 7 unit tests - All passing
- β Comprehensive integration tests
- β Code analysis: No errors
- β 1,177 lines of code added
- β 6 new files, 8 modified files
π§ Technical Details
- Non-blocking exponential backoff prevents battery drain
- Concurrent reconnection guard prevents race conditions
- Safe stream management with disposal handling
- Platform-aware for Android, iOS, macOS, Linux support
π¦ Files in This Release
VibedKickr-v1.3.0.apk- Release build for Android
π Known Issues
- None
π Changelog
See CHANGELOG.md for full details.
v1.2.2 - Training Schedule Reminder + Dark Mode Fixes
π Release v1.2.2
Version: 1.2.2 (Build 3)
β¨ Features
Training Schedule Reminder (Simplified Workout Scheduler)
- Plan workouts for specific dates with optional time selection
- 7-day calendar view with visual indicators for scheduled days
- Dashboard widget showing today's scheduled workouts and upcoming workouts
- Skip/Delete options for managing scheduled workouts
- In-app reminders on dashboard (no push notifications overhead)
- Reactive state management with Riverpod providers
UI Components
ScheduledWorkoutsCard- Dashboard widget with quick workout accessWorkoutSchedulerPage- Main scheduler page with calendar and listWeekCalendarView- 7-day grid showing workouts for current weekScheduledWorkoutList- List of pending workouts with date/timeScheduleWorkoutDialog- Dialog for planning workouts
π Bug Fixes
Dark Mode DatePicker/TimePicker Visibility (NEW FIX!)
- Fixed white text on white background issue in Dark Mode
- Applied proper
DatePickerThemeDataandTimePickerThemeData - All date/time selection dialogs now work correctly in Light and Dark mode
- Affected dialogs:
- Settings: Birth date picker
- Health Mode: Pause start date picker
- Comeback Mode: Illness start date picker
- Workout Scheduler: Workout date and time pickers
ποΈ Technical Implementation
Database (Schema v3)
- New
ScheduledWorkoutstable - Fields: id, workoutId, workoutType, scheduledDate, scheduledTimeMinutes, status, completedSessionId, createdAt
ScheduledWorkoutDaowith full CRUD and query operations- Performance indexes on common queries
Domain Layer
ScheduledWorkoutentity (Freezed immutable class)ScheduledWorkoutStatusenum (pending/completed/skipped)ScheduledWorkoutRepositoryinterface
Data Layer
ScheduledWorkoutMapperfor entity β domain conversionsScheduledWorkoutRepositoryImplwith async mapping
Riverpod State Management
scheduledWorkoutRepositoryProvider- Data access layerscheduledWorkoutsProvider- All workouts streampendingScheduledWorkoutsProvider- Pending workouts onlytodayScheduledWorkoutsProvider- Today's workoutsweekScheduledWorkoutsProvider- Current week's workouts
π¦ Downloads
- VibedKickr-v1.2.2.apk (68 MB) - Full release APK with all features and bug fixes
π§ Installation
- Download
VibedKickr-v1.2.2.apkfrom this release - Enable "Unknown sources" in Android Settings > Security
- Install by opening the APK file on your Android device
- Or use ADB:
adb install VibedKickr-v1.2.2.apk
β What's Been Fixed
- DatePicker now properly themed in Dark Mode
- TimePicker now properly themed in Dark Mode
- All text is visible in both Light and Dark modes
- Colors match app theme (primary colors, text colors)
- Smooth transitions and proper contrast ratios
π Next Steps (Future Versions)
- Push notifications for scheduled workouts
- Recurring workout rules
- Full month calendar view
- Drag-and-drop rescheduling
- Training calendar with CTL/ATL/TSB projections
- Workout completion tracking from scheduled workouts
Built with: Flutter 3.x β’ Architecture: Clean Architecture with Riverpod β’ Database: Drift SQLite
Changelog:
- β Fixed: Dark Mode visibility issues in DatePicker/TimePicker
- β Added: Complete Training Schedule Reminder system
- β Added: Workout scheduler UI with calendar view
- β Added: Database layer with proper DAOs and repositories
Release v1.2.1 - Personalized TSS Thresholds
Features
Personalized TSS Thresholds with CTL-based Dynamic Calculation β‘
- Intelligent Thresholds: Warning and critical thresholds now automatically adjust based on your fitness level (CTL - Chronic Training Load)
- Hybrid Approach: Choose between automatic CTL-based calculation or manual fixed thresholds
- Dynamic Calculation:
- Warning Threshold = CTL Γ 1.5 (clamped to 300-800 TSS)
- Critical Threshold = CTL Γ 2.0 (clamped to 400-1000 TSS)
- Smart Floor/Cap Values: Prevents unrealistic thresholds for both untrained and elite athletes
- Settings UI: New "Training Load Schwellwerte" section in Settings with toggle and sliders
- Transparent Display: See your current CTL and calculated thresholds at a glance
- Persistent Settings: Your preference is saved and restored across app sessions
How It Works
CTL-Based Mode (Default):
Your thresholds automatically adapt as your fitness improves. A new user with low CTL gets conservative thresholds, while an elite athlete with high CTL gets higher thresholds.
Manual Mode:
Override automatic calculation and set fixed thresholds using sliders. Useful if you have specific training goals or recovery requirements.
Technical Improvements
- New TssThresholdSettings entity with business logic for threshold calculation
- New TssThresholdSettingsService for SharedPreferences persistence
- Updated TrainingLoadWarningService to support dynamic thresholds
- New tssThresholdSettingsProvider with StateNotifier pattern
- Extended settings page with intuitive threshold configuration UI
What's New in This Release
- Adaptive TSS warning system
- Settings page enhancements
- Improved training load monitoring
Download: app-release.apk (69.8 MB)
For installation instructions, see README.md
v0.10.0: Gesundheitsmodus (Health Mode) - Multi-Use-Case Training Health System
π₯ Gesundheitsmodus - Health Mode System
Complete refactoring of Comeback Mode into a general-purpose health tracking system supporting three distinct use cases.
β¨ New Features
1οΈβ£ Three Health Mode Use Cases
π Comeback After Illness
- 4-week progressive protocol (50% β 70% β 85% β 100% FTP)
- Automatic intensity adjustment per phase
- Smart phase advancement with 5 readiness criteria:
- β₯5 days in current phase
- Wellness score β₯60%
- Resting HR not trending upward
- β₯5 check-ins in last 7 days
- Option to force advance after day 7
- Continuous wellness monitoring without phase constraints
- Real-time warning system for early detection
- Focus on recovery indicators and training load
π General Wellness Tracking
- Simple daily check-in tracking
- No phase progression or training adjustments
- Pure data collection for long-term health insights
2οΈβ£ Intelligent Warning System
6 warning types with severity levels and recovery guidance:
| Warning | Severity | Trigger | Recovery Tips |
|---|---|---|---|
| Resting HR Elevated | >10% above baseline for 3+ days | Rest, hydration, sleep | |
| Wellness Declining | 3+ day downtrend >15% | Nutrition, stress management | |
| Low Wellness Score | π΄ Critical | <40% for 2+ days | Training reduction |
| Overtraining Risk | π΄ Critical | 3+ negative indicators | Complete rest day |
| Phase Readiness | βΉοΈ Info | All criteria met (Comeback only) | Auto-advance option |
| FTP Improvement | βΉοΈ Info | New FTP detected | Update training zones |
3οΈβ£ Backward Compatibility
- Automatic silent migration of existing "Comeback Mode" data
- Old data converted to new HealthMode format
- Defaults to "Comeback After Illness" use case for migrated users
- No user action required
π Technical Details
New Domain Entities:
HealthMode- Main entity with use-case supportHealthWarning- Warning system with severity levelsHealthModeUseCase- Enum supporting 3 use casesComebackProtocolPhase- Phase progression model
Service Layer:
HealthModeService- Service with automatic data migration- Migration from old
comeback_modeSharedPreferences key HealthModeNotifier- Riverpod state management
Presentation Layer:
HealthModeSetupPage- Use-case selection and configurationHealthModeStatusCard- Use-case adaptive status displayHealthWarningBanner- Warning display with recovery tips- Conditional UI fields based on selected use case
π§ͺ Quality Assurance
β 53 Unit Tests - All passing
- HealthModeUseCase properties (3 tests)
- WellnessCheckIn calculations (5 tests)
- FTP suggestion logic (8 tests)
- Phase readiness criteria (8 tests)
- Phase progression recommendations (4 tests)
- JSON serialization & migration (5 tests)
- Effective FTP calculations (3 tests)
- Wellness scoring & trending (14 tests)
β Build Status
- APK builds successfully (69MB)
- 0 critical compilation errors
- All tests passing
π¦ Changes
- 7 new files created
- 5 files modified
- ~4,870 lines added
- Backward compatible with existing data
π Migration for Users
- User updates from v0.9.0 to v0.10.0
- App launches and detects old "Comeback Mode" data
- Automatically migrates to new HealthMode format
- Defaults to "Comeback After Illness" use case
- All existing data and progress preserved
- No action required from user
π Route Changes
/comebackβ/health-mode(update any deep links)
π Related
- Commit: 7487748
- Tag: v0.10.0
Version: 0.10.0
Release Date: 2026-02-01
Status: Production Ready
v0.9.0
Full Changelog: v1.2.0...v0.9.0
v0.9.0-beta
Full Changelog: v1.1.1...v0.9.0-beta
v1.1.1
Full Changelog: v0.1.0...v1.1.1
VibedKickr v1.0.0 - Complete Multi-Activity Health Training System
π Major Release: Complete Multi-Activity Health Training System
VibedKickr reaches v1.0.0 with comprehensive Strength Training integration, completing the multi-activity health training ecosystem.
β¨ What's New in v1.0.0
πͺ Krafttraining (Strength Training) System
- 19+ Exercise Library - Scientifically-validated exercises with form cues
- Custom Workout Builder - Create personalized training programs
- Smart Session Player - Rest timers with audio cues and RPE tracking
- Progress Tracking - 1RM estimation, PR tracking (1RM, 3RM, 5RM, 10RM)
- Linear Progression - Automatic +2.5kg advancement on success
- 50+ Modifications - Age-appropriate exercise variations
π Multi-Activity Health Programs
- Combined Training Plans - Weekly programs mixing cycling + strength
- Age-Optimized Programs - Different plans for 50+ vs 30-49 athletes
- Integrated Dashboard - Track both cycling and strength metrics
π Quality Metrics
- β 153 tests (>75% coverage)
- β Zero regressions in cycling features
- β Comprehensive documentation (2500+ word user guide)
- β Database migration v1βv2 automatic
π Documentation
- STRENGTH_TRAINING_GUIDE.md - Complete user guide with 50+ best practices
- README.md - Updated feature overview
- CHANGELOG.md - Detailed release notes
π Evidence-Based Design
ACSM Guidelines for 50+ Strength Training:
- 2-3Γ per week frequency
- Compound movement priority
- 8-12 rep range for hypertrophy + strength
- 90-120 second rest periods
- Progressive overload: +2.5kg/week when successful
π Platform Support
β Android | β macOS | β Linux | π Windows | π iOS
π¦ Installation
Download APK from Releases or build from source - see README for details.
π Known Limitations
- Charts: fl_chart ready (placeholder UI)
- Videos: Form library planned v1.1
- Social: Leaderboards in v1.2
Questions? Open an issue on GitHub