Car App: суть розробки для CarPlay та Android Auto

Автор: IT Sectr Опубліковано: 2026-02-15 Час читання: 9 хв

Car App — додаток для автомобільної інформаційно-розважальної системи, що інтегрується з Apple CarPlay та Android Auto. CarPlay — технологія Apple, яка відображає інтерфейс iPhone на екрані автомобіля та керується через Siri, сенсорний екран або кнопки на кермі. Android Auto — аналогічна технологія Google для Android-смартфонів. Розробка Car App включає створення додатка на Swift з CarPlay framework та SiriKit для iOS, а на Kotlin — з Car App Library, MediaBrowserService та NavigationManager для Android. Підтримка Car App стає стандартом для сучасних автомобілів — за даними Apple, 98% нових автомобілів у США підтримують CarPlay, а Android Auto доступний у більш ніж 200 моделях.

Головне

  • Car App — додаток для CarPlay (iOS) та Android Auto (Android), оптимізований для використання за кермом
  • Apple CarPlay — проєктування інтерфейсу iPhone на екран автомобіля, керування через Siri та сенсор
  • Android Auto — проєктування Android-смартфона на екран автомобіля з підтримкою Google Assistant
  • CarPlay framework — CPInterfaceController, CPTemplate, CPListItem для побудови інтерфейсу на Swift
  • Car App Library — Android-бібліотека для створення Automotive-додатків з MediaBrowserService та NavigationManager

Що таке Car App

Car App — це додаток, який працює в автомобільній інформаційно-розважальній системі (IVI) через проєкцію смартфона — Apple CarPlay для iOS та Android Auto для Android. На відміну від Android Automotive OS (вбудована ОС в автомобіль), CarPlay та Android Auto є розширеннями мобільного додатка, що запускаються на телефоні та проєктують інтерфейс на екран автомобіля. Car App — це ваш існуючий iOS/Android додаток, який реалізує протоколи CarPlay або Android Auto.

Ключові категорії Car App: навігація (Apple Maps, Google Maps, Waze, Sygic), аудіо (Spotify, Apple Music, YouTube Music, Audible, Castbox), повідомлення (читання вголос та диктовка через Siri/Google Assistant), автомобільні функції (зарядка EV, паркування, стан автомобіля), VOIP-дзвінки (WhatsApp, Zoom). Кожна категорія має свій шаблон інтерфейсу — ListTemplate, MapTemplate, AudioTemplate. Система сама визначає, яку категорію підтримує додаток, на основі зареєстрованих Intents.

Обмеження Car App: Apple та Google суворо контролюють UX для безпеки — мінімальна кількість елементів, великі кнопки (мінімум 48x48 pt), відсутність текстового введення (тільки голос), автоматичне затемнення інтерфейсу під час руху, заборона відео. Час реакції на натискання має бути менше 100 мс. Всі додатки проходять обов'язкову модерацію (App Review для CarPlay, Google Play Console + CTS для Android Auto).

Apple CarPlay: CarPlay framework та SiriKit

CarPlay framework (раніше CPKit) — фреймворк Apple для створення CarPlay-додатків на Swift. Ключовий клас — CPInterfaceController, що керує навігацією за шаблонами. CPInterfaceController містить стек шаблонів: CPListTemplate (списки), CPMapTemplate (навігація), CPNowPlayingTemplate (аудіо), CPVoiceControlTemplate (голосове керування). CPListTemplate містить CPListItem — елементи списку з іконкою, текстом та дією.

SiriKit для CarPlay — розширення SiriKit для голосового керування додатком в автомобілі. Додаток реєструє Intents (INPlayMediaIntent — відтворення, INStartWorkoutIntent — тренування, INSendMessageIntent — повідомлення). Siri автоматично активується при підключенні CarPlay та доступна через кнопку голосового керування на кермі. SiriKit CarPlay підтримує CarPlay Dashboard — віджети на головному екрані CarPlay для відображення інформації з додатка (пункт призначення, поточний трек).

Процес підключення CarPlay: iPhone підключається до автомобіля через Lightning/USB-C кабель або бездротово (CarPlay Wireless, починаючи з iOS 9). Після підключення iOS автоматично запускає CarPlay-сесію, якщо додаток реалізує CPApplicationDelegate. Розробник не керує моментом підключення — система викликає delegate-методи при старті та завершенні сесії. CarPlay підтримує мультитаскінг: навігація працює у фоні при перемиканні на музику, і голосові підказки продовжують звучати.

Android Auto: Car App Library

Android Car App Library — бібліотека Android для створення додатків, сумісних з Android Auto. Базові компоненти: CarAppService — точка входу для Android Auto; Session — керування життєвим циклом сесії; Screen — кожен екран додатка; CarScreenManager — керування відображенням. Додаток підтримує MediaBrowserService для медіа-контенту та NavigationManager для навігаційних підказок.

MediaBrowserService — ключовий компонент для аудіо-додатків. Додаток реалізує MediaBrowserService та MediaSession для керування відтворенням. Android Auto автоматично відображає елементи керування (Play/Pause, Next, Previous) та список треків. NavigationManager використовується для навігаційних додатків — передає інструкції повороту, статус маршруту та алерти. NavigationManager підтримує CarNotification для відображення навігаційних підказок у статус-барі Android Auto.

Вимоги Android Auto: додаток повинен мати category="android.intent.category.APP_AUTO" в маніфесті; обов'язкове використання AndroidX та мінімальний SDK 26+; підтримка темної теми (DayNight); підтримка сенсорного та голосового керування; відповідність Android Auto Compatibility Test Suite (CTS). Google Play перевіряє кожен додаток на відповідність вимогам безпеки та UX. Процес сертифікації займає 1–4 тижні.

Приклади коду: Swift та Kotlin

Приклад навігаційного додатка для CarPlay на Swift з використанням CarPlay framework.

swift
import CarPlay

class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {

    func templateApplicationScene(
        _ templateApplicationScene: CPTemplateApplicationScene,
        didConnect interfaceController: CPInterfaceController
    ) {
        let searchItem = CPListItem(
            text: "Пошук адреси",
            detailText: "Введіть пункт призначення"
        )
        searchItem.handler = { _, completion in
            // Відкриваємо екран пошуку
            completion()
        }

        let favoritesItem = CPListItem(
            text: "Обране",
            detailText: "Збережені адреси"
        )
        favoritesItem.handler = { _, completion in
            showFavorites()
            completion()
        }

        let section = CPListSection(items: [searchItem, favoritesItem])
        let listTemplate = CPListTemplate(
            title: "Навігація",
            sections: [section]
        )

        interfaceController.setRootTemplate(listTemplate, animated: true)
    }

    func showFavorites() {
        // Відображення списку вибраних адрес
    }
}

// SiriKit Intent для голосового керування
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
    func handle(intent: INSearchForMessagesIntent,
                completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
        // Обробка голосової команди через Siri
        let response = INSearchForMessagesIntentResponse(
            code: .success, userActivity: nil
        )
        completion(response)
    }
}

Ключові моменти: CPTemplateApplicationSceneDelegate — точка входу для CarPlay-сесії; CPInterfaceController керує стеком шаблонів; CPListTemplate та CPListItem — базові UI-компоненти; .handler — обробник натискання для кожного елемента списку.

Приклад навігаційного додатка для Android Auto на Kotlin з Car App Library:

kotlin
// CarAppService — точка входу для Android Auto
class NavigationCarAppService : CarAppService() {
    override fun createSession(): Session = NavigationSession()
}

// Session — керування життєвим циклом сесії
class NavigationSession : Session() {
    override fun onCreateScreen(manager: ScreenManager): Screen {
        return MainScreen(carContext)
    }
}

// MainScreen — головний екран з навігацією
class MainScreen(carContext: CarContext) : Screen(carContext) {
    override fun onGetTemplate(): Template {
        val searchAction = Action.Builder()
            .setTitle("Пошук адреси")
            .setOnClickListener { showSearchScreen() }
            .build()

        val favoritesAction = Action.Builder()
            .setTitle("Обране")
            .setOnClickListener { showFavorites() }
            .build()

        return ListTemplate.Builder()
            .setTitle("Навігація")
            .setHeaderAction(Action.APP_ICON)
            .addAction(searchAction)
            .addAction(favoritesAction)
            .build()
    }

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

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

// AndroidManifest — реєстрація сервісу
<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>

Ключові моменти: CarAppService — точка входу для Android Auto; Session — керування життєвим циклом; Screen — кожен екран додатка, повертає Template; ListTemplate — шаблон для списків з Action; category.APP_AUTO — обов'язкова категорія в маніфесті.

Вимоги та публікація

Вимоги Apple CarPlay: додаток повинен відповідати CarPlay Distraction Design Guidelines — мінімальний розмір кнопок 48x48 pt, контрастність тексту 4.5:1, відсутність анімації та відео, підтримка VoiceOver. Публікація — через App Store Connect, додаток проходить стандартну модерацію Apple. Необхідно вказати підтримку CarPlay в App Store Connect та додати скріншоти CarPlay-інтерфейсу. CarPlay-додатки не можуть бути безкоштовними без реклами — Apple стягує комісію 30% (15% для малого бізнесу) на покупки всередині додатка.

Вимоги Android Auto: додаток повинен відповідати Android Auto Design Guidelines та пройти Android Auto Compatibility Test Suite (CTS). Публікація — через Google Play Console, необхідно вказати категорію "Android Auto" в списку compatible devices. Google Play перевіряє: підтримку темної теми (DayNight), коректну поведінку при втраті підключення, обробку повороту екрана, підтримку голосового керування через Google Assistant. Android Auto додатки не вимагають додаткової комісії — стандартна модель Google Play (15-30%).

ПараметрApple CarPlayAndroid Auto
ФреймворкCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
МоваSwiftKotlin
Голосовий асистентSiriKitGoogle Assistant
ІнтерфейсCPListTemplate, CPMapTemplateListTemplate, MapTemplate
МедіаMPNowPlayingInfoCenterMediaBrowserService
НавігаціяCPNavigationSessionNavigationManager
ПублікаціяApp Store ConnectGoogle Play Console
Комісія15–30%15–30%
МодераціяApp Review (1–3 дні)CTS + Google Play (1–4 тижні)

Підтримка бездротового підключення: CarPlay Wireless доступний з iOS 9 та вимагає Wi-Fi + Bluetooth. Android Auto Wireless доступний з Android 11. Для бездротового підключення автомобіль повинен підтримувати відповідний стандарт. Розробнику не потрібно писати додатковий код — ОС обробляє підключення автоматично.

Часті запитання

Чим Car App відрізняється від мобільного додатка?

Car App оптимізовано для використання за кермом: мінімальна кількість елементів, великі кнопки, голосове керування, відсутність текстового введення. Додаток повинен відповідати вимогам безпеки — Distraction Design Guidelines від Apple та Google.

Які категорії додатків доступні для CarPlay?

CarPlay підтримує категорії: навігація (Apple Maps, Google Maps, Waze), аудіо (Spotify, Apple Music), повідомлення (читання та диктовка через Siri), автомобільні функції (зарядка EV, паркування) та VOIP-дзвінки.

Як розробити додаток для Android Auto?

Використовуйте Android Car App Library: реалізуйте CarAppService для точки входу, Session для керування життєвим циклом, Screen для кожного екрана. Додаток повинен підтримувати MediaBrowserService для медіа або NavigationManager для навігації.

Чи вимагається модерація Car App?

Так, обидві платформи вимагають модерації. Apple перевіряє CarPlay-додатки через App Review. Android Auto вимагає проходження Android Auto Compatibility Test Suite (CTS) та перевірки в Google Play Console.

Які мови використовуються для Car App?

Для CarPlay — Swift з фреймворками CarPlay (CPInterfaceController, CPTemplate, CPListItem) та SiriKit. Для Android Auto — Kotlin з Car App Library та MediaBrowserService.

Підсумки

  • Car App — додаток для CarPlay (iOS) та Android Auto (Android), оптимізований для безпечного використання за кермом
  • Apple CarPlay використовує CarPlay framework з CPInterfaceController, CPListTemplate та SiriKit для голосового керування
  • Android Auto використовує Car App Library з CarAppService, Session, Screen та MediaBrowserService для медіа
  • Голосове керування — Siri (CarPlay) та Google Assistant (Android Auto) обов'язкові для навігації та повідомлень
  • UX-обмеження — великі кнопки 48x48 pt, мінімум елементів, заборона відео, реакція менше 100 мс
  • Модерація — App Store (1–3 дні) та Google Play CTS (1–4 тижні) з перевіркою безпеки та UX
  • Бездротове підключення — CarPlay Wireless (iOS 9+) та Android Auto Wireless (Android 11+) доступні без кабелю

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також