Car App: essentie van ontwikkeling voor CarPlay en Android Auto

Auteur: IT Sectr Gepubliceerd: 2026-02-15 Leestijd: 9 min

Car App — een app voor het infotainmentsysteem van de auto, integreerbaar met Apple CarPlay en Android Auto. CarPlay — Apple-technologie die de iPhone-interface op het autoscherm weergeeft en wordt bediend via Siri, touchscreen of stuurwielknoppen. Android Auto — soortgelijke Google-technologie voor Android-smartphones. Car App-ontwikkeling omvat het maken van een app in Swift met CarPlay framework en SiriKit voor iOS, en in Kotlin met Car App Library, MediaBrowserService en NavigationManager voor Android. Car App-ondersteuning wordt de standaard voor moderne auto's — volgens Apple ondersteunt 98% van de nieuwe auto's in de VS CarPlay, en Android Auto is beschikbaar in meer dan 200 modellen.

Belangrijkste punten

  • Car App — app voor CarPlay (iOS) en Android Auto (Android), geoptimaliseerd voor gebruik achter het stuur
  • Apple CarPlay — projectie van de iPhone-interface op het autoscherm, bediening via Siri en aanraking
  • Android Auto — projectie van de Android-smartphone op het autoscherm met ondersteuning voor Google Assistant
  • CarPlay framework — CPInterfaceController, CPTemplate, CPListItem voor het bouwen van de interface in Swift
  • Car App Library — Android-bibliotheek voor het maken van Automotive-apps met MediaBrowserService en NavigationManager

Wat is Car App

Car App — is een app die werkt in het infotainmentsysteem van de auto (IVI) via smartphoneprojectie — Apple CarPlay voor iOS en Android Auto voor Android. In tegenstelling tot Android Automotive OS (ingebouwd besturingssysteem in de auto), zijn CarPlay en Android Auto extensies van de mobiele app die op de telefoon draaien en de interface op het autoscherm projecteren. Car App is je bestaande iOS/Android-app die CarPlay- of Android Auto-protocollen implementeert.

Belangrijke categorieën Car App: navigatie (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), berichten (voorlezen en dicteren via Siri/Google Assistant), autofuncties (EV-laden, parkeren, autostatus), VOIP-gesprekken (WhatsApp, Zoom). Elke categorie heeft zijn eigen interfacesjabloon — ListTemplate, MapTemplate, AudioTemplate. Het systeem bepaalt zelf welke categorie de app ondersteunt op basis van geregistreerde Intents.

Beperkingen Car App: Apple en Google controleren UX strikt voor veiligheid — minimaal aantal elementen, grote knoppen (minimum 48x48 pt), geen tekstinvoer (alleen spraak), automatisch dimmen van de interface bij beweging, videoverbod. Reactietijd op aanraking moet minder dan 100 ms zijn. Alle apps ondergaan verplichte moderatie (App Review voor CarPlay, Google Play Console + CTS voor Android Auto).

Apple CarPlay: CarPlay framework en SiriKit

CarPlay framework (voorheen CPKit) — Apple-framework voor het maken van CarPlay-apps in Swift. Sleutelklasse — CPInterfaceController, die navigatie door sjablonen beheert. CPInterfaceController bevat een stapel sjablonen: CPListTemplate (lijsten), CPMapTemplate (navigatie), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (spraakbediening). CPListTemplate bevat CPListItem — lijstelementen met pictogram, tekst en actie.

SiriKit voor CarPlay — SiriKit-extensie voor spraakbediening van de app in de auto. De app registreert Intents (INPlayMediaIntent — afspelen, INStartWorkoutIntent — training, INSendMessageIntent — berichten). Siri wordt automatisch geactiveerd bij het aansluiten van CarPlay en is beschikbaar via de spraakbedieningsknop op het stuur. SiriKit CarPlay ondersteunt CarPlay Dashboard — widgets op het hoofdscherm van CarPlay voor het weergeven van informatie uit de app (bestemming, huidig nummer).

CarPlay-verbindingsproces: iPhone maakt verbinding met de auto via Lightning/USB-C-kabel of draadloos (CarPlay Wireless, vanaf iOS 9). Na verbinding start iOS automatisch de CarPlay-sessie als de app CPApplicationDelegate implementeert. De ontwikkelaar beheert het verbindingsmoment niet — het systeem roept delegate-methoden aan bij start en einde van de sessie. CarPlay ondersteunt multitasking: navigatie werkt op de achtergrond bij overschakelen naar muziek, en gesproken aanwijzingen blijven klinken.

Android Auto: Car App Library

Android Car App Library — Android-bibliotheek voor het maken van apps die compatibel zijn met Android Auto. Basiscomponenten: CarAppService — ingangspunt voor Android Auto; Session — beheer van de levenscyclus van de sessie; Screen — elk scherm van de app; CarScreenManager — beheer van weergave. De app ondersteunt MediaBrowserService voor media-inhoud en NavigationManager voor navigatieaanwijzingen.

MediaBrowserService — sleutelcomponent voor audio-apps. De app implementeert MediaBrowserService en MediaSession voor het beheren van afspelen. Android Auto toont automatisch bedieningselementen (Play/Pause, Next, Previous) en de afspeellijst. NavigationManager wordt gebruikt voor navigatie-apps — geeft draai-instructies, routestatus en waarschuwingen door. NavigationManager ondersteunt CarNotification voor het weergeven van navigatieaanwijzingen in de statusbalk van Android Auto.

Vereisten Android Auto: de app moet category="android.intent.category.APP_AUTO" in het manifest hebben; verplicht gebruik van AndroidX en minimaal SDK 26+; ondersteuning voor donkere thema (DayNight); ondersteuning voor aanraak- en spraakbediening; conformiteit met Android Auto Compatibility Test Suite (CTS). Google Play controleert elke app op naleving van veiligheids- en UX-vereisten. Het certificeringsproces duurt 1–4 weken.

Codevoorbeelden: Swift en Kotlin

Voorbeeld van een navigatie-app voor CarPlay in Swift met CarPlay framework.

swift
import CarPlay

class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {

    func templateApplicationScene(
        _ templateApplicationScene: CPTemplateApplicationScene,
        didConnect interfaceController: CPInterfaceController
    ) {
        let searchItem = CPListItem(
            text: "Adres zoeken",
            detailText: "Voer bestemming in"
        )
        searchItem.handler = { _, completion in
            // We openen het zoekscherm
            completion()
        }

        let favoritesItem = CPListItem(
            text: "Favorieten",
            detailText: "Opgeslagen adressen"
        )
        favoritesItem.handler = { _, completion in
            showFavorites()
            completion()
        }

        let section = CPListSection(items: [searchItem, favoritesItem])
        let listTemplate = CPListTemplate(
            title: "Navigatie",
            sections: [section]
        )

        interfaceController.setRootTemplate(listTemplate, animated: true)
    }

    func showFavorites() {
        // Weergave van lijst met favoriete adressen
    }
}

// SiriKit Intent voor spraakbediening
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
    func handle(intent: INSearchForMessagesIntent,
                completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
        // Verwerking van spraakopdracht via Siri
        let response = INSearchForMessagesIntentResponse(
            code: .success, userActivity: nil
        )
        completion(response)
    }
}

Belangrijke punten: CPTemplateApplicationSceneDelegate — ingangspunt voor CarPlay-sessie; CPInterfaceController beheert de stapel sjablonen; CPListTemplate en CPListItem — basis UI-componenten; .handler — aanraakhandler voor elk lijstelement.

Voorbeeld van een navigatie-app voor Android Auto in Kotlin met Car App Library:

kotlin
// CarAppService — ingangspunt voor Android Auto
class NavigationCarAppService : CarAppService() {
    override fun createSession(): Session = NavigationSession()
}

// Session — beheer van sessielevenscyclus
class NavigationSession : Session() {
    override fun onCreateScreen(manager: ScreenManager): Screen {
        return MainScreen(carContext)
    }
}

// MainScreen — hoofdscherm met navigatie
class MainScreen(carContext: CarContext) : Screen(carContext) {
    override fun onGetTemplate(): Template {
        val searchAction = Action.Builder()
            .setTitle("Adres zoeken")
            .setOnClickListener { showSearchScreen() }
            .build()

        val favoritesAction = Action.Builder()
            .setTitle("Favorieten")
            .setOnClickListener { showFavorites() }
            .build()

        return ListTemplate.Builder()
            .setTitle("Navigatie")
            .setHeaderAction(Action.APP_ICON)
            .addAction(searchAction)
            .addAction(favoritesAction)
            .build()
    }

    private fun showSearchScreen() {
        screenManager.push(SearchScreen(carContext))
    }

    private fun showFavorites() {
        screenManager.push(FavoritesScreen(carContext))
    }
}

// AndroidManifest — registratie van service
<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>

Belangrijke punten: CarAppService — ingangspunt voor Android Auto; Session — levenscyclusbeheer; Screen — elk scherm van de app, retourneert Template; ListTemplate — sjabloon voor lijsten met Action; category.APP_AUTO — verplichte categorie in het manifest.

Vereisten en publicatie

Vereisten Apple CarPlay: de app moet voldoen aan CarPlay Distraction Design Guidelines — minimale knopgrootte 48x48 pt, tekstcontrast 4.5:1, geen animaties en video, ondersteuning voor VoiceOver. Publicatie — via App Store Connect, de app ondergaat standaard Apple-moderatie. CarPlay-ondersteuning moet worden aangegeven in App Store Connect en screenshots van de CarPlay-interface moeten worden bijgevoegd. CarPlay-apps kunnen niet gratis zijn zonder advertenties — Apple rekent 30% commissie (15% voor kleine bedrijven) op aankopen in de app.

Vereisten Android Auto: de app moet voldoen aan Android Auto Design Guidelines en de Android Auto Compatibility Test Suite (CTS) doorstaan. Publicatie — via Google Play Console, de categorie "Android Auto" moet worden aangegeven in de lijst met compatibele apparaten. Google Play controleert: ondersteuning voor donkere thema (DayNight), correct gedrag bij verlies van verbinding, verwerking van schermrotatie, ondersteuning voor spraakbediening via Google Assistant. Android Auto-apps vereisen geen extra commissie — het standaard Google Play-model (15-30%).

ParameterApple CarPlayAndroid Auto
FrameworkCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
TaalSwiftKotlin
SpraakassistentSiriKitGoogle Assistant
InterfaceCPListTemplate, CPMapTemplateListTemplate, MapTemplate
MediaMPNowPlayingInfoCenterMediaBrowserService
NavigatieCPNavigationSessionNavigationManager
PublicatieApp Store ConnectGoogle Play Console
Commissie15–30%15–30%
ModeratieApp Review (1–3 dagen)CTS + Google Play (1–4 weken)

Ondersteuning draadloze verbinding: CarPlay Wireless beschikbaar vanaf iOS 9 en vereist Wi-Fi + Bluetooth. Android Auto Wireless beschikbaar vanaf Android 11. Voor draadloze verbinding moet de auto de betreffende standaard ondersteunen. De ontwikkelaar hoeft geen extra code te schrijven — het besturingssysteem handelt de verbinding automatisch af.

Veelgestelde vragen

Waarin verschilt Car App van een mobiele app?

Car App is geoptimaliseerd voor gebruik achter het stuur: minimaal aantal elementen, grote knoppen, spraakbediening, geen tekstinvoer. De app moet voldoen aan veiligheidseisen — Distraction Design Guidelines van Apple en Google.

Welke categorieën apps zijn beschikbaar voor CarPlay?

CarPlay ondersteunt categorieën: navigatie (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), berichten (lezen en dicteren via Siri), autofuncties (EV-laden, parkeren) en VOIP-gesprekken.

Hoe ontwikkel je een app voor Android Auto?

Gebruik Android Car App Library: implementeer CarAppService voor het ingangspunt, Session voor levenscyclusbeheer, Screen voor elk scherm. De app moet MediaBrowserService voor media of NavigationManager voor navigatie ondersteunen.

Is moderatie vereist voor Car App?

Ja, beide platforms vereisen moderatie. Apple controleert CarPlay-apps via App Review. Android Auto vereist het doorstaan van Android Auto Compatibility Test Suite (CTS) en controle in Google Play Console.

Welke talen worden gebruikt voor Car App?

Voor CarPlay — Swift met CarPlay-frameworks (CPInterfaceController, CPTemplate, CPListItem) en SiriKit. Voor Android Auto — Kotlin met Car App Library en MediaBrowserService.

Samenvatting

  • Car App — app voor CarPlay (iOS) en Android Auto (Android), geoptimaliseerd voor veilig gebruik achter het stuur
  • Apple CarPlay gebruikt CarPlay framework met CPInterfaceController, CPListTemplate en SiriKit voor spraakbediening
  • Android Auto gebruikt Car App Library met CarAppService, Session, Screen en MediaBrowserService voor media
  • Spraakbediening — Siri (CarPlay) en Google Assistant (Android Auto) zijn verplicht voor navigatie en berichten
  • UX-beperkingen — grote knoppen 48x48 pt, minimum elementen, videoverbod, reactie onder 100 ms
  • Moderatie — App Store (1–3 dagen) en Google Play CTS (1–4 weken) met veiligheids- en UX-controle
  • Draadloze verbinding — CarPlay Wireless (iOS 9+) en Android Auto Wireless (Android 11+) beschikbaar zonder kabel

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook