Skip to content

Releases: sprobst76/VibedKickr

v1.4.0 - Guten Morgen Training

05 Feb 06:18

Choose a tag to compare

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_scores Tabelle fΓΌr Recovery-Daten
  • flutter_local_notifications und timezone Dependencies
  • Android: Core Library Desugaring aktiviert, Notification-Berechtigungen
  • 7 neue Dateien, 5 modifizierte Dateien

VibedKickr v1.3.0 - BLE Reconnection System

03 Feb 19:51

Choose a tag to compare

πŸš€ 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

02 Feb 05:30

Choose a tag to compare

πŸŽ‰ 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 access
  • WorkoutSchedulerPage - Main scheduler page with calendar and list
  • WeekCalendarView - 7-day grid showing workouts for current week
  • ScheduledWorkoutList - List of pending workouts with date/time
  • ScheduleWorkoutDialog - 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 DatePickerThemeData and TimePickerThemeData
  • 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 ScheduledWorkouts table
  • Fields: id, workoutId, workoutType, scheduledDate, scheduledTimeMinutes, status, completedSessionId, createdAt
  • ScheduledWorkoutDao with full CRUD and query operations
  • Performance indexes on common queries

Domain Layer

  • ScheduledWorkout entity (Freezed immutable class)
  • ScheduledWorkoutStatus enum (pending/completed/skipped)
  • ScheduledWorkoutRepository interface

Data Layer

  • ScheduledWorkoutMapper for entity ↔ domain conversions
  • ScheduledWorkoutRepositoryImpl with async mapping

Riverpod State Management

  • scheduledWorkoutRepositoryProvider - Data access layer
  • scheduledWorkoutsProvider - All workouts stream
  • pendingScheduledWorkoutsProvider - Pending workouts only
  • todayScheduledWorkoutsProvider - Today's workouts
  • weekScheduledWorkoutsProvider - Current week's workouts

πŸ“¦ Downloads

  • VibedKickr-v1.2.2.apk (68 MB) - Full release APK with all features and bug fixes

πŸ”§ Installation

  1. Download VibedKickr-v1.2.2.apk from this release
  2. Enable "Unknown sources" in Android Settings > Security
  3. Install by opening the APK file on your Android device
  4. 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

01 Feb 19:35

Choose a tag to compare

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

01 Feb 14:06

Choose a tag to compare

πŸ₯ 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

⚠️ Overtraining Prevention

  • 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 ⚠️ Warning >10% above baseline for 3+ days Rest, hydration, sleep
Wellness Declining ⚠️ Warning 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 support
  • HealthWarning - Warning system with severity levels
  • HealthModeUseCase - Enum supporting 3 use cases
  • ComebackProtocolPhase - Phase progression model

Service Layer:

  • HealthModeService - Service with automatic data migration
  • Migration from old comeback_mode SharedPreferences key
  • HealthModeNotifier - Riverpod state management

Presentation Layer:

  • HealthModeSetupPage - Use-case selection and configuration
  • HealthModeStatusCard - Use-case adaptive status display
  • HealthWarningBanner - 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

  1. User updates from v0.9.0 to v0.10.0
  2. App launches and detects old "Comeback Mode" data
  3. Automatically migrates to new HealthMode format
  4. Defaults to "Comeback After Illness" use case
  5. All existing data and progress preserved
  6. No action required from user

πŸ“‹ Route Changes

  • /comeback β†’ /health-mode (update any deep links)

πŸ”— Related


Version: 0.10.0
Release Date: 2026-02-01
Status: Production Ready

v0.9.0

01 Feb 12:00

Choose a tag to compare

Full Changelog: v1.2.0...v0.9.0

v0.9.0-beta

30 Jan 06:39

Choose a tag to compare

v1.1.1

07 Jan 12:06

Choose a tag to compare

Full Changelog: v0.1.0...v1.1.1

VibedKickr v1.0.0 - Complete Multi-Activity Health Training System

01 Feb 18:31

Choose a tag to compare

πŸŽ‰ 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