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 é 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).
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 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.
Exemplo de um aplicativo de navegação para CarPlay em Swift usando CarPlay framework.
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:
// 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 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âmetro | Apple CarPlay | Android Auto |
|---|---|---|
| Framework | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Linguagem | Swift | Kotlin |
| Assistente de voz | SiriKit | Google Assistant |
| Interface | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Mídia | MPNowPlayingInfoCenter | MediaBrowserService |
| Navegação | CPNavigationSession | NavigationManager |
| Publicação | App Store Connect | Google Play Console |
| Comissão | 15–30% | 15–30% |
| Moderação | App 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
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.
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.
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.
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.
Para CarPlay — Swift com frameworks CarPlay (CPInterfaceController, CPTemplate, CPListItem) e SiriKit. Para Android Auto — Kotlin com Car App Library e MediaBrowserService.
Resumo
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.
Leia também