Car App es una aplicación para el sistema de infoentretenimiento del automóvil, integrada con Apple CarPlay y Android Auto. CarPlay es la tecnología de Apple que proyecta la interfaz del iPhone en la pantalla del coche y se controla mediante Siri, pantalla táctil o botones en el volante. Android Auto es la tecnología similar de Google para smartphones Android. El desarrollo de Car App incluye crear una aplicación en Swift con CarPlay framework y SiriKit para iOS, y en Kotlin con Car App Library, MediaBrowserService y NavigationManager para Android. El soporte de Car App se está convirtiendo en un estándar para los automóviles modernos — según Apple, el 98% de los coches nuevos en EE.UU. son compatibles con CarPlay, y Android Auto está disponible en más de 200 modelos.
Puntos clave
Car App es una aplicación que funciona en el sistema de infoentretenimiento del automóvil (IVI) mediante la proyección del smartphone — Apple CarPlay para iOS y Android Auto para Android. A diferencia de Android Automotive OS (SO integrado en el coche), CarPlay y Android Auto son extensiones de una aplicación móvil que se ejecutan en el teléfono y proyectan la interfaz en la pantalla del coche. Una Car App es tu aplicación iOS/Android existente que implementa los protocolos de CarPlay o Android Auto.
Categorías clave de Car App: navegación (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), mensajería (lectura en voz alta y dictado mediante Siri/Google Assistant), funciones automotrices (carga EV, estacionamiento, estado del vehículo), llamadas VOIP (WhatsApp, Zoom). Cada categoría tiene su propia plantilla de interfaz — ListTemplate, MapTemplate, AudioTemplate. El sistema mismo determina qué categoría soporta la aplicación según los Intents registrados.
Limitaciones de Car App: Apple y Google controlan estrictamente la UX por seguridad — cantidad mínima de elementos, botones grandes (mínimo 48x48 pt), sin entrada de texto (solo voz), oscurecimiento automático de la interfaz al conducir, sin video. El tiempo de respuesta a una pulsación debe ser inferior a 100 ms. Todas las aplicaciones pasan por una moderación obligatoria (App Review para CarPlay, Google Play Console + CTS para Android Auto).
CarPlay framework (anteriormente CPKit) es el framework de Apple para crear aplicaciones CarPlay en Swift. La clase clave es CPInterfaceController, que gestiona la navegación por plantillas. CPInterfaceController contiene una pila de plantillas: CPListTemplate (listas), CPMapTemplate (navegación), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (control por voz). CPListTemplate contiene CPListItem — elementos de lista con icono, texto y acción.
SiriKit para CarPlay — una extensión de SiriKit para el control por voz de la aplicación en el coche. La aplicación registra Intents (INPlayMediaIntent — reproducción, INStartWorkoutIntent — entrenamiento, INSendMessageIntent — mensajes). Siri se activa automáticamente al conectar CarPlay y está disponible mediante el botón de control por voz en el volante. SiriKit CarPlay admite CarPlay Dashboard — widgets en la pantalla principal de CarPlay para mostrar información de la aplicación (destino, pista actual).
Proceso de conexión de CarPlay: el iPhone se conecta al coche mediante cable Lightning/USB-C o de forma inalámbrica (CarPlay Wireless, desde iOS 9). Tras la conexión, iOS inicia automáticamente una sesión de CarPlay si la aplicación implementa CPApplicationDelegate. El desarrollador no controla el momento de la conexión — el sistema llama a los métodos delegate al iniciar y finalizar la sesión. CarPlay admite multitarea: la navegación funciona en segundo plano al cambiar a música y las indicaciones de voz continúan sonando.
Android Car App Library — una biblioteca de Android para crear aplicaciones compatibles con Android Auto. Componentes básicos: CarAppService — punto de entrada para Android Auto; Session — gestión del ciclo de vida de la sesión; Screen — cada pantalla de la aplicación; CarScreenManager — gestión de la visualización. La aplicación admite MediaBrowserService para contenido multimedia y NavigationManager para indicaciones de navegación.
MediaBrowserService — un componente clave para aplicaciones de audio. La aplicación implementa MediaBrowserService y MediaSession para gestionar la reproducción. Android Auto muestra automáticamente los controles (Play/Pause, Next, Previous) y la lista de pistas. NavigationManager se usa para aplicaciones de navegación — transmite instrucciones de giro, estado de la ruta y alertas. NavigationManager admite CarNotification para mostrar indicaciones de navegación en la barra de estado de Android Auto.
Requisitos de Android Auto: la aplicación debe tener category="android.intent.category.APP_AUTO" en el manifiesto; debe usar AndroidX y SDK mínimo 26+; soportar tema oscuro (DayNight); soportar control táctil y por voz; cumplir con el Android Auto Compatibility Test Suite (CTS). Google Play verifica cada aplicación para garantizar el cumplimiento de los requisitos de seguridad y UX. El proceso de certificación tarda de 1 a 4 semanas.
Ejemplo de una aplicación de navegación para CarPlay en Swift usando CarPlay framework.
import CarPlay
class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
let searchItem = CPListItem(
text: "Buscar dirección",
detailText: "Ingrese el destino"
)
searchItem.handler = { _, completion in
// Abrir la pantalla de búsqueda
completion()
}
let favoritesItem = CPListItem(
text: "Favoritos",
detailText: "Direcciones guardadas"
)
favoritesItem.handler = { _, completion in
showFavorites()
completion()
}
let section = CPListSection(items: [searchItem, favoritesItem])
let listTemplate = CPListTemplate(
title: "Navegación",
sections: [section]
)
interfaceController.setRootTemplate(listTemplate, animated: true)
}
func showFavorites() {
// Mostrar lista de direcciones favoritas
}
}
// SiriKit Intent para control por voz
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
func handle(intent: INSearchForMessagesIntent,
completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
// Procesamiento de comando de voz mediante Siri
let response = INSearchForMessagesIntentResponse(
code: .success, userActivity: nil
)
completion(response)
}
}
Puntos clave: CPTemplateApplicationSceneDelegate — punto de entrada para la sesión de CarPlay; CPInterfaceController gestiona la pila de plantillas; CPListTemplate y CPListItem — componentes básicos de UI; .handler — manejador de clic para cada elemento de la lista.
Ejemplo de una aplicación de navegación para Android Auto en Kotlin con Car App Library:
// CarAppService — punto de entrada para Android Auto
class NavigationCarAppService : CarAppService() {
override fun createSession(): Session = NavigationSession()
}
// Session — gestión del ciclo de vida de la sesión
class NavigationSession : Session() {
override fun onCreateScreen(manager: ScreenManager): Screen {
return MainScreen(carContext)
}
}
// MainScreen — pantalla principal con navegación
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val searchAction = Action.Builder()
.setTitle("Buscar dirección")
.setOnClickListener { showSearchScreen() }
.build()
val favoritesAction = Action.Builder()
.setTitle("Favoritos")
.setOnClickListener { showFavorites() }
.build()
return ListTemplate.Builder()
.setTitle("Navegación")
.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 del servicio
<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>
Puntos clave: CarAppService — punto de entrada para Android Auto; Session — gestión del ciclo de vida; Screen — cada pantalla de la aplicación, devuelve un Template; ListTemplate — plantilla para listas con Action; category.APP_AUTO — categoría obligatoria en el manifiesto.
Requisitos de Apple CarPlay: la aplicación debe cumplir con las CarPlay Distraction Design Guidelines — tamaño mínimo de botones 48x48 pt, contraste de texto 4.5:1, sin animación ni video, soporte de VoiceOver. Publicación — a través de App Store Connect, la aplicación pasa por la moderación estándar de Apple. Es necesario indicar el soporte de CarPlay en App Store Connect y adjuntar capturas de pantalla de la interfaz de CarPlay. Las aplicaciones de CarPlay no pueden ser gratuitas sin publicidad — Apple cobra una comisión del 30% (15% para pequeñas empresas) en las compras dentro de la aplicación.
Requisitos de Android Auto: la aplicación debe cumplir con las Android Auto Design Guidelines y pasar el Android Auto Compatibility Test Suite (CTS). Publicación — a través de Google Play Console, es necesario indicar la categoría "Android Auto" en la lista de dispositivos compatibles. Google Play verifica: soporte de tema oscuro (DayNight), comportamiento correcto ante pérdida de conexión, manejo de rotación de pantalla, soporte de control por voz mediante Google Assistant. Las aplicaciones de Android Auto no requieren comisión adicional — el modelo estándar de Google Play (15-30%).
| Parámetro | Apple CarPlay | Android Auto |
|---|---|---|
| Framework | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Lenguaje | Swift | Kotlin |
| Asistente de voz | SiriKit | Google Assistant |
| Interfaz | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Multimedia | MPNowPlayingInfoCenter | MediaBrowserService |
| Navegación | CPNavigationSession | NavigationManager |
| Publicación | App Store Connect | Google Play Console |
| Comisión | 15–30% | 15–30% |
| Moderación | App Review (1–3 días) | CTS + Google Play (1–4 semanas) |
Soporte de conexión inalámbrica: CarPlay Wireless está disponible desde iOS 9 y requiere Wi-Fi + Bluetooth. Android Auto Wireless está disponible desde Android 11. Para la conexión inalámbrica, el coche debe ser compatible con el estándar correspondiente. El desarrollador no necesita escribir código adicional — el SO maneja la conexión automáticamente.
Preguntas frecuentes
Car App está optimizada para usar al volante: cantidad mínima de elementos, botones grandes, control por voz, sin entrada de texto. La aplicación debe cumplir con los requisitos de seguridad — Distraction Design Guidelines de Apple y Google.
CarPlay admite categorías: navegación (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), mensajería (lectura y dictado mediante Siri), funciones automotrices (carga EV, estacionamiento) y llamadas VOIP.
Usa Android Car App Library: implementa CarAppService como punto de entrada, Session para la gestión del ciclo de vida, Screen para cada pantalla. La aplicación debe soportar MediaBrowserService para contenido multimedia o NavigationManager para navegación.
Sí, ambas plataformas requieren moderación. Apple revisa las aplicaciones de CarPlay mediante App Review. Android Auto requiere pasar el Android Auto Compatibility Test Suite (CTS) y la verificación en Google Play Console.
Para CarPlay — Swift con los frameworks CarPlay (CPInterfaceController, CPTemplate, CPListItem) y SiriKit. Para Android Auto — Kotlin con Car App Library y MediaBrowserService.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también