카카오내비를 CarPlay와 Android Auto의 메인 디스플레이·대시보드·클러스터에 동시 제공하며 두 플랫폼의 lifecycle·template 제약을 다룬 개발기다. 운전 안전을 위한 제한된 UI와 여러 화면, 차량 제조사별 차이를 어떻게 공통 모듈과 어댑터로 흡수했는지 보여준다.
핵심 포인트- iOS는 main·dashboard·cluster마다 CPTemplateApplicationScene delegate가 붙어 willConnect에서 window·interface controller를 받고, 각 scene의 lifecycle과 reconnect를 독립 처리
- Android는 CarAppService를 entry point로 Session이 lifecycle과 root Screen을 만들고 Screen이 허용된 template만 반환하는 등 Activity 중심 구조와 다른 framework contract를 따른다
- guidance helper가 speed·sign·rest area·maneuver를 domain 형태로 가공하고 각 view model이 필요한 subset만 observe해 multi-display에 전달하며, route·guidance 로직은 shared domain/data 모듈로 두고 CarPlay·Android Auto 어댑터만 분리
왜 읽나하나의 navigation 도메인을 차량용 두 플랫폼과 다중 디스플레이에 이식하려는 개발자에게 lifecycle·template·test matrix까지 아우르는 실전 지도.