Car App — alkalmazás autós infotainment rendszerhez, amely integrálható az Apple CarPlay és Android Auto rendszerekkel. CarPlay — az Apple technológiája, amely az iPhone interfészét az autó kijelzőjén jeleníti meg, és Siri, érintőképernyő vagy kormánykerék gombok vezérlik. Android Auto — a Google hasonló technológiája Android okostelefonokhoz. A Car App fejlesztése magában foglalja az alkalmazás létrehozását Swift nyelven CarPlay framework és SiriKit segítségével iOS-re, valamint Kotlin nyelven Car App Library, MediaBrowserService és NavigationManager segítségével Androidra. A Car App támogatása szabvánnyá válik a modern autókban — az Apple szerint az USA-ban az új autók 98%-a támogatja a CarPlay-t, az Android Auto pedig több mint 200 modellben érhető el.
Főbb pontok
Car App — egy alkalmazás, amely az autó infotainment rendszerében (IVI) működik okostelefon kivetítésen keresztül — Apple CarPlay iOS-hez és Android Auto Androidhoz. Ellentétben az Android Automotive OS-szel (beépített operációs rendszer az autóban), a CarPlay és az Android Auto a mobilalkalmazás kiterjesztései, amelyek a telefonon futnak és kivetítik a felületet az autó kijelzőjére. A Car App a meglévő iOS/Android alkalmazásod, amely implementálja a CarPlay vagy Android Auto protokollokat.
A Car App kulcsfontosságú kategóriái: navigáció (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), üzenetek (hangos felolvasás és diktálás Siri/Google Assistant segítségével), autó funkciók (EV-töltés, parkolás, autó állapota), VOIP-hívások (WhatsApp, Zoom). Minden kategóriának saját felületsablonja van — ListTemplate, MapTemplate, AudioTemplate. A rendszer maga határozza meg, hogy az alkalmazás melyik kategóriát támogatja a regisztrált Intents alapján.
A Car App korlátozásai: Az Apple és a Google szigorúan ellenőrzi a UX-et a biztonság érdekében — minimális számú elem, nagy gombok (minimum 48x48 pt), nincs szövegbevitel (csak hang), a felület automatikus elsötétítése mozgáskor, videó tiltása. Az érintésre adott válaszidőnek 100 ms-nál kevesebbnek kell lennie. Minden alkalmazás kötelező moderáláson megy keresztül (App Review CarPlay esetén, Google Play Console + CTS Android Auto esetén).
CarPlay framework (korábban CPKit) — az Apple keretrendszere CarPlay alkalmazások Swift-ben történő létrehozásához. Kulcsosztály — CPInterfaceController, amely a sablonok közötti navigációt kezeli. A CPInterfaceController sablonvermet tartalmaz: CPListTemplate (listák), CPMapTemplate (navigáció), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (hangvezérlés). A CPListTemplate CPListItem-eket — ikonnal, szöveggel és művelettel rendelkező listaelemeket tartalmaz.
SiriKit CarPlayhez — a SiriKit kiterjesztése az alkalmazás hangvezérléséhez az autóban. Az alkalmazás Intents-eket regisztrál (INPlayMediaIntent — lejátszás, INStartWorkoutIntent — edzés, INSendMessageIntent — üzenetek). A Siri automatikusan aktiválódik a CarPlay csatlakoztatásakor, és a kormánykerék hangvezérlő gombján keresztül érhető el. A SiriKit CarPlay támogatja a CarPlay Dashboard-ot — widgeteket a CarPlay főképernyőjén az alkalmazás információinak megjelenítéséhez (célpont, aktuális szám).
A CarPlay csatlakozási folyamata: Az iPhone Lightning/USB-C kábellel vagy vezeték nélkül (CarPlay Wireless, iOS 9-től) csatlakozik az autóhoz. Csatlakozás után az iOS automatikusan elindítja a CarPlay munkamenetet, ha az alkalmazás implementálja a CPApplicationDelegate-t. A fejlesztő nem kezeli a csatlakozás pillanatát — a rendszer meghívja a delegate metódusokat a munkamenet kezdetén és végén. A CarPlay támogatja a multitaskingot: a navigáció a háttérben fut, amikor zenére vált, és a hangos útmutatók tovább szólnak.
Android Car App Library — Android könyvtár Android Auto-val kompatibilis alkalmazások létrehozásához. Alapvető összetevők: CarAppService — belépési pont Android Auto számára; Session — a munkamenet életciklusának kezelése; Screen — az alkalmazás minden képernyője; CarScreenManager — a megjelenítés kezelése. Az alkalmazás támogatja a MediaBrowserService-t médiatartalomhoz és a NavigationManager-t navigációs útmutatókhoz.
MediaBrowserService — kulcsfontosságú összetevő az audio alkalmazásokhoz. Az alkalmazás implementálja a MediaBrowserService-t és a MediaSession-t a lejátszás kezeléséhez. Az Android Auto automatikusan megjeleníti a vezérlőelemeket (Play/Pause, Next, Previous) és a számlistát. A NavigationManager navigációs alkalmazásokhoz használatos — kanyarodási utasításokat, útvonal állapotát és figyelmeztetéseket továbbít. A NavigationManager támogatja a CarNotification-t a navigációs útmutatók megjelenítéséhez az Android Auto állapotsorában.
Android Auto követelmények: az alkalmazásnak category="android.intent.category.APP_AUTO" értékkel kell rendelkeznie a manifestben; kötelező az AndroidX használata és minimum SDK 26+; sötét téma támogatása (DayNight); érintő- és hangvezérlés támogatása; megfelelés az Android Auto Compatibility Test Suite (CTS) követelményeinek. A Google Play ellenőrzi minden alkalmazás megfelelését a biztonsági és UX követelményeknek. A tanúsítási folyamat 1–4 hétig tart.
Példa navigációs alkalmazásra CarPlayhez Swift nyelven a CarPlay framework használatával.
import CarPlay
class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
let searchItem = CPListItem(
text: "Cím keresése",
detailText: "Adja meg a célt"
)
searchItem.handler = { _, completion in
// Megnyitjuk a keresőképernyőt
completion()
}
let favoritesItem = CPListItem(
text: "Kedvencek",
detailText: "Elmentett címek"
)
favoritesItem.handler = { _, completion in
showFavorites()
completion()
}
let section = CPListSection(items: [searchItem, favoritesItem])
let listTemplate = CPListTemplate(
title: "Navigáció",
sections: [section]
)
interfaceController.setRootTemplate(listTemplate, animated: true)
}
func showFavorites() {
// Kedvenc címek listájának megjelenítése
}
}
// SiriKit Intent hangvezérléshez
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
func handle(intent: INSearchForMessagesIntent,
completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
// Hangutasítás feldolgozása Siri segítségével
let response = INSearchForMessagesIntentResponse(
code: .success, userActivity: nil
)
completion(response)
}
}
Főbb pontok: CPTemplateApplicationSceneDelegate — belépési pont a CarPlay munkamenethez; CPInterfaceController kezeli a sablonvermeket; CPListTemplate és CPListItem — alapvető UI összetevők; .handler — érintéskezelő minden listaelemhez.
Példa navigációs alkalmazásra Android Auto-hoz Kotlin nyelven a Car App Library segítségével:
// CarAppService — belépési pont Android Auto számára
class NavigationCarAppService : CarAppService() {
override fun createSession(): Session = NavigationSession()
}
// Session — a munkamenet életciklusának kezelése
class NavigationSession : Session() {
override fun onCreateScreen(manager: ScreenManager): Screen {
return MainScreen(carContext)
}
}
// MainScreen — főképernyő navigációval
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val searchAction = Action.Builder()
.setTitle("Cím keresése")
.setOnClickListener { showSearchScreen() }
.build()
val favoritesAction = Action.Builder()
.setTitle("Kedvencek")
.setOnClickListener { showFavorites() }
.build()
return ListTemplate.Builder()
.setTitle("Navigáció")
.setHeaderAction(Action.APP_ICON)
.addAction(searchAction)
.addAction(favoritesAction)
.build()
}
private fun showSearchScreen() {
screenManager.push(SearchScreen(carContext))
}
private fun showFavorites() {
screenManager.push(FavoritesScreen(carContext))
}
}
// AndroidManifest — szolgáltatás regisztrálása
<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>
Főbb pontok: CarAppService — belépési pont Android Auto számára; Session — életciklus kezelése; Screen — az alkalmazás minden képernyője, Template-t ad vissza; ListTemplate — sablon listákhoz Action-nel; category.APP_AUTO — kötelező kategória a manifestben.
Apple CarPlay követelmények: az alkalmazásnak meg kell felelnie a CarPlay Distraction Design Guidelines követelményeinek — minimális gombméret 48x48 pt, szövegkontraszt 4.5:1, nincs animáció és videó, VoiceOver támogatás. Publikálás — App Store Connecten keresztül, az alkalmazás szabványos Apple moderáláson megy keresztül. Meg kell adni a CarPlay támogatást az App Store Connectben és csatolni kell a CarPlay felületről készült képernyőképeket. A CarPlay alkalmazások nem lehetnek ingyenesek reklámok nélkül — az Apple 30% (15% kisvállalkozások számára) jutalékot számít fel az alkalmazáson belüli vásárlásokra.
Android Auto követelmények: az alkalmazásnak meg kell felelnie az Android Auto Design Guidelines követelményeinek és át kell mennie az Android Auto Compatibility Test Suite (CTS) teszten. Publikálás — Google Play Console-on keresztül, meg kell adni az "Android Auto" kategóriát a kompatibilis eszközök listáján. A Google Play ellenőrzi: sötét téma támogatása (DayNight), helyes viselkedés kapcsolat megszakadásakor, képernyőelforgatás kezelése, hangvezérlés támogatása Google Assistant segítségével. Az Android Auto alkalmazások nem igényelnek külön jutalékot — a szabványos Google Play modell (15-30%).
| Paraméter | Apple CarPlay | Android Auto |
|---|---|---|
| Keretrendszer | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Nyelv | Swift | Kotlin |
| Hangasszisztens | SiriKit | Google Assistant |
| Felület | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Média | MPNowPlayingInfoCenter | MediaBrowserService |
| Navigáció | CPNavigationSession | NavigationManager |
| Publikálás | App Store Connect | Google Play Console |
| Jutalék | 15–30% | 15–30% |
| Moderálás | App Review (1–3 nap) | CTS + Google Play (1–4 hét) |
Vezeték nélküli kapcsolat támogatása: A CarPlay Wireless iOS 9-től érhető el, és Wi-Fi + Bluetooth szükséges hozzá. Az Android Auto Wireless Android 11-től érhető el. A vezeték nélküli kapcsolathoz az autónak támogatnia kell a megfelelő szabványt. A fejlesztőnek nem kell további kódot írnia — az operációs rendszer automatikusan kezeli a kapcsolatot.
Gyakran Ismételt Kérdések
A Car App vezetés közbeni használatra van optimalizálva: minimális számú elem, nagy gombok, hangvezérlés, nincs szövegbevitel. Az alkalmazásnak meg kell felelnie a biztonsági követelményeknek — Distraction Design Guidelines az Apple-től és a Google-tól.
A CarPlay a következő kategóriákat támogatja: navigáció (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), üzenetek (olvasás és diktálás Siri segítségével), autó funkciók (EV-töltés, parkolás) és VOIP-hívások.
Használja az Android Car App Library-t: implementálja a CarAppService-t a belépési ponthoz, a Session-t az életciklus kezeléséhez, a Screen-t minden képernyőhöz. Az alkalmazásnak támogatnia kell a MediaBrowserService-t a médiához vagy a NavigationManager-t a navigációhoz.
Igen, mindkét platform moderálást igényel. Az Apple a CarPlay alkalmazásokat App Review segítségével ellenőrzi. Az Android Auto megköveteli az Android Auto Compatibility Test Suite (CTS) teljesítését és ellenőrzést a Google Play Console-ban.
CarPlay esetén — Swift a CarPlay keretrendszerekkel (CPInterfaceController, CPTemplate, CPListItem) és SiriKit. Android Auto esetén — Kotlin a Car App Library és MediaBrowserService segítségével.
Összefoglaló
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is