Files
WerkoutIOS/docs/step8_performance_state_round1.md

1.7 KiB

Step 8 Performance/State Round 1

Coverage

  • Reviewed and patched:
    • iphone/Werkout_ios/DataStore.swift
    • iphone/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift
    • iphone/Werkout_ios/Views/WorkoutDetail/ExerciseListView.swift
    • WekoutThotViewer/WekoutThotViewer/ContentView.swift
    • iphone/Werkout_ios/BridgeModule.swift
    • iphone/Werkout_ios/BridgeModule+Watch.swift
    • iphone/Werkout_ios/BridgeModule+Timer.swift
    • iphone/Werkout_watch Watch App/WatchWorkout.swift
  • Validation run:
    • ./scripts/smoke/smoke_all.sh

Fixes

  1. Coalesced concurrent fetchAllData requests

    • DataStore now queues completion handlers while a fetch is active to prevent overlapping network fan-out and state churn.
  2. Reduced AVPlayer churn in iOS workout detail

    • Reuses current player for same URL by seeking to start instead of recreating AVPlayer each time exercise/video updates.
  3. Reduced AVPlayer churn in iOS exercise preview sheet

    • Added preview URL tracking; same URL now replays without allocating a new player.
  4. Reduced AVPlayer churn in tvOS content loop

    • Same URL replay now seeks/replays existing player rather than recreating.
  5. Capped queued watch messages on iOS bridge

    • Added queue cap to prevent unbounded growth while watch is disconnected.
  6. Added queue fallback for send failures

    • Failed reachable send now re-queues payload for later delivery.
  7. Improved timer power behavior

    • Added timer tolerance to workout/exercise timers.
  8. Fixed watch heart-rate loop early-return behavior

    • Non-heart sample types now continue instead of exiting handler early.

Validation

  • Smoke suite passed:
    • token scan
    • SharedCore tests
    • iOS/watchOS/tvOS builds