Skip to content

Future: revisit CarPlay support (Driving Task companion) #1

Description

@burkben

Summary

Backlog/research item to revisit native CarPlay support for PokeRouter. For now we are intentionally shipping phone-only with handoff (Apple Maps / Google Maps / Tesla send-to-car). This issue captures the decision and the entitlement research so we don't have to re-derive it.

Current decision (2026-06-27)

Ship phone-only + handoff. No CarPlay entitlement requested. The in-car experience is:

  • Tesla → P4 send-to-car (this is the real in-Tesla path; see below).
  • Other cars → hand off the planned multi-stop route to Apple Maps or Google Maps.

The native CarPlay scene built in P5 (ios/PokeRouter/CarPlay/CarPlayController.swift) stays in the repo but dormant — it compiles and links without an entitlement, and only activates at runtime on a head unit if/when an entitlement is granted.

Key facts that drove the decision

  1. Tesla does not support CarPlay at all. Tesla's in-car system never loads CarPlay apps. Our headline use case ("send this route to a Tesla") never depended on CarPlay — P4 already delivers it. CarPlay only ever mattered for non-Tesla cars.

  2. Two relevant Apple entitlement tiers:

    Entitlement What it allows Review bar
    com.apple.developer.carplay-maps (Navigation) Full turn-by-turn, route line, own map on car screen Highest — reserved for real nav apps (Google Maps, Waze). A vending finder is very unlikely to be approved.
    Driving Task (com.apple.developer.carplay-driving-task) List / grid / POI-pin templates only. No map rendering, no turn-by-turn. Lower, but still reviewed. Meant for fuel/EV/parking/tolls/pickup. A Pokémon finder is novelty → plausible but not guaranteed.
  3. What a Driving Task scene could/couldn't do (if we ever pursue it):

    • ✅ Show an already-planned trip's "stops along the way to Home" as a list / POI pins (list content is app-controlled — not limited to "nearby only").
    • ✅ Offer preset destinations (Home / Work / favorites) tappable from the car → recompute corridor → show along-the-way stops.
    • No free-text destination entry on the car (keyboard blocked while moving; search template is Navigation-only).
    • No route polyline / turn-by-turn on the car screen (needs carplay-maps).
    • UX would be a split: phone = full planner (search, corridor tuning, map); CarPlay = companion view of a planned trip + presets; actual driving handed off to Apple Maps.

If/when we revisit — scope sketch

  • Enroll in Apple Developer Program ($99/yr) and request the Driving Task entitlement via Apple's CarPlay contact form (developer.apple.com/contact/carplay/), justifying the use case.
  • Refactor CarPlayController from the current map-based scene into Driving Task templates (CPListTemplate / CPGridTemplate / CPPointOfInterestTemplate) — no CPMapTemplate.
  • Add preset/favorite destinations (Home / Work) syncable phone → car so a trip can be (re)planned from the head unit.
  • Keep the phone planner as the source of truth; CarPlay reads the shared RouteStore.
  • Document the approval outcome; if denied, leave the scene dormant and keep phone-only handoff.

References

  • ios/README.md — entitlement playbook + honest gating caveat.
  • ios/PokeRouter/CarPlay/CarPlayController.swift — dormant CarPlay scene (P5).
  • P4 Tesla send-to-car — the real in-Tesla path.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions