Car App: essência do desenvolvimento para CarPlay e Android Auto

Autor: IT Sectr Publicado: 2026-02-15 Tempo de leitura: 9 min

Car App é um aplicativo para sistema de infoentretenimento automotivo, integrado com Apple CarPlay e Android Auto. CarPlay é a tecnologia da Apple que projeta a interface do iPhone na tela do carro e é controlada via Siri, tela sensível ao toque ou botões no volante. Android Auto é a tecnologia similar do Google para smartphones Android. O desenvolvimento de Car App inclui criar um aplicativo em Swift com CarPlay framework e SiriKit para iOS, e em Kotlin com Car App Library, MediaBrowserService e NavigationManager para Android. O suporte a Car App está se tornando um padrão para veículos modernos — segundo a Apple, 98% dos carros novos nos EUA são compatíveis com CarPlay, e o Android Auto está disponível em mais de 200 modelos.

Principais pontos

  • Car App — aplicativo para CarPlay (iOS) e Android Auto (Android), otimizado para uso ao volante
  • Apple CarPlay — projeta a interface do iPhone na tela do carro, controle via Siri e toque
  • Android Auto — projeta o smartphone Android na tela do carro com suporte ao Google Assistant
  • CarPlay framework — CPInterfaceController, CPTemplate, CPListItem para construir interface em Swift
  • Car App Library — biblioteca Android para criar aplicativos Automotive com MediaBrowserService e NavigationManager

O que é Car App

Car App é um aplicativo que funciona no sistema de infoentretenimento do veículo (IVI) através da projeção do smartphone — Apple CarPlay para iOS e Android Auto para Android. Diferente do Android Automotive OS (SO integrado no carro), CarPlay e Android Auto são extensões de um aplicativo móvel que são executadas no telefone e projetam a interface na tela do carro. Um Car App é seu aplicativo iOS/Android existente que implementa os protocolos CarPlay ou Android Auto.

Categorias principais de Car App: navegação (Apple Maps, Google Maps, Waze, Sygic), áudio (Spotify, Apple Music, YouTube Music, Audible, Castbox), mensagens (leitura em voz alta e ditado via Siri/Google Assistant), funções automotivas (carregamento EV, estacionamento, status do veículo), chamadas VOIP (WhatsApp, Zoom). Cada categoria tem seu próprio modelo de interface — ListTemplate, MapTemplate, AudioTemplate. O próprio sistema determina qual categoria o aplicativo suporta com base nos Intents registrados.

Limitações do Car App: Apple e Google controlam rigorosamente a UX por segurança — número mínimo de elementos, botões grandes (mínimo 48x48 pt), sem entrada de texto (apenas voz), escurecimento automático da interface ao dirigir, proibição de vídeo. O tempo de resposta ao toque deve ser inferior a 100 ms. Todos os aplicativos passam por moderação obrigatória (App Review para CarPlay, Google Play Console + CTS para Android Auto).

Apple CarPlay: CarPlay framework e SiriKit

CarPlay framework (anteriormente CPKit) é o framework da Apple para criar aplicativos CarPlay em Swift. A classe chave é CPInterfaceController, que gerencia a navegação por modelos. CPInterfaceController contém uma pilha de modelos: CPListTemplate (listas), CPMapTemplate (navegação), CPNowPlayingTemplate (áudio), CPVoiceControlTemplate (controle por voz). CPListTemplate contém CPListItem — itens de lista com ícone, texto e ação.

SiriKit para CarPlay — uma extensão do SiriKit para controle por voz do aplicativo no carro. O aplicativo registra Intents (INPlayMediaIntent — reprodução, INStartWorkoutIntent — treino, INSendMessageIntent — mensagens). Siri ativa automaticamente ao conectar o CarPlay e está disponível através do botão de controle por voz no volante. SiriKit CarPlay suporta CarPlay Dashboard — widgets na tela inicial do CarPlay para exibir informações do aplicativo (destino, faixa atual).

Processo de conexão do CarPlay: o iPhone se conecta ao carro via cabo Lightning/USB-C ou sem fio (CarPlay Wireless, a partir do iOS 9). Após a conexão, o iOS inicia automaticamente uma sessão CarPlay se o aplicativo implementar CPApplicationDelegate. O desenvolvedor não controla o momento da conexão — o sistema chama métodos delegate ao iniciar e finalizar a sessão. CarPlay suporta multitarefa: a navegação funciona em segundo plano ao alternar para música, e as instruções de voz continuam soando.

Android Auto: Car App Library

Android Car App Library — uma biblioteca Android para criar aplicativos compatíveis com Android Auto. Componentes básicos: CarAppService — ponto de entrada para Android Auto; Session — gerenciamento do ciclo de vida da sessão; Screen — cada tela do aplicativo; CarScreenManager — gerenciamento de exibição. O aplicativo suporta MediaBrowserService para conteúdo de mídia e NavigationManager para instruções de navegação.

MediaBrowserService — um componente chave para aplicativos de áudio. O aplicativo implementa MediaBrowserService e MediaSession para gerenciar a reprodução. Android Auto exibe automaticamente os controles (Play/Pause, Next, Previous) e a lista de faixas. NavigationManager é usado para aplicativos de navegação — transmite instruções de curva, status da rota e alertas. NavigationManager suporta CarNotification para exibir instruções de navegação na barra de status do Android Auto.

Requisitos do Android Auto: o aplicativo deve ter category="android.intent.category.APP_AUTO" no manifesto; deve usar AndroidX e SDK mínimo 26+; suportar tema escuro (DayNight); suportar controle por toque e voz; cumprir o Android Auto Compatibility Test Suite (CTS). Google Play verifica cada aplicativo quanto à conformidade com requisitos de segurança e UX. O processo de certificação leva de 1 a 4 semanas.

Exemplos de código: Swift e Kotlin

Exemplo de um aplicativo de navegação para CarPlay em Swift usando CarPlay framework.

swift
import CarPlay

class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {

    func templateApplicationScene(
        _ templateApplicationScene: CPTemplateApplicationScene,
        didConnect interfaceController: CPInterfaceController
    ) {
        let searchItem = CPListItem(
            text: "Pesquisar endereço",
            detailText: "Insira o destino"
        )
        searchItem.handler = { _, completion in
            // Abrir tela de pesquisa
            completion()
        }

        let favoritesItem = CPListItem(
            text: "Favoritos",
            detailText: "Endereços salvos"
        )
        favoritesItem.handler = { _, completion in
            showFavorites()
            completion()
        }

        let section = CPListSection(items: [searchItem, favoritesItem])
        let listTemplate = CPListTemplate(
            title: "Navegação",
            sections: [section]
        )

        interfaceController.setRootTemplate(listTemplate, animated: true)
    }

    func showFavorites() {
        // Exibir lista de endereços favoritos
    }
}

// SiriKit Intent para controle por voz
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
    func handle(intent: INSearchForMessagesIntent,
                completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
        // Processar comando de voz via Siri
        let response = INSearchForMessagesIntentResponse(
            code: .success, userActivity: nil
        )
        completion(response)
    }
}

Pontos chave: CPTemplateApplicationSceneDelegate — ponto de entrada para a sessão CarPlay; CPInterfaceController gerencia a pilha de modelos; CPListTemplate e CPListItem — componentes básicos de UI; .handler — manipulador de clique para cada item da lista.

Exemplo de um aplicativo de navegação para Android Auto em Kotlin com Car App Library:

kotlin
// CarAppService — ponto de entrada para Android Auto
class NavigationCarAppService : CarAppService() {
    override fun createSession(): Session = NavigationSession()
}

// Session — gerenciamento do ciclo de vida da sessão
class NavigationSession : Session() {
    override fun onCreateScreen(manager: ScreenManager): Screen {
        return MainScreen(carContext)
    }
}

// MainScreen — tela principal com navegação
class MainScreen(carContext: CarContext) : Screen(carContext) {
    override fun onGetTemplate(): Template {
        val searchAction = Action.Builder()
            .setTitle("Pesquisar endereço")
            .setOnClickListener { showSearchScreen() }
            .build()

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

        return ListTemplate.Builder()
            .setTitle("Navegação")
            .setHeaderAction(Action.APP_ICON)
            .addAction(searchAction)
            .addAction(favoritesAction)
            .build()
    }

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

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

// AndroidManifest — registro do serviço
<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>

Pontos chave: CarAppService — ponto de entrada para Android Auto; Session — gerenciamento do ciclo de vida; Screen — cada tela do aplicativo, retorna um Template; ListTemplate — modelo para listas com Action; category.APP_AUTO — categoria obrigatória no manifesto.

Requisitos e publicação

Requisitos do Apple CarPlay: o aplicativo deve cumprir as CarPlay Distraction Design Guidelines — tamanho mínimo de botões 48x48 pt, contraste de texto 4.5:1, sem animação ou vídeo, suporte a VoiceOver. Publicação — via App Store Connect, o aplicativo passa pela moderação padrão da Apple. É necessário indicar suporte a CarPlay no App Store Connect e anexar capturas de tela da interface CarPlay. Aplicativos CarPlay não podem ser gratuitos sem anúncios — a Apple cobra uma comissão de 30% (15% para pequenas empresas) em compras dentro do aplicativo.

Requisitos do Android Auto: o aplicativo deve cumprir as Android Auto Design Guidelines e passar no Android Auto Compatibility Test Suite (CTS). Publicação — via Google Play Console, é necessário indicar a categoria "Android Auto" na lista de dispositivos compatíveis. Google Play verifica: suporte a tema escuro (DayNight), comportamento correto ao perder conexão, tratamento de rotação de tela, suporte a controle por voz via Google Assistant. Aplicativos Android Auto não exigem comissão adicional — o modelo padrão do Google Play (15-30%).

ParâmetroApple CarPlayAndroid Auto
FrameworkCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
LinguagemSwiftKotlin
Assistente de vozSiriKitGoogle Assistant
InterfaceCPListTemplate, CPMapTemplateListTemplate, MapTemplate
MídiaMPNowPlayingInfoCenterMediaBrowserService
NavegaçãoCPNavigationSessionNavigationManager
PublicaçãoApp Store ConnectGoogle Play Console
Comissão15–30%15–30%
ModeraçãoApp Review (1–3 dias)CTS + Google Play (1–4 semanas)

Suporte a conexão sem fio: CarPlay Wireless está disponível desde iOS 9 e requer Wi-Fi + Bluetooth. Android Auto Wireless está disponível desde Android 11. Para conexão sem fio, o carro deve suportar o padrão correspondente. O desenvolvedor não precisa escrever código adicional — o SO gerencia a conexão automaticamente.

Perguntas frequentes

Como o Car App difere de um aplicativo móvel?

Car App é otimizado para uso ao volante: número mínimo de elementos, botões grandes, controle por voz, sem entrada de texto. O aplicativo deve cumprir os requisitos de segurança — Distraction Design Guidelines da Apple e Google.

Quais categorias de aplicativos estão disponíveis para CarPlay?

CarPlay suporta categorias: navegação (Apple Maps, Google Maps, Waze), áudio (Spotify, Apple Music), mensagens (leitura e ditado via Siri), funções automotivas (carregamento EV, estacionamento) e chamadas VOIP.

Como desenvolver um aplicativo para Android Auto?

Use a Android Car App Library: implemente CarAppService como ponto de entrada, Session para gerenciamento do ciclo de vida, Screen para cada tela. O aplicativo deve suportar MediaBrowserService para mídia ou NavigationManager para navegação.

É necessária moderação para Car App?

Sim, ambas as plataformas exigem moderação. A Apple revisa aplicativos CarPlay através do App Review. Android Auto exige passar no Android Auto Compatibility Test Suite (CTS) e verificação no Google Play Console.

Quais linguagens são usadas para Car App?

Para CarPlay — Swift com frameworks CarPlay (CPInterfaceController, CPTemplate, CPListItem) e SiriKit. Para Android Auto — Kotlin com Car App Library e MediaBrowserService.

Resumo

  • Car App — aplicativo para CarPlay (iOS) e Android Auto (Android), otimizado para uso seguro ao volante
  • Apple CarPlay usa CarPlay framework com CPInterfaceController, CPListTemplate e SiriKit para controle por voz
  • Android Auto usa Car App Library com CarAppService, Session, Screen e MediaBrowserService para mídia
  • Controle por voz — Siri (CarPlay) e Google Assistant (Android Auto) são obrigatórios para navegação e mensagens
  • Limitações de UX — botões grandes 48x48 pt, mínimo de elementos, proibição de vídeo, reação inferior a 100 ms
  • Moderação — App Store (1–3 dias) e Google Play CTS (1–4 semanas) com verificação de segurança e UX
  • Conexão sem fio — CarPlay Wireless (iOS 9+) e Android Auto Wireless (Android 11+) disponíveis sem cabo

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também