Car App — app för bilens informations- och underhållningssystem, integrerbar med Apple CarPlay och Android Auto. CarPlay — Apples teknik som visar iPhone-gränssnittet på bilens skärm och styrs via Siri, pekskärm eller rattknappar. Android Auto — motsvarande Google-teknik för Android-smartphones. Car App-utveckling innefattar att skapa appen i Swift med CarPlay framework och SiriKit för iOS, och i Kotlin med Car App Library, MediaBrowserService och NavigationManager för Android. Stöd för Car App blir standard för moderna bilar — enligt Apple stöder 98% av nya bilar i USA CarPlay, och Android Auto finns i över 200 modeller.
Huvudpunkter
Car App — är en app som fungerar i bilens informations- och underhållningssystem (IVI) via smartphone-projicering — Apple CarPlay för iOS och Android Auto för Android. Till skillnad från Android Automotive OS (inbyggt operativsystem i bilen) är CarPlay och Android Auto förlängningar av mobilappen som körs på telefonen och projicerar gränssnittet på bilens skärm. Car App är din befintliga iOS/Android-app som implementerar CarPlay- eller Android Auto-protokoll.
Viktiga kategorier för Car App: navigering (Apple Maps, Google Maps, Waze, Sygic), ljud (Spotify, Apple Music, YouTube Music, Audible, Castbox), meddelanden (högläsning och diktering via Siri/Google Assistant), bilfunktioner (EV-laddning, parkering, bilstatus), VOIP-samtal (WhatsApp, Zoom). Varje kategori har sin egen gränssnittsmall — ListTemplate, MapTemplate, AudioTemplate. Systemet avgör själv vilken kategori appen stöder baserat på registrerade Intents.
Begränsningar för Car App: Apple och Google kontrollerar UX strikt för säkerhet — minimalt antal element, stora knappar (minst 48x48 pt), ingen textinmatning (endast röst), automatisk dämpning av gränssnittet vid rörelse, videoförbud. Reaktionstid på tryck måste vara mindre än 100 ms. Alla appar genomgår obligatorisk moderering (App Review för CarPlay, Google Play Console + CTS för Android Auto).
CarPlay framework (tidigare CPKit) — Apples ramverk för att skapa CarPlay-appar i Swift. Nyckelklass — CPInterfaceController, som hanterar navigering genom mallar. CPInterfaceController innehåller en mallstack: CPListTemplate (listor), CPMapTemplate (navigering), CPNowPlayingTemplate (ljud), CPVoiceControlTemplate (röststyrning). CPListTemplate innehåller CPListItem — listelement med ikon, text och åtgärd.
SiriKit för CarPlay — SiriKit-tillägg för röststyrning av appen i bilen. Appen registrerar Intents (INPlayMediaIntent — uppspelning, INStartWorkoutIntent — träning, INSendMessageIntent — meddelanden). Siri aktiveras automatiskt vid anslutning av CarPlay och är tillgänglig via röststyrningsknappen på ratten. SiriKit CarPlay stöder CarPlay Dashboard — widgetar på CarPlay-huvudskärmen för att visa information från appen (destination, aktuell låt).
CarPlay-anslutningsprocess: iPhone ansluter till bilen via Lightning/USB-C-kabel eller trådlöst (CarPlay Wireless, från iOS 9). Efter anslutning startar iOS automatiskt CarPlay-sessionen om appen implementerar CPApplicationDelegate. Utvecklaren hanterar inte anslutningsögonblicket — systemet anropar delegate-metoder vid start och slut av sessionen. CarPlay stöder multitasking: navigering fungerar i bakgrunden vid växling till musik och röstinstruktioner fortsätter att ljuda.
Android Car App Library — Android-bibliotek för att skapa appar kompatibla med Android Auto. Grundläggande komponenter: CarAppService — ingångspunkt för Android Auto; Session — hantering av sessionslivscykel; Screen — varje skärm i appen; CarScreenManager — hantering av visning. Appen stöder MediaBrowserService för media-innehåll och NavigationManager för navigeringsinstruktioner.
MediaBrowserService — nyckelkomponent för ljudappar. Appen implementerar MediaBrowserService och MediaSession för att hantera uppspelning. Android Auto visar automatiskt kontroller (Play/Pause, Next, Previous) och låtlista. NavigationManager används för navigeringsappar — skickar svänginstruktioner, ruttstatus och varningar. NavigationManager stöder CarNotification för att visa navigeringsinstruktioner i Android Autos statusfält.
Android Auto-krav: appen måste ha category="android.intent.category.APP_AUTO" i manifestet; obligatorisk användning av AndroidX och minst SDK 26+; stöd för mörkt tema (DayNight); stöd för pek- och röststyrning; överensstämmelse med Android Auto Compatibility Test Suite (CTS). Google Play kontrollerar varje app för överensstämmelse med säkerhets- och UX-krav. Certifieringsprocessen tar 1–4 veckor.
Exempel på navigeringsapp för CarPlay i Swift med CarPlay framework.
import CarPlay
class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
let searchItem = CPListItem(
text: "Sök adress",
detailText: "Ange destination"
)
searchItem.handler = { _, completion in
// Öppnar sökskärmen
completion()
}
let favoritesItem = CPListItem(
text: "Favoriter",
detailText: "Sparade adresser"
)
favoritesItem.handler = { _, completion in
showFavorites()
completion()
}
let section = CPListSection(items: [searchItem, favoritesItem])
let listTemplate = CPListTemplate(
title: "Navigering",
sections: [section]
)
interfaceController.setRootTemplate(listTemplate, animated: true)
}
func showFavorites() {
// Visning av lista över favoritadresser
}
}
// SiriKit Intent för röststyrning
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
func handle(intent: INSearchForMessagesIntent,
completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
// Bearbetning av röstkommando via Siri
let response = INSearchForMessagesIntentResponse(
code: .success, userActivity: nil
)
completion(response)
}
}
Nyckelpunkter: CPTemplateApplicationSceneDelegate — ingångspunkt för CarPlay-session; CPInterfaceController hanterar mallstacken; CPListTemplate och CPListItem — grundläggande UI-komponenter; .handler — tryckhanterare för varje listelement.
Exempel på navigeringsapp för Android Auto i Kotlin med Car App Library:
// CarAppService — ingångspunkt för Android Auto
class NavigationCarAppService : CarAppService() {
override fun createSession(): Session = NavigationSession()
}
// Session — hantering av sessionslivscykel
class NavigationSession : Session() {
override fun onCreateScreen(manager: ScreenManager): Screen {
return MainScreen(carContext)
}
}
// MainScreen — huvudskärm med navigering
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val searchAction = Action.Builder()
.setTitle("Sök adress")
.setOnClickListener { showSearchScreen() }
.build()
val favoritesAction = Action.Builder()
.setTitle("Favoriter")
.setOnClickListener { showFavorites() }
.build()
return ListTemplate.Builder()
.setTitle("Navigering")
.setHeaderAction(Action.APP_ICON)
.addAction(searchAction)
.addAction(favoritesAction)
.build()
}
private fun showSearchScreen() {
screenManager.push(SearchScreen(carContext))
}
private fun showFavorites() {
screenManager.push(FavoritesScreen(carContext))
}
}
// AndroidManifest — registrering av tjänst
<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>
Nyckelpunkter: CarAppService — ingångspunkt för Android Auto; Session — livscykelhantering; Screen — varje skärm i appen, returnerar Template; ListTemplate — mall för listor med Action; category.APP_AUTO — obligatorisk kategori i manifestet.
Apple CarPlay-krav: appen måste uppfylla CarPlay Distraction Design Guidelines — minsta knappstorlek 48x48 pt, textkontrast 4.5:1, inga animationer och video, stöd för VoiceOver. Publicering — via App Store Connect, appen genomgår Apples standardmoderering. Du måste ange CarPlay-stöd i App Store Connect och bifoga skärmdumpar av CarPlay-gränssnittet. CarPlay-appar kan inte vara gratis utan reklam — Apple tar 30% provision (15% för små företag) på köp inuti appen.
Android Auto-krav: appen måste uppfylla Android Auto Design Guidelines och klara Android Auto Compatibility Test Suite (CTS). Publicering — via Google Play Console, du måste ange kategorin "Android Auto" i listan över kompatibla enheter. Google Play kontrollerar: stöd för mörkt tema (DayNight), korrekt beteende vid förlorad anslutning, hantering av skärmrotation, stöd för röststyrning via Google Assistant. Android Auto-appar kräver ingen extra provision — standard Google Play-modell (15-30%).
| Parameter | Apple CarPlay | Android Auto |
|---|---|---|
| Ramverk | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Språk | Swift | Kotlin |
| Röstassistent | SiriKit | Google Assistant |
| Gränssnitt | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Media | MPNowPlayingInfoCenter | MediaBrowserService |
| Navigering | CPNavigationSession | NavigationManager |
| Publicering | App Store Connect | Google Play Console |
| Provision | 15–30% | 15–30% |
| Moderering | App Review (1–3 dagar) | CTS + Google Play (1–4 veckor) |
Stöd för trådlös anslutning: CarPlay Wireless tillgängligt från iOS 9 och kräver Wi-Fi + Bluetooth. Android Auto Wireless tillgängligt från Android 11. För trådlös anslutning måste bilen stödja motsvarande standard. Utvecklaren behöver inte skriva extra kod — operativsystemet hanterar anslutningen automatiskt.
Vanliga frågor
Car App är optimerad för användning bakom ratten: minimalt antal element, stora knappar, röststyrning, ingen textinmatning. Appen måste uppfylla säkerhetskraven — Distraction Design Guidelines från Apple och Google.
CarPlay stöder kategorier: navigering (Apple Maps, Google Maps, Waze), ljud (Spotify, Apple Music), meddelanden (läsning och diktering via Siri), bilfunktioner (EV-laddning, parkering) och VOIP-samtal.
Använd Android Car App Library: implementera CarAppService för ingångspunkt, Session för livscykelhantering, Screen för varje skärm. Appen måste stödja MediaBrowserService för media eller NavigationManager för navigering.
Ja, båda plattformarna kräver moderering. Apple granskar CarPlay-appar via App Review. Android Auto kräver godkänd Android Auto Compatibility Test Suite (CTS) och granskning i Google Play Console.
För CarPlay — Swift med CarPlay-ramverk (CPInterfaceController, CPTemplate, CPListItem) och SiriKit. För Android Auto — Kotlin med Car App Library och MediaBrowserService.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också