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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.