Car App — aplikace pro automobilový informačně-zábavní systém, integrovatelná s Apple CarPlay a Android Auto. CarPlay — technologie Apple zobrazující rozhraní iPhone na obrazovce automobilu a ovládaná přes Siri, dotykovou obrazovku nebo tlačítka na volantu. Android Auto — obdobná technologie Google pro Android smartphony. Vývoj Car App zahrnuje vytvoření aplikace ve Swift s CarPlay framework a SiriKit pro iOS, a v Kotlin s Car App Library, MediaBrowserService a NavigationManager pro Android. Podpora Car App se stává standardem pro moderní automobily — podle Apple podporuje CarPlay 98% nových automobilů v USA a Android Auto je dostupný ve více než 200 modelech.
Hlavní body
Car App — je aplikace, která pracuje v automobilovém informačně-zábavním systému (IVI) prostřednictvím projekce smartphonu — Apple CarPlay pro iOS a Android Auto pro Android. Na rozdíl od Android Automotive OS (vestavěný OS v automobilu), CarPlay a Android Auto jsou rozšíření mobilní aplikace, která běží na telefonu a promítají rozhraní na obrazovku automobilu. Car App je vaše stávající iOS/Android aplikace, která implementuje protokoly CarPlay nebo Android Auto.
Klíčové kategorie Car App: navigace (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), zprávy (hlasité čtení a diktování přes Siri/Google Assistant), automobilové funkce (nabíjení EV, parkování, stav automobilu), VOIP hovory (WhatsApp, Zoom). Každá kategorie má svou vlastní šablonu rozhraní — ListTemplate, MapTemplate, AudioTemplate. Systém sám určuje, kterou kategorii aplikace podporuje na základě registrovaných Intents.
Omezení Car App: Apple a Google přísně kontrolují UX kvůli bezpečnosti — minimální počet prvků, velká tlačítka (minimálně 48x48 pt), žádný vstup textu (pouze hlas), automatické ztmavení rozhraní při pohybu, zákaz videa. Doba reakce na dotyk musí být kratší než 100 ms. Všechny aplikace procházejí povinnou moderací (App Review pro CarPlay, Google Play Console + CTS pro Android Auto).
CarPlay framework (dříve CPKit) — framework Apple pro vytváření CarPlay aplikací ve Swift. Klíčová třída — CPInterfaceController, který spravuje navigaci mezi šablonami. CPInterfaceController obsahuje zásobník šablon: CPListTemplate (seznamy), CPMapTemplate (navigace), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (hlasové ovládání). CPListTemplate obsahuje CPListItem — položky seznamu s ikonou, textem a akcí.
SiriKit pro CarPlay — rozšíření SiriKit pro hlasové ovládání aplikace v automobilu. Aplikace registruje Intents (INPlayMediaIntent — přehrávání, INStartWorkoutIntent — cvičení, INSendMessageIntent — zprávy). Siri se automaticky aktivuje při připojení CarPlay a je dostupná přes tlačítko hlasového ovládání na volantu. SiriKit CarPlay podporuje CarPlay Dashboard — widgety na hlavní obrazovce CarPlay pro zobrazení informací z aplikace (cíl, aktuální skladba).
Proces připojení CarPlay: iPhone se připojuje k automobilu přes Lightning/USB-C kabel nebo bezdrátově (CarPlay Wireless, od iOS 9). Po připojení iOS automaticky spustí CarPlay relaci, pokud aplikace implementuje CPApplicationDelegate. Vývojář nespravuje okamžik připojení — systém volá delegate metody při startu a ukončení relace. CarPlay podporuje multitasking: navigace běží na pozadí při přepnutí na hudbu a hlasové pokyny nadále znějí.
Android Car App Library — Android knihovna pro vytváření aplikací kompatibilních s Android Auto. Základní komponenty: CarAppService — vstupní bod pro Android Auto; Session — správa životního cyklu relace; Screen — každá obrazovka aplikace; CarScreenManager — správa zobrazení. Aplikace podporuje MediaBrowserService pro multimediální obsah a NavigationManager pro navigační pokyny.
MediaBrowserService — klíčová komponenta pro audio aplikace. Aplikace implementuje MediaBrowserService a MediaSession pro správu přehrávání. Android Auto automaticky zobrazuje ovládací prvky (Play/Pause, Next, Previous) a seznam skladeb. NavigationManager se používá pro navigační aplikace — předává instrukce odbočení, stav trasy a upozornění. NavigationManager podporuje CarNotification pro zobrazení navigačních pokynů ve stavovém řádku Android Auto.
Požadavky Android Auto: aplikace musí mít category="android.intent.category.APP_AUTO" v manifestu; povinné použití AndroidX a minimální SDK 26+; podpora tmavého motivu (DayNight); podpora dotykového a hlasového ovládání; shoda s Android Auto Compatibility Test Suite (CTS). Google Play kontroluje každou aplikaci na shodu s požadavky na bezpečnost a UX. Proces certifikace trvá 1–4 týdny.
Příklad navigační aplikace pro CarPlay ve Swift s použitím CarPlay framework.
import CarPlay
class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
let searchItem = CPListItem(
text: "Vyhledání adresy",
detailText: "Zadejte cíl"
)
searchItem.handler = { _, completion in
// Otevíráme obrazovku vyhledávání
completion()
}
let favoritesItem = CPListItem(
text: "Oblíbené",
detailText: "Uložené adresy"
)
favoritesItem.handler = { _, completion in
showFavorites()
completion()
}
let section = CPListSection(items: [searchItem, favoritesItem])
let listTemplate = CPListTemplate(
title: "Navigace",
sections: [section]
)
interfaceController.setRootTemplate(listTemplate, animated: true)
}
func showFavorites() {
// Zobrazení seznamu oblíbených adres
}
}
// SiriKit Intent pro hlasové ovládání
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
func handle(intent: INSearchForMessagesIntent,
completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
// Zpracování hlasového příkazu přes Siri
let response = INSearchForMessagesIntentResponse(
code: .success, userActivity: nil
)
completion(response)
}
}
Klíčové body: CPTemplateApplicationSceneDelegate — vstupní bod pro CarPlay relaci; CPInterfaceController spravuje zásobník šablon; CPListTemplate a CPListItem — základní UI komponenty; .handler — obsluha dotyku pro každou položku seznamu.
Příklad navigační aplikace pro Android Auto v Kotlin s Car App Library:
// CarAppService — vstupní bod pro Android Auto
class NavigationCarAppService : CarAppService() {
override fun createSession(): Session = NavigationSession()
}
// Session — správa životního cyklu relace
class NavigationSession : Session() {
override fun onCreateScreen(manager: ScreenManager): Screen {
return MainScreen(carContext)
}
}
// MainScreen — hlavní obrazovka s navigací
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val searchAction = Action.Builder()
.setTitle("Vyhledání adresy")
.setOnClickListener { showSearchScreen() }
.build()
val favoritesAction = Action.Builder()
.setTitle("Oblíbené")
.setOnClickListener { showFavorites() }
.build()
return ListTemplate.Builder()
.setTitle("Navigace")
.setHeaderAction(Action.APP_ICON)
.addAction(searchAction)
.addAction(favoritesAction)
.build()
}
private fun showSearchScreen() {
screenManager.push(SearchScreen(carContext))
}
private fun showFavorites() {
screenManager.push(FavoritesScreen(carContext))
}
}
// AndroidManifest — registrace služby
<service
android:name=".NavigationCarAppService"
android:exported="true">
<intent-filter>
<action
android:name="androidx.car.app.action.NAVIGATION" />
</intent-filter>
<category
android:name="android.intent.category.APP_AUTO" />
</service>
Klíčové body: CarAppService — vstupní bod pro Android Auto; Session — správa životního cyklu; Screen — každá obrazovka aplikace, vrací Template; ListTemplate — šablona pro seznamy s Action; category.APP_AUTO — povinná kategorie v manifestu.
Požadavky Apple CarPlay: aplikace musí splňovat CarPlay Distraction Design Guidelines — minimální velikost tlačítek 48x48 pt, kontrast textu 4.5:1, žádné animace a video, podpora VoiceOver. Publikace — přes App Store Connect, aplikace prochází standardní moderací Apple. Je nutné uvést podporu CarPlay v App Store Connect a přiložit snímky obrazovky CarPlay rozhraní. CarPlay aplikace nemohou být zdarma bez reklam — Apple účtuje provizi 30% (15% pro malé podniky) z nákupů v aplikaci.
Požadavky Android Auto: aplikace musí splňovat Android Auto Design Guidelines a projít Android Auto Compatibility Test Suite (CTS). Publikace — přes Google Play Console, je nutné uvést kategorii "Android Auto" v seznamu kompatibilních zařízení. Google Play kontroluje: podporu tmavého motivu (DayNight), správné chování při ztrátě připojení, zpracování rotace obrazovky, podporu hlasového ovládání přes Google Assistant. Android Auto aplikace nevyžadují další provizi — standardní model Google Play (15-30%).
| Parametr | Apple CarPlay | Android Auto |
|---|---|---|
| Framework | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Jazyk | Swift | Kotlin |
| Hlasový asistent | SiriKit | Google Assistant |
| Rozhraní | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Média | MPNowPlayingInfoCenter | MediaBrowserService |
| Navigace | CPNavigationSession | NavigationManager |
| Publikace | App Store Connect | Google Play Console |
| Provize | 15–30% | 15–30% |
| Moderace | App Review (1–3 dny) | CTS + Google Play (1–4 týdny) |
Podpora bezdrátového připojení: CarPlay Wireless je dostupný od iOS 9 a vyžaduje Wi-Fi + Bluetooth. Android Auto Wireless je dostupný od Android 11. Pro bezdrátové připojení musí automobil podporovat odpovídající standard. Vývojář nemusí psát další kód — OS zpracovává připojení automaticky.
Často kladené otázky
Car App je optimalizován pro použití za volantem: minimální počet prvků, velká tlačítka, hlasové ovládání, žádný vstup textu. Aplikace musí splňovat bezpečnostní požadavky — Distraction Design Guidelines od Apple a Google.
CarPlay podporuje kategorie: navigace (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), zprávy (čtení a diktování přes Siri), automobilové funkce (nabíjení EV, parkování) a VOIP hovory.
Použijte Android Car App Library: implementujte CarAppService pro vstupní bod, Session pro správu životního cyklu, Screen pro každou obrazovku. Aplikace musí podporovat MediaBrowserService pro média nebo NavigationManager pro navigaci.
Ano, obě platformy vyžadují moderaci. Apple kontroluje CarPlay aplikace přes App Review. Android Auto vyžaduje absolvování Android Auto Compatibility Test Suite (CTS) a kontrolu v Google Play Console.
Pro CarPlay — Swift s CarPlay frameworky (CPInterfaceController, CPTemplate, CPListItem) a SiriKit. Pro Android Auto — Kotlin s Car App Library a MediaBrowserService.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také