# Changelog Notable changes to `screen_cast`. Loosely follows [Keep a Changelog]. ## [Unreleased] ### Added - **Phase 9 — iOS receiver app** (`ios/`): a native Swift receiver so an iPhone can act as the second receiver. Speaks the existing signaling + RTP protocol (no C++ changes), mirroring the Android receiver (Phase 8) source-to-source. - RTP core (header/packet, jitter buffer, H.264 depacketizer) ported source-to-source from the Android receiver. - BSD-socket signaling server (dual-stack, most-recent-peer, never-throwing sends) + `NSBonjourServices` advertisement. - VideoToolbox H.264 decode (in-band SPS/PPS, real-time, session rebuilt on resolution change) rendered via `AVSampleBufferDisplayLayer` (letterbox). - PLI keyframe recovery (rate-limited 500 ms) and `pendingOffer` for late surface attach; no placeholder sizing before the first real keyframe. - XcodeGen project + `bootstrap.sh`; XCTest port of the Android suite plus new signaling / line-framing / AVCC / NAL-extraction coverage. > **Status:** authored; on-device validation pending a Mac + Xcode 26 + iPhone 16 > (local-network/Bonjour consent, the H.264 format-description recipe, and the > VideoToolbox render path are the on-device verification items). [Keep a Changelog]: https://keepachangelog.com/en/1.1.0/