Car App: essenza dello sviluppo per CarPlay e Android Auto

Autore: IT Sectr Pubblicato: 2026-02-15 Tempo di lettura: 9 min

Car App è un'applicazione per il sistema di infotainment dell'auto, integrata con Apple CarPlay e Android Auto. CarPlay è la tecnologia di Apple che proietta l'interfaccia dell'iPhone sullo schermo dell'auto e viene controllata tramite Siri, touch screen o pulsanti al volante. Android Auto è la tecnologia simile di Google per smartphone Android. Lo sviluppo di Car App include la creazione di un'app in Swift con CarPlay framework e SiriKit per iOS, e in Kotlin con Car App Library, MediaBrowserService e NavigationManager per Android. Il supporto Car App sta diventando uno standard per le auto moderne — secondo Apple, il 98% delle nuove auto negli USA supporta CarPlay e Android Auto è disponibile in più di 200 modelli.

Punti chiave

  • Car App — applicazione per CarPlay (iOS) e Android Auto (Android), ottimizzata per l'uso alla guida
  • Apple CarPlay — proietta l'interfaccia iPhone sullo schermo dell'auto, controllo tramite Siri e tocco
  • Android Auto — proietta lo smartphone Android sullo schermo dell'auto con supporto Google Assistant
  • CarPlay framework — CPInterfaceController, CPTemplate, CPListItem per costruire l'interfaccia in Swift
  • Car App Library — libreria Android per creare applicazioni Automotive con MediaBrowserService e NavigationManager

Cos'è Car App

Car App è un'applicazione che funziona sul sistema di infotainment del veicolo (IVI) tramite proiezione dello smartphone — Apple CarPlay per iOS e Android Auto per Android. A differenza di Android Automotive OS (sistema operativo integrato nell'auto), CarPlay e Android Auto sono estensioni di un'applicazione mobile che vengono eseguite sul telefono e proiettano l'interfaccia sullo schermo dell'auto. Una Car App è la tua applicazione iOS/Android esistente che implementa i protocolli CarPlay o Android Auto.

Categorie chiave di Car App: navigazione (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), messaggistica (lettura ad alta voce e dettatura tramite Siri/Google Assistant), funzioni automobilistiche (ricarica EV, parcheggio, stato del veicolo), chiamate VOIP (WhatsApp, Zoom). Ogni categoria ha il proprio modello di interfaccia — ListTemplate, MapTemplate, AudioTemplate. Il sistema stesso determina quale categoria l'app supporta in base agli Intents registrati.

Limitazioni di Car App: Apple e Google controllano rigorosamente l'UX per la sicurezza — numero minimo di elementi, pulsanti grandi (minimo 48x48 pt), nessun input di testo (solo voce), oscuramento automatico dell'interfaccia durante la guida, nessun video. Il tempo di risposta alla pressione deve essere inferiore a 100 ms. Tutte le applicazioni sono sottoposte a moderazione obbligatoria (App Review per CarPlay, Google Play Console + CTS per Android Auto).

Apple CarPlay: CarPlay framework e SiriKit

CarPlay framework (precedentemente CPKit) è il framework di Apple per creare applicazioni CarPlay in Swift. La classe chiave è CPInterfaceController, che gestisce la navigazione tra modelli. CPInterfaceController contiene uno stack di modelli: CPListTemplate (elenchi), CPMapTemplate (navigazione), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (controllo vocale). CPListTemplate contiene CPListItem — elementi di elenco con icona, testo e azione.

SiriKit per CarPlay — un'estensione SiriKit per il controllo vocale dell'app in auto. L'app registra Intents (INPlayMediaIntent — riproduzione, INStartWorkoutIntent — allenamento, INSendMessageIntent — messaggi). Siri si attiva automaticamente alla connessione CarPlay ed è disponibile tramite il pulsante di controllo vocale al volante. SiriKit CarPlay supporta CarPlay Dashboard — widget sulla schermata principale di CarPlay per visualizzare informazioni dall'app (destinazione, traccia corrente).

Processo di connessione CarPlay: l'iPhone si collega all'auto tramite cavo Lightning/USB-C o in modalità wireless (CarPlay Wireless, da iOS 9). Dopo la connessione, iOS avvia automaticamente una sessione CarPlay se l'app implementa CPApplicationDelegate. Lo sviluppatore non controlla il momento della connessione — il sistema chiama i metodi delegate all'avvio e al termine della sessione. CarPlay supporta il multitasking: la navigazione funziona in background quando si passa alla musica e i suggerimenti vocali continuano a suonare.

Android Auto: Car App Library

Android Car App Library — una libreria Android per creare applicazioni compatibili con Android Auto. Componenti di base: CarAppService — punto di ingresso per Android Auto; Session — gestione del ciclo di vita della sessione; Screen — ogni schermata dell'app; CarScreenManager — gestione della visualizzazione. L'app supporta MediaBrowserService per i contenuti multimediali e NavigationManager per le indicazioni di navigazione.

MediaBrowserService — un componente chiave per le applicazioni audio. L'app implementa MediaBrowserService e MediaSession per gestire la riproduzione. Android Auto visualizza automaticamente i controlli (Play/Pause, Next, Previous) e l'elenco delle tracce. NavigationManager viene utilizzato per le applicazioni di navigazione — trasmette istruzioni di svolta, stato del percorso e avvisi. NavigationManager supporta CarNotification per visualizzare le indicazioni di navigazione nella barra di stato di Android Auto.

Requisiti di Android Auto: l'app deve avere category="android.intent.category.APP_AUTO" nel manifest; deve utilizzare AndroidX e SDK minimo 26+; supportare il tema scuro (DayNight); supportare il controllo tattile e vocale; conformarsi all'Android Auto Compatibility Test Suite (CTS). Google Play verifica ogni applicazione per la conformità ai requisiti di sicurezza e UX. Il processo di certificazione richiede 1–4 settimane.

Esempi di codice: Swift e Kotlin

Esempio di un'app di navigazione per CarPlay in Swift utilizzando CarPlay framework.

swift
import CarPlay

class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {

    func templateApplicationScene(
        _ templateApplicationScene: CPTemplateApplicationScene,
        didConnect interfaceController: CPInterfaceController
    ) {
        let searchItem = CPListItem(
            text: "Cerca indirizzo",
            detailText: "Inserisci destinazione"
        )
        searchItem.handler = { _, completion in
            // Aprire la schermata di ricerca
            completion()
        }

        let favoritesItem = CPListItem(
            text: "Preferiti",
            detailText: "Indirizzi salvati"
        )
        favoritesItem.handler = { _, completion in
            showFavorites()
            completion()
        }

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

        interfaceController.setRootTemplate(listTemplate, animated: true)
    }

    func showFavorites() {
        // Visualizzare l'elenco degli indirizzi preferiti
    }
}

// SiriKit Intent per il controllo vocale
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
    func handle(intent: INSearchForMessagesIntent,
                completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
        // Elaborazione del comando vocale tramite Siri
        let response = INSearchForMessagesIntentResponse(
            code: .success, userActivity: nil
        )
        completion(response)
    }
}

Punti chiave: CPTemplateApplicationSceneDelegate — punto di ingresso per la sessione CarPlay; CPInterfaceController gestisce lo stack di modelli; CPListTemplate e CPListItem — componenti UI di base; .handler — gestore del clic per ogni elemento dell'elenco.

Esempio di un'app di navigazione per Android Auto in Kotlin con Car App Library:

kotlin
// CarAppService — punto di ingresso per Android Auto
class NavigationCarAppService : CarAppService() {
    override fun createSession(): Session = NavigationSession()
}

// Session — gestione del ciclo di vita della sessione
class NavigationSession : Session() {
    override fun onCreateScreen(manager: ScreenManager): Screen {
        return MainScreen(carContext)
    }
}

// MainScreen — schermata principale con navigazione
class MainScreen(carContext: CarContext) : Screen(carContext) {
    override fun onGetTemplate(): Template {
        val searchAction = Action.Builder()
            .setTitle("Cerca indirizzo")
            .setOnClickListener { showSearchScreen() }
            .build()

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

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

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

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

// AndroidManifest — registrazione del servizio
<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>

Punti chiave: CarAppService — punto di ingresso per Android Auto; Session — gestione del ciclo di vita; Screen — ogni schermata dell'app, restituisce un Template; ListTemplate — modello per elenchi con Action; category.APP_AUTO — categoria obbligatoria nel manifest.

Requisiti e pubblicazione

Requisiti di Apple CarPlay: l'app deve rispettare le CarPlay Distraction Design Guidelines — dimensione minima dei pulsanti 48x48 pt, contrasto del testo 4.5:1, nessuna animazione o video, supporto VoiceOver. Pubblicazione — tramite App Store Connect, l'app viene sottoposta alla moderazione standard di Apple. È necessario indicare il supporto CarPlay in App Store Connect e allegare screenshot dell'interfaccia CarPlay. Le app CarPlay non possono essere gratuite senza pubblicità — Apple addebita una commissione del 30% (15% per le piccole imprese) sugli acquisti in-app.

Requisiti di Android Auto: l'app deve rispettare le Android Auto Design Guidelines e superare l'Android Auto Compatibility Test Suite (CTS). Pubblicazione — tramite Google Play Console, è necessario indicare la categoria "Android Auto" nell'elenco dei dispositivi compatibili. Google Play verifica: supporto del tema scuro (DayNight), comportamento corretto in caso di perdita di connessione, gestione della rotazione dello schermo, supporto del controllo vocale tramite Google Assistant. Le app Android Auto non richiedono commissioni aggiuntive — il modello standard Google Play (15-30%).

ParametroApple CarPlayAndroid Auto
FrameworkCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
LinguaggioSwiftKotlin
Assistente vocaleSiriKitGoogle Assistant
InterfacciaCPListTemplate, CPMapTemplateListTemplate, MapTemplate
MultimediaMPNowPlayingInfoCenterMediaBrowserService
NavigazioneCPNavigationSessionNavigationManager
PubblicazioneApp Store ConnectGoogle Play Console
Commissione15–30%15–30%
ModerazioneApp Review (1–3 giorni)CTS + Google Play (1–4 settimane)

Supporto connessione wireless: CarPlay Wireless è disponibile da iOS 9 e richiede Wi-Fi + Bluetooth. Android Auto Wireless è disponibile da Android 11. Per la connessione wireless, l'auto deve supportare lo standard corrispondente. Lo sviluppatore non deve scrivere codice aggiuntivo — il sistema operativo gestisce la connessione automaticamente.

Domande frequenti

In cosa differisce Car App da un'applicazione mobile?

Car App è ottimizzata per l'uso alla guida: numero minimo di elementi, pulsanti grandi, controllo vocale, nessun input di testo. L'app deve rispettare i requisiti di sicurezza — le Distraction Design Guidelines di Apple e Google.

Quali categorie di app sono disponibili per CarPlay?

CarPlay supporta le categorie: navigazione (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), messaggistica (lettura e dettatura tramite Siri), funzioni automobilistiche (ricarica EV, parcheggio) e chiamate VOIP.

Come sviluppare un'app per Android Auto?

Usa Android Car App Library: implementa CarAppService come punto di ingresso, Session per la gestione del ciclo di vita, Screen per ogni schermata. L'app deve supportare MediaBrowserService per i contenuti multimediali o NavigationManager per la navigazione.

È richiesta la moderazione per Car App?

Sì, entrambe le piattaforme richiedono moderazione. Apple verifica le app CarPlay tramite App Review. Android Auto richiede il superamento dell'Android Auto Compatibility Test Suite (CTS) e la verifica in Google Play Console.

Quali linguaggi vengono utilizzati per Car App?

Per CarPlay — Swift con i framework CarPlay (CPInterfaceController, CPTemplate, CPListItem) e SiriKit. Per Android Auto — Kotlin con Car App Library e MediaBrowserService.

Riepilogo

  • Car App — applicazione per CarPlay (iOS) e Android Auto (Android), ottimizzata per l'uso sicuro alla guida
  • Apple CarPlay utilizza CarPlay framework con CPInterfaceController, CPListTemplate e SiriKit per il controllo vocale
  • Android Auto utilizza Car App Library con CarAppService, Session, Screen e MediaBrowserService per i contenuti multimediali
  • Controllo vocale — Siri (CarPlay) e Google Assistant (Android Auto) sono obbligatori per navigazione e messaggistica
  • Limitazioni UX — pulsanti grandi 48x48 pt, minimo di elementi, nessun video, reazione inferiore a 100 ms
  • Moderazione — App Store (1–3 giorni) e Google Play CTS (1–4 settimane) con verifica di sicurezza e UX
  • Connessione wireless — CarPlay Wireless (iOS 9+) e Android Auto Wireless (Android 11+) disponibili senza cavo

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche