Car App: esența dezvoltării pentru CarPlay și Android Auto

Autor: IT Sectr Publicat: 2026-02-15 Timp de citire: 9 min

Car App — aplicație pentru sistemul de infotainment auto, integrabilă cu Apple CarPlay și Android Auto. CarPlay — tehnologia Apple care afișează interfața iPhone pe ecranul mașinii și este controlată prin Siri, ecran tactil sau butoane pe volan. Android Auto — tehnologia analogică Google pentru smartphone-urile Android. Dezvoltarea Car App include crearea aplicației în Swift cu CarPlay framework și SiriKit pentru iOS, iar în Kotlin — cu Car App Library, MediaBrowserService și NavigationManager pentru Android. Suportul Car App devine standard pentru mașinile moderne — conform Apple, 98% din mașinile noi din SUA suportă CarPlay, iar Android Auto este disponibil în peste 200 de modele.

Principalele puncte

  • Car App — aplicație pentru CarPlay (iOS) și Android Auto (Android), optimizată pentru utilizare la volan
  • Apple CarPlay — proiectarea interfeței iPhone pe ecranul mașinii, control prin Siri și tactil
  • Android Auto — proiectarea smartphone-ului Android pe ecranul mașinii cu suport Google Assistant
  • CarPlay framework — CPInterfaceController, CPTemplate, CPListItem pentru construirea interfeței în Swift
  • Car App Library — biblioteca Android pentru crearea aplicațiilor Automotive cu MediaBrowserService și NavigationManager

Ce este Car App

Car App — este o aplicație care funcționează în sistemul de infotainment auto (IVI) prin proiecția smartphone-ului — Apple CarPlay pentru iOS și Android Auto pentru Android. Spre deosebire de Android Automotive OS (sistem de operare încorporat în mașină), CarPlay și Android Auto sunt extensii ale aplicației mobile, care rulează pe telefon și proiectează interfața pe ecranul mașinii. Car App este aplicația ta iOS/Android existentă care implementează protocoalele CarPlay sau Android Auto.

Categorii cheie Car App: navigație (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), mesaje (citire cu voce tare și dictare prin Siri/Google Assistant), funcții auto (încărcare EV, parcare, stare mașină), apeluri VOIP (WhatsApp, Zoom). Fiecare categorie are propriul șablon de interfață — ListTemplate, MapTemplate, AudioTemplate. Sistemul determină singur ce categorie suportă aplicația, pe baza Intents-urilor înregistrate.

Limitări Car App: Apple și Google controlează strict UX-ul pentru siguranță — număr minim de elemente, butoane mari (minimum 48x48 pt), fără introducere text (doar voce), întunecarea automată a interfeței la mișcare, interzicerea video. Timpul de reacție la atingere trebuie să fie mai mic de 100 ms. Toate aplicațiile trec prin moderare obligatorie (App Review pentru CarPlay, Google Play Console + CTS pentru Android Auto).

Apple CarPlay: CarPlay framework și SiriKit

CarPlay framework (fost CPKit) — framework-ul Apple pentru crearea aplicațiilor CarPlay în Swift. Clasa cheie — CPInterfaceController, care gestionează navigarea prin șabloane. CPInterfaceController conține un stivă de șabloane: CPListTemplate (liste), CPMapTemplate (navigație), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (control vocal). CPListTemplate conține CPListItem — elemente de listă cu iconiță, text și acțiune.

SiriKit pentru CarPlay — extensia SiriKit pentru controlul vocal al aplicației în mașină. Aplicația înregistrează Intents (INPlayMediaIntent — redare, INStartWorkoutIntent — antrenament, INSendMessageIntent — mesaje). Siri se activează automat la conectarea CarPlay și este disponibilă prin butonul de control vocal de pe volan. SiriKit CarPlay suportă CarPlay Dashboard — widget-uri pe ecranul principal CarPlay pentru afișarea informațiilor din aplicație (destinație, melodie curentă).

Procesul de conectare CarPlay: iPhone se conectează la mașină prin cablu Lightning/USB-C sau fără fir (CarPlay Wireless, începând cu iOS 9). După conectare, iOS pornește automat sesiunea CarPlay dacă aplicația implementează CPApplicationDelegate. Dezvoltatorul nu gestionează momentul conectării — sistemul apelează metodele delegate la începutul și sfârșitul sesiunii. CarPlay suportă multitasking: navigația rulează în fundal la comutarea pe muzică, iar indicațiile vocale continuă să sune.

Android Auto: Car App Library

Android Car App Library — biblioteca Android pentru crearea aplicațiilor compatibile cu Android Auto. Componente de bază: CarAppService — punctul de intrare pentru Android Auto; Session — gestionarea ciclului de viață al sesiunii; Screen — fiecare ecran al aplicației; CarScreenManager — gestionarea afișării. Aplicația suportă MediaBrowserService pentru conținut media și NavigationManager pentru indicații de navigație.

MediaBrowserService — componenta cheie pentru aplicațiile audio. Aplicația implementează MediaBrowserService și MediaSession pentru gestionarea redării. Android Auto afișează automat comenzile (Play/Pause, Next, Previous) și lista de melodii. NavigationManager este utilizat pentru aplicațiile de navigație — transmite instrucțiuni de viraj, starea rutei și alerte. NavigationManager suportă CarNotification pentru afișarea indicațiilor de navigație în bara de stare Android Auto.

Cerințe Android Auto: aplicația trebuie să aibă category="android.intent.category.APP_AUTO" în manifest; utilizarea obligatorie a AndroidX și SDK minim 26+; suport pentru temă întunecată (DayNight); suport pentru control tactil și vocal; conformitate cu Android Auto Compatibility Test Suite (CTS). Google Play verifică fiecare aplicație pentru conformitatea cu cerințele de securitate și UX. Procesul de certificare durează 1–4 săptămâni.

Exemple de cod: Swift și Kotlin

Exemplu de aplicație de navigație pentru CarPlay în Swift folosind CarPlay framework.

swift
import CarPlay

class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {

    func templateApplicationScene(
        _ templateApplicationScene: CPTemplateApplicationScene,
        didConnect interfaceController: CPInterfaceController
    ) {
        let searchItem = CPListItem(
            text: "Căutare adresă",
            detailText: "Introduceți destinația"
        )
        searchItem.handler = { _, completion in
            // Deschidem ecranul de căutare
            completion()
        }

        let favoritesItem = CPListItem(
            text: "Favorite",
            detailText: "Adrese salvate"
        )
        favoritesItem.handler = { _, completion in
            showFavorites()
            completion()
        }

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

        interfaceController.setRootTemplate(listTemplate, animated: true)
    }

    func showFavorites() {
        // Afișarea listei de adrese favorite
    }
}

// SiriKit Intent pentru control vocal
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
    func handle(intent: INSearchForMessagesIntent,
                completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
        // Procesarea comenzii vocale prin Siri
        let response = INSearchForMessagesIntentResponse(
            code: .success, userActivity: nil
        )
        completion(response)
    }
}

Puncte cheie: CPTemplateApplicationSceneDelegate — punctul de intrare pentru sesiunea CarPlay; CPInterfaceController gestionează stiva de șabloane; CPListTemplate și CPListItem — componente UI de bază; .handler — handler-ul de atingere pentru fiecare element din listă.

Exemplu de aplicație de navigație pentru Android Auto în Kotlin cu Car App Library:

kotlin
// CarAppService — punctul de intrare pentru Android Auto
class NavigationCarAppService : CarAppService() {
    override fun createSession(): Session = NavigationSession()
}

// Session — gestionarea ciclului de viață al sesiunii
class NavigationSession : Session() {
    override fun onCreateScreen(manager: ScreenManager): Screen {
        return MainScreen(carContext)
    }
}

// MainScreen — ecranul principal cu navigație
class MainScreen(carContext: CarContext) : Screen(carContext) {
    override fun onGetTemplate(): Template {
        val searchAction = Action.Builder()
            .setTitle("Căutare adresă")
            .setOnClickListener { showSearchScreen() }
            .build()

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

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

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

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

// AndroidManifest — înregistrarea serviciului
<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>

Puncte cheie: CarAppService — punctul de intrare pentru Android Auto; Session — gestionarea ciclului de viață; Screen — fiecare ecran al aplicației, returnează Template; ListTemplate — șablon pentru liste cu Action; category.APP_AUTO — categorie obligatorie în manifest.

Cerințe și publicare

Cerințe Apple CarPlay: aplicația trebuie să respecte CarPlay Distraction Design Guidelines — dimensiunea minimă a butoanelor 48x48 pt, contrastul textului 4.5:1, fără animații și video, suport VoiceOver. Publicare — prin App Store Connect, aplicația trece prin moderarea standard Apple. Trebuie specificat suportul CarPlay în App Store Connect și atașate capturi de ecran ale interfeței CarPlay. Aplicațiile CarPlay nu pot fi gratuite fără reclame — Apple percepe comision 30% (15% pentru afaceri mici) pentru achizițiile în aplicație.

Cerințe Android Auto: aplicația trebuie să respecte Android Auto Design Guidelines și să treacă Android Auto Compatibility Test Suite (CTS). Publicare — prin Google Play Console, trebuie specificată categoria "Android Auto" în lista dispozitivelor compatibile. Google Play verifică: suportul temei întunecate (DayNight), comportamentul corect la pierderea conexiunii, gestionarea rotației ecranului, suportul controlului vocal prin Google Assistant. Aplicațiile Android Auto nu necesită comision suplimentar — modelul standard Google Play (15-30%).

ParametruApple CarPlayAndroid Auto
FrameworkCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
LimbajSwiftKotlin
Asistent vocalSiriKitGoogle Assistant
InterfațăCPListTemplate, CPMapTemplateListTemplate, MapTemplate
MediaMPNowPlayingInfoCenterMediaBrowserService
NavigațieCPNavigationSessionNavigationManager
PublicareApp Store ConnectGoogle Play Console
Comision15–30%15–30%
ModerareApp Review (1–3 zile)CTS + Google Play (1–4 săptămâni)

Suport conexiune fără fir: CarPlay Wireless disponibil din iOS 9 și necesită Wi-Fi + Bluetooth. Android Auto Wireless disponibil din Android 11. Pentru conexiunea fără fir, mașina trebuie să suporte standardul corespunzător. Dezvoltatorul nu trebuie să scrie cod suplimentar — sistemul de operare gestionează conexiunea automat.

Întrebări frecvente

Cu ce diferă Car App de o aplicație mobilă?

Car App este optimizată pentru utilizare la volan: număr minim de elemente, butoane mari, control vocal, fără introducere text. Aplicația trebuie să respecte cerințele de siguranță — Distraction Design Guidelines de la Apple și Google.

Ce categorii de aplicații sunt disponibile pentru CarPlay?

CarPlay suportă categorii: navigație (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), mesaje (citire și dictare prin Siri), funcții auto (încărcare EV, parcare) și apeluri VOIP.

Cum se dezvoltă o aplicație pentru Android Auto?

Utilizați Android Car App Library: implementați CarAppService pentru punctul de intrare, Session pentru gestionarea ciclului de viață, Screen pentru fiecare ecran. Aplicația trebuie să suporte MediaBrowserService pentru media sau NavigationManager pentru navigație.

Este necesară moderarea pentru Car App?

Da, ambele platforme necesită moderare. Apple verifică aplicațiile CarPlay prin App Review. Android Auto necesită trecerea Android Auto Compatibility Test Suite (CTS) și verificarea în Google Play Console.

Ce limbaje se folosesc pentru Car App?

Pentru CarPlay — Swift cu framework-urile CarPlay (CPInterfaceController, CPTemplate, CPListItem) și SiriKit. Pentru Android Auto — Kotlin cu Car App Library și MediaBrowserService.

Concluzii

  • Car App — aplicație pentru CarPlay (iOS) și Android Auto (Android), optimizată pentru utilizarea sigură la volan
  • Apple CarPlay folosește CarPlay framework cu CPInterfaceController, CPListTemplate și SiriKit pentru control vocal
  • Android Auto folosește Car App Library cu CarAppService, Session, Screen și MediaBrowserService pentru media
  • Control vocal — Siri (CarPlay) și Google Assistant (Android Auto) sunt obligatorii pentru navigație și mesaje
  • Limitări UX — butoane mari 48x48 pt, minim de elemente, interzicere video, reacție sub 100 ms
  • Moderare — App Store (1–3 zile) și Google Play CTS (1–4 săptămâni) cu verificare securitate și UX
  • Conexiune fără fir — CarPlay Wireless (iOS 9+) și Android Auto Wireless (Android 11+) disponibile fără cablu

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și