Most heart rate apps have a small practical problem.
You start a workout, then the number disappears the moment you open music, maps, messages, or a workout video. The data is still being recorded, but it is not visible when you need it.
Zonas uses iPhone Picture-in-Picture to keep the current heart rate and zone visible after you leave the app.
What It Does
During an active workout, Zonas renders a compact floating strip. It shows:
- workout name
- elapsed time
- current zone
- current BPM
- five-zone bar
- active zone BPM boundaries
It is intentionally small. The point is not to recreate the whole workout screen. The point is to keep the key number visible.
How To Use It
- Connect a Bluetooth heart rate monitor or start from the Apple Watch companion app.
- Start a workout in Zonas.
- Tap the Picture-in-Picture control in the workout controls.
- Leave Zonas.
- Keep the floating strip on screen while you use another app.
- Return to Zonas or end the workout when you are done.
The control is available only when Picture-in-Picture is supported on the device.
What The Overlay Shows
The current implementation is a wide strip, roughly 3.5:1.
The left side shows the workout and timer. The center shows the current zone. The right side shows BPM. The bottom shows a five-part zone bar. When you are in a zone, Zonas draws that zone’s lower and upper BPM boundaries around the active segment.
That is enough to answer the workout question quickly:
Am I where I want to be?
PiP And Live Activities
Zonas also supports Live Activities and Dynamic Island.
In the current workout UI, Picture-in-Picture and Live Activity are mutually exclusive. If Live Activity is on and PiP is also enabled, Live Activity wins and PiP is turned off.
That keeps the behavior simple. One always-visible surface at a time.
Why It Uses The System PiP Surface
Zonas does not draw a fake overlay on top of other apps. iOS does not allow ordinary apps to do that.
Instead, Zonas uses the system Picture-in-Picture API. The app renders the live workout state into a sample-buffer display layer, then gives that layer to AVPictureInPictureController.
That is the core trick. It is still the system PiP surface, but the content is heart rate and zone data instead of a video.
Privacy
The PiP strip is local.
Heart rate comes from your connected monitor or Apple Watch workout session. Zone calculation happens on device. The rendered strip is produced on device. There is no Zonas account or server involved in making the overlay work.
If you are using PiP in public, remember that the floating window is visible on your screen. That is a screen privacy issue, not a data upload issue.
Common questions
Does the Zonas PiP overlay play audio or video?
No. Zonas renders a live workout strip into the system Picture-in-Picture surface. It configures audio so the PiP session can exist without interrupting music or workout audio.
Can I use Picture-in-Picture and Live Activities at the same time?
In the current app, those controls are mutually exclusive during the workout. If both are enabled, Live Activity wins and PiP is turned off.
What appears in the overlay?
The overlay shows the workout name, elapsed time, current zone, BPM, and a five-segment zone bar. When a zone is active, Zonas also shows that zone's lower and upper BPM bounds.
Does the overlay upload my heart rate anywhere?
No. The overlay is rendered on device from the active workout state. The app does not use an account, cloud sync, app analytics, or a server to make PiP work.
Sources
- AVPictureInPictureController
Apple's system API for controlling Picture in Picture and checking whether PiP is supported.
- AVPictureInPictureController.ContentSource
The app uses a sample-buffer display layer content source for its live rendered PiP strip.
- Multitask with Picture in Picture on iPhone
User-facing Picture in Picture behavior on iPhone while using other apps.