Tier 2Native apps: tokens only. Video is stock AVPlayerViewController behind a resume UIAlertController. Audio is a UIKit screen: a UISlider, SF Symbol skips, Phosphor play/pause and the disco ball.--yellow-solid · --yellow-text-secondary · --solid · --text-secondary · --font-mono
Video is AVKit's; audio is the app's
AVPlayerViewController draws the whole video surface: glass transport, ±10s, scrubber, speed, AirPlay. put.io paints nothing on it.
A saved position opens an alert first: Continue watching or Start from the beginning.
The audio player shows the disco ball for every track, Berkeley Mono times (elapsed, speed, total), ±15s and an Up next card.
0:03
−42:57
AVPlayerViewControlleriOS 26 system chrome, untouched.
9:41
Movies
The.Wire.S03E04.Back.Burners.1080p.BluRay.x264-DEMAND.mkv
3.42 GB - 2 days ago
Seinfeld.S09E23.The.Finale.Part.2.720p.HDTV.x264-FLEET.mkv
1.17 GB - 5 days ago
Where would you like to start?
Last saved timestamp for this video is 00:32:11
Continue watching
Start from the beginning
Resume · UIAlertControllerShown when the file has a saved position. Actions take the window tint.
9:41
Now Playing
Disco ball
podcast_ep127_final_mixdown_v2.mp3
02:411×58:12
1515
Up next
Nothing queued
Now Playing · UIKitUISlider in --yellow-solid on --solid. Speed is a menu on the centre time label.
Video chrome
AVKit
presented, never rebuilt
Resume
alert
H:MM:SS position in the message
Artwork
disco ball
280pt, 1pt --border, every track
Title
GT America Md 22
the raw filename, two lines max
Slider
--yellow-solid
--solid track, system thumb
Times
Berkeley Mono Md 12
elapsed · speed · total
Transport
±15s · 66pt
SF skips --text-secondary, Phosphor play/pause --text
Up next
16pt card
1pt --border; “Nothing queued”
Contract: platforms/apple/DESIGN.md.
Do not ship a custom video player on Apple platforms. Rebuilding the transport to add one control loses PiP, the Lock Screen, CarPlay and the remote.