Car App: esencia del desarrollo para CarPlay y Android Auto

Autor: IT Sectr Publicado: 2026-02-15 Tiempo de lectura: 9 min

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 — aplicación para CarPlay (iOS) y Android Auto (Android), optimizada para usar al volante
  • Apple CarPlay — proyección de la interfaz del iPhone en la pantalla del coche, control mediante Siri y táctil
  • Android Auto — proyección del smartphone Android en la pantalla del coche con soporte de Google Assistant
  • CarPlay framework — CPInterfaceController, CPTemplate, CPListItem para construir interfaz en Swift
  • Car App Library — biblioteca Android para crear aplicaciones Automotive con MediaBrowserService y NavigationManager

¿Qué es Car App?

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).

Apple CarPlay: CarPlay framework y SiriKit

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 Auto: Car App Library

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.

Ejemplos de código: Swift y Kotlin

Ejemplo de una aplicación de navegación para CarPlay en Swift usando CarPlay framework.

swift
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:

kotlin
// 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 y publicación

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ámetroApple CarPlayAndroid Auto
FrameworkCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
LenguajeSwiftKotlin
Asistente de vozSiriKitGoogle Assistant
InterfazCPListTemplate, CPMapTemplateListTemplate, MapTemplate
MultimediaMPNowPlayingInfoCenterMediaBrowserService
NavegaciónCPNavigationSessionNavigationManager
PublicaciónApp Store ConnectGoogle Play Console
Comisión15–30%15–30%
ModeraciónApp 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

¿En qué se diferencia Car App de una aplicación móvil?

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.

¿Qué categorías de aplicaciones están disponibles para CarPlay?

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.

¿Cómo desarrollar una aplicación para Android Auto?

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.

¿Se requiere moderación para Car App?

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.

¿Qué lenguajes se usan para Car App?

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

Resumen

  • Car App — aplicación para CarPlay (iOS) y Android Auto (Android), optimizada para uso seguro al volante
  • Apple CarPlay usa CarPlay framework con CPInterfaceController, CPListTemplate y SiriKit para control por voz
  • Android Auto usa Car App Library con CarAppService, Session, Screen y MediaBrowserService para multimedia
  • Control por voz — Siri (CarPlay) y Google Assistant (Android Auto) son obligatorios para navegación y mensajería
  • Limitaciones de UX — botones grandes 48x48 pt, mínimos elementos, sin video, reacción inferior a 100 ms
  • Moderación — App Store (1–3 días) y Google Play CTS (1–4 semanas) con revisión de seguridad y UX
  • Conexión inalámbrica — CarPlay Wireless (iOS 9+) y Android Auto Wireless (Android 11+) disponibles sin cable

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.

Discutir el proyecto

Lea también