The hard part — Kora
You asked:
What was the hard part?
Making the Watch session reliable in a live class was the critical challenge.
I shipped the Watch app on WKExtendedRuntimeSession alone. It turns out that's not enough to keep the display lit or fire haptics once the watch's screen sleeps — which meant the one thing Kora absolutely cannot do, going dark mid-class, was exactly what it did for some early users. There's no acceptable failure mode for a timer a teacher can't look away from a room to fix. I re-architected the session around HKWorkoutSession — using HealthKit for its system-level privileges only, never reading or writing health data — and the complaints stopped. It's the kind of bug that only shows up once real instructors are actually teaching with it, which is exactly why it was the right one to take seriously.