Skip to content

Harden and validate the CarPlay MVP #631

Description

@jubishop

What

Harden and validate the complete CarPlay MVP across lifecycle, accessibility, playback, failure, and vehicle-interface variations.

Why

A CarPlay audio experience must remain usable while the phone is locked, recover from connection and audio interruptions, and avoid leaving the driver with stale or blocked controls. Individual feature tests do not replace end-to-end validation of the assembled experience.

How

  • Exercise background-only and locked-phone cold launch, phone foreground transitions, CarPlay scene disconnect and reconnect, and repeated connection cycles.
  • Verify PodHaven never starts playback merely because CarPlay connects and never requires the phone to be unlocked for supported listening flows.
  • Cover network loss, cached playback, unavailable media, stale or deleted database rows, rapid repeated selection, cancelled loads, and audio-session interruption or reset.
  • Validate that all list and navigation hierarchies respect runtime template limits and remain usable across representative display shapes and touch, rotary, and touchpad input.
  • Verify light and dark appearance, concise labels and values, meaningful artwork fallbacks, selection/loading feedback, and clear reading order through the semantics CarPlay exposes.
  • Confirm the iPhone, widget, lock-screen, headphone, and CarPlay surfaces continue to share one playback state and remote-command registration.
  • Use CarPlay Simulator for representative manual flows and record any behavior that requires a physical vehicle or head unit as explicitly unverified rather than assuming it.
  • Run focused suites, formatting checks, and the warning-free My Mac build required by the repository.

Done when

  • Up Next, Episodes, Podcasts, and Now Playing pass an end-to-end CarPlay Simulator checklist.
  • Locked-phone cold launch, disconnect, reconnect, interruption, offline or cached playback, and failure recovery have concrete verification.
  • No flow autoplays on connection or requires foreground phone interaction.
  • Accessibility labels, values, actions, selection state, progress, and reading order are understandable without relying on artwork or color.
  • Existing non-CarPlay playback regressions remain green.
  • All touched Swift files pass swift-format and the final build has zero warnings.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions