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 — это приложение, которое работает в автомобильной информационно-развлекательной системе (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).
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 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 недели.
Пример навигационного приложения для CarPlay на Swift с использованием CarPlay framework.
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:
// 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 CarPlay | Android Auto |
|---|---|---|
| Фреймворк | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Язык | Swift | Kotlin |
| Голосовой ассистент | SiriKit | Google Assistant |
| Интерфейс | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Медиа | MPNowPlayingInfoCenter | MediaBrowserService |
| Навигация | CPNavigationSession | NavigationManager |
| Публикация | App Store Connect | Google 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 оптимизировано для использования за рулём: минимальное количество элементов, крупные кнопки, голосовое управление, отсутствие текстового ввода. Приложение должно соответствовать требованиям безопасности — Distraction Design Guidelines от Apple и Google.
CarPlay поддерживает категории: навигация (Apple Maps, Google Maps, Waze), аудио (Spotify, Apple Music), сообщения (чтение и диктовка через Siri), автомобильные функции (зарядка EV, парковка) и VOIP-звонки.
Используйте Android Car App Library: реализуйте CarAppService для точки входа, Session для управления жизненным циклом, Screen для каждого экрана. Приложение должно поддерживать MediaBrowserService для медиа или NavigationManager для навигации.
Да, обе платформы требуют модерации. Apple проверяет CarPlay-приложения через App Review. Android Auto требует прохождения Android Auto Compatibility Test Suite (CTS) и проверки в Google Play Console.
Для CarPlay — Swift с фреймворками CarPlay (CPInterfaceController, CPTemplate, CPListItem) и SiriKit. Для Android Auto — Kotlin с Car App Library и MediaBrowserService.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также