Car App: a CarPlay és Android Auto fejlesztés lényege

Szerző: IT Sectr Megjelenés: 2026-02-15 Olvasási idő: 9 perc

Car App — alkalmazás autós infotainment rendszerhez, amely integrálható az Apple CarPlay és Android Auto rendszerekkel. CarPlay — az Apple technológiája, amely az iPhone interfészét az autó kijelzőjén jeleníti meg, és Siri, érintőképernyő vagy kormánykerék gombok vezérlik. Android Auto — a Google hasonló technológiája Android okostelefonokhoz. A Car App fejlesztése magában foglalja az alkalmazás létrehozását Swift nyelven CarPlay framework és SiriKit segítségével iOS-re, valamint Kotlin nyelven Car App Library, MediaBrowserService és NavigationManager segítségével Androidra. A Car App támogatása szabvánnyá válik a modern autókban — az Apple szerint az USA-ban az új autók 98%-a támogatja a CarPlay-t, az Android Auto pedig több mint 200 modellben érhető el.

Főbb pontok

  • Car App — CarPlay (iOS) és Android Auto (Android) alkalmazás, optimalizálva vezetés közbeni használatra
  • Apple CarPlay — az iPhone interfészének kivetítése az autó kijelzőjére, vezérlés Siri és érintés segítségével
  • Android Auto — Android okostelefon kivetítése az autó kijelzőjére Google Assistant támogatással
  • CarPlay framework — CPInterfaceController, CPTemplate, CPListItem a felület Swift-ben történő felépítéséhez
  • Car App Library — Android könyvtár Automotive alkalmazások létrehozásához MediaBrowserService és NavigationManager segítségével

Mi az a Car App

Car App — egy alkalmazás, amely az autó infotainment rendszerében (IVI) működik okostelefon kivetítésen keresztül — Apple CarPlay iOS-hez és Android Auto Androidhoz. Ellentétben az Android Automotive OS-szel (beépített operációs rendszer az autóban), a CarPlay és az Android Auto a mobilalkalmazás kiterjesztései, amelyek a telefonon futnak és kivetítik a felületet az autó kijelzőjére. A Car App a meglévő iOS/Android alkalmazásod, amely implementálja a CarPlay vagy Android Auto protokollokat.

A Car App kulcsfontosságú kategóriái: navigáció (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), üzenetek (hangos felolvasás és diktálás Siri/Google Assistant segítségével), autó funkciók (EV-töltés, parkolás, autó állapota), VOIP-hívások (WhatsApp, Zoom). Minden kategóriának saját felületsablonja van — ListTemplate, MapTemplate, AudioTemplate. A rendszer maga határozza meg, hogy az alkalmazás melyik kategóriát támogatja a regisztrált Intents alapján.

A Car App korlátozásai: Az Apple és a Google szigorúan ellenőrzi a UX-et a biztonság érdekében — minimális számú elem, nagy gombok (minimum 48x48 pt), nincs szövegbevitel (csak hang), a felület automatikus elsötétítése mozgáskor, videó tiltása. Az érintésre adott válaszidőnek 100 ms-nál kevesebbnek kell lennie. Minden alkalmazás kötelező moderáláson megy keresztül (App Review CarPlay esetén, Google Play Console + CTS Android Auto esetén).

Apple CarPlay: CarPlay framework és SiriKit

CarPlay framework (korábban CPKit) — az Apple keretrendszere CarPlay alkalmazások Swift-ben történő létrehozásához. Kulcsosztály — CPInterfaceController, amely a sablonok közötti navigációt kezeli. A CPInterfaceController sablonvermet tartalmaz: CPListTemplate (listák), CPMapTemplate (navigáció), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (hangvezérlés). A CPListTemplate CPListItem-eket — ikonnal, szöveggel és művelettel rendelkező listaelemeket tartalmaz.

SiriKit CarPlayhez — a SiriKit kiterjesztése az alkalmazás hangvezérléséhez az autóban. Az alkalmazás Intents-eket regisztrál (INPlayMediaIntent — lejátszás, INStartWorkoutIntent — edzés, INSendMessageIntent — üzenetek). A Siri automatikusan aktiválódik a CarPlay csatlakoztatásakor, és a kormánykerék hangvezérlő gombján keresztül érhető el. A SiriKit CarPlay támogatja a CarPlay Dashboard-ot — widgeteket a CarPlay főképernyőjén az alkalmazás információinak megjelenítéséhez (célpont, aktuális szám).

A CarPlay csatlakozási folyamata: Az iPhone Lightning/USB-C kábellel vagy vezeték nélkül (CarPlay Wireless, iOS 9-től) csatlakozik az autóhoz. Csatlakozás után az iOS automatikusan elindítja a CarPlay munkamenetet, ha az alkalmazás implementálja a CPApplicationDelegate-t. A fejlesztő nem kezeli a csatlakozás pillanatát — a rendszer meghívja a delegate metódusokat a munkamenet kezdetén és végén. A CarPlay támogatja a multitaskingot: a navigáció a háttérben fut, amikor zenére vált, és a hangos útmutatók tovább szólnak.

Android Auto: Car App Library

Android Car App Library — Android könyvtár Android Auto-val kompatibilis alkalmazások létrehozásához. Alapvető összetevők: CarAppService — belépési pont Android Auto számára; Session — a munkamenet életciklusának kezelése; Screen — az alkalmazás minden képernyője; CarScreenManager — a megjelenítés kezelése. Az alkalmazás támogatja a MediaBrowserService-t médiatartalomhoz és a NavigationManager-t navigációs útmutatókhoz.

MediaBrowserService — kulcsfontosságú összetevő az audio alkalmazásokhoz. Az alkalmazás implementálja a MediaBrowserService-t és a MediaSession-t a lejátszás kezeléséhez. Az Android Auto automatikusan megjeleníti a vezérlőelemeket (Play/Pause, Next, Previous) és a számlistát. A NavigationManager navigációs alkalmazásokhoz használatos — kanyarodási utasításokat, útvonal állapotát és figyelmeztetéseket továbbít. A NavigationManager támogatja a CarNotification-t a navigációs útmutatók megjelenítéséhez az Android Auto állapotsorában.

Android Auto követelmények: az alkalmazásnak category="android.intent.category.APP_AUTO" értékkel kell rendelkeznie a manifestben; kötelező az AndroidX használata és minimum SDK 26+; sötét téma támogatása (DayNight); érintő- és hangvezérlés támogatása; megfelelés az Android Auto Compatibility Test Suite (CTS) követelményeinek. A Google Play ellenőrzi minden alkalmazás megfelelését a biztonsági és UX követelményeknek. A tanúsítási folyamat 1–4 hétig tart.

Kódpéldák: Swift és Kotlin

Példa navigációs alkalmazásra CarPlayhez Swift nyelven a CarPlay framework használatával.

swift
import CarPlay

class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {

    func templateApplicationScene(
        _ templateApplicationScene: CPTemplateApplicationScene,
        didConnect interfaceController: CPInterfaceController
    ) {
        let searchItem = CPListItem(
            text: "Cím keresése",
            detailText: "Adja meg a célt"
        )
        searchItem.handler = { _, completion in
            // Megnyitjuk a keresőképernyőt
            completion()
        }

        let favoritesItem = CPListItem(
            text: "Kedvencek",
            detailText: "Elmentett címek"
        )
        favoritesItem.handler = { _, completion in
            showFavorites()
            completion()
        }

        let section = CPListSection(items: [searchItem, favoritesItem])
        let listTemplate = CPListTemplate(
            title: "Navigáció",
            sections: [section]
        )

        interfaceController.setRootTemplate(listTemplate, animated: true)
    }

    func showFavorites() {
        // Kedvenc címek listájának megjelenítése
    }
}

// SiriKit Intent hangvezérléshez
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
    func handle(intent: INSearchForMessagesIntent,
                completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
        // Hangutasítás feldolgozása Siri segítségével
        let response = INSearchForMessagesIntentResponse(
            code: .success, userActivity: nil
        )
        completion(response)
    }
}

Főbb pontok: CPTemplateApplicationSceneDelegate — belépési pont a CarPlay munkamenethez; CPInterfaceController kezeli a sablonvermeket; CPListTemplate és CPListItem — alapvető UI összetevők; .handler — érintéskezelő minden listaelemhez.

Példa navigációs alkalmazásra Android Auto-hoz Kotlin nyelven a Car App Library segítségével:

kotlin
// CarAppService — belépési pont Android Auto számára
class NavigationCarAppService : CarAppService() {
    override fun createSession(): Session = NavigationSession()
}

// Session — a munkamenet életciklusának kezelése
class NavigationSession : Session() {
    override fun onCreateScreen(manager: ScreenManager): Screen {
        return MainScreen(carContext)
    }
}

// MainScreen — főképernyő navigációval
class MainScreen(carContext: CarContext) : Screen(carContext) {
    override fun onGetTemplate(): Template {
        val searchAction = Action.Builder()
            .setTitle("Cím keresése")
            .setOnClickListener { showSearchScreen() }
            .build()

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

        return ListTemplate.Builder()
            .setTitle("Navigáció")
            .setHeaderAction(Action.APP_ICON)
            .addAction(searchAction)
            .addAction(favoritesAction)
            .build()
    }

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

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

// AndroidManifest — szolgáltatás regisztrálása
<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>

Főbb pontok: CarAppService — belépési pont Android Auto számára; Session — életciklus kezelése; Screen — az alkalmazás minden képernyője, Template-t ad vissza; ListTemplate — sablon listákhoz Action-nel; category.APP_AUTO — kötelező kategória a manifestben.

Követelmények és publikálás

Apple CarPlay követelmények: az alkalmazásnak meg kell felelnie a CarPlay Distraction Design Guidelines követelményeinek — minimális gombméret 48x48 pt, szövegkontraszt 4.5:1, nincs animáció és videó, VoiceOver támogatás. Publikálás — App Store Connecten keresztül, az alkalmazás szabványos Apple moderáláson megy keresztül. Meg kell adni a CarPlay támogatást az App Store Connectben és csatolni kell a CarPlay felületről készült képernyőképeket. A CarPlay alkalmazások nem lehetnek ingyenesek reklámok nélkül — az Apple 30% (15% kisvállalkozások számára) jutalékot számít fel az alkalmazáson belüli vásárlásokra.

Android Auto követelmények: az alkalmazásnak meg kell felelnie az Android Auto Design Guidelines követelményeinek és át kell mennie az Android Auto Compatibility Test Suite (CTS) teszten. Publikálás — Google Play Console-on keresztül, meg kell adni az "Android Auto" kategóriát a kompatibilis eszközök listáján. A Google Play ellenőrzi: sötét téma támogatása (DayNight), helyes viselkedés kapcsolat megszakadásakor, képernyőelforgatás kezelése, hangvezérlés támogatása Google Assistant segítségével. Az Android Auto alkalmazások nem igényelnek külön jutalékot — a szabványos Google Play modell (15-30%).

ParaméterApple CarPlayAndroid Auto
KeretrendszerCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
NyelvSwiftKotlin
HangasszisztensSiriKitGoogle Assistant
FelületCPListTemplate, CPMapTemplateListTemplate, MapTemplate
MédiaMPNowPlayingInfoCenterMediaBrowserService
NavigációCPNavigationSessionNavigationManager
PublikálásApp Store ConnectGoogle Play Console
Jutalék15–30%15–30%
ModerálásApp Review (1–3 nap)CTS + Google Play (1–4 hét)

Vezeték nélküli kapcsolat támogatása: A CarPlay Wireless iOS 9-től érhető el, és Wi-Fi + Bluetooth szükséges hozzá. Az Android Auto Wireless Android 11-től érhető el. A vezeték nélküli kapcsolathoz az autónak támogatnia kell a megfelelő szabványt. A fejlesztőnek nem kell további kódot írnia — az operációs rendszer automatikusan kezeli a kapcsolatot.

Gyakran Ismételt Kérdések

Miben különbözik a Car App a mobilalkalmazástól?

A Car App vezetés közbeni használatra van optimalizálva: minimális számú elem, nagy gombok, hangvezérlés, nincs szövegbevitel. Az alkalmazásnak meg kell felelnie a biztonsági követelményeknek — Distraction Design Guidelines az Apple-től és a Google-tól.

Milyen alkalmazáskategóriák érhetők el a CarPlay számára?

A CarPlay a következő kategóriákat támogatja: navigáció (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), üzenetek (olvasás és diktálás Siri segítségével), autó funkciók (EV-töltés, parkolás) és VOIP-hívások.

Hogyan lehet alkalmazást fejleszteni Android Auto-hoz?

Használja az Android Car App Library-t: implementálja a CarAppService-t a belépési ponthoz, a Session-t az életciklus kezeléséhez, a Screen-t minden képernyőhöz. Az alkalmazásnak támogatnia kell a MediaBrowserService-t a médiához vagy a NavigationManager-t a navigációhoz.

Szükséges-e moderálás a Car App számára?

Igen, mindkét platform moderálást igényel. Az Apple a CarPlay alkalmazásokat App Review segítségével ellenőrzi. Az Android Auto megköveteli az Android Auto Compatibility Test Suite (CTS) teljesítését és ellenőrzést a Google Play Console-ban.

Milyen nyelveket használnak a Car App-hoz?

CarPlay esetén — Swift a CarPlay keretrendszerekkel (CPInterfaceController, CPTemplate, CPListItem) és SiriKit. Android Auto esetén — Kotlin a Car App Library és MediaBrowserService segítségével.

Összefoglaló

  • Car App — CarPlay (iOS) és Android Auto (Android) alkalmazás, optimalizálva a biztonságos vezetés közbeni használatra
  • Apple CarPlay a CarPlay framework-öt használja CPInterfaceController, CPListTemplate és SiriKit segítségével a hangvezérléshez
  • Android Auto a Car App Library-t használja CarAppService, Session, Screen és MediaBrowserService segítségével a médiához
  • Hangvezérlés — a Siri (CarPlay) és a Google Assistant (Android Auto) kötelező a navigációhoz és az üzenetekhez
  • UX korlátozások — nagy gombok 48x48 pt, minimális elemek, videó tiltása, reakció 100 ms alatt
  • Moderálás — App Store (1–3 nap) és Google Play CTS (1–4 hét) biztonsági és UX ellenőrzéssel
  • Vezeték nélküli kapcsolat — CarPlay Wireless (iOS 9+) és Android Auto Wireless (Android 11+) kábel nélkül elérhető

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is