Car App — Apple CarPlay ve Android Auto ile entegre olan araç bilgi-eğlence sistemi uygulamasıdır. CarPlay, iPhone arayüzünü araç ekranına yansıtan ve Siri, dokunmatik ekran veya direksiyon düğmeleri aracılığıyla kontrol edilen Apple teknolojisidir. Android Auto, Android akıllı telefonlar için Google'ın benzer teknolojisidir. Car App geliştirme, iOS için Swift ile CarPlay framework ve SiriKit kullanarak, Android için ise Kotlin ile Car App Library, MediaBrowserService ve NavigationManager kullanarak uygulama oluşturmayı içerir. Car App desteği modern araçlar için standart haline geliyor — Apple'a göre ABD'deki yeni araçların %98'i CarPlay'i destekliyor ve Android Auto 200'den fazla modelde mevcut.
Önemli Noktalar
Car App — akıllı telefon yansıtması yoluyla araç bilgi-eğlence sisteminde (IVI) çalışan bir uygulamadır — iOS için Apple CarPlay ve Android için Android Auto. Android Automotive OS'den (araca gömülü işletim sistemi) farklı olarak, CarPlay ve Android Auto, telefonda çalışan ve arayüzü araç ekranına yansıtan mobil uygulamanın uzantılarıdır. Car App, CarPlay veya Android Auto protokollerini uygulayan mevcut iOS/Android uygulamanızdır.
Car App ana kategorileri: navigasyon (Apple Maps, Google Maps, Waze, Sygic), ses (Spotify, Apple Music, YouTube Music, Audible, Castbox), mesajlaşma (Siri/Google Assistant aracılığıyla sesli okuma ve dikte), otomotiv işlevleri (EV şarjı, park etme, araç durumu), VOIP aramaları (WhatsApp, Zoom). Her kategorinin kendi arayüz şablonu vardır — ListTemplate, MapTemplate, AudioTemplate. Sistem, kayıtlı Intent'lere göre uygulamanın hangi kategoriyi desteklediğini kendisi belirler.
Car App sınırlamaları: Apple ve Google, güvenlik için UX'i sıkı bir şekilde kontrol eder — minimum sayıda öğe, büyük düğmeler (minimum 48x48 pt), metin girişi yok (yalnızca ses), sürüş sırasında otomatik arayüz karartma, video yasağı. Basma yanıt süresi 100 ms'den az olmalıdır. Tüm uygulamalar zorunlu denetimden geçer (CarPlay için App Review, Android Auto için Google Play Console + CTS).
CarPlay framework (eski adıyla CPKit) — Swift'te CarPlay uygulamaları oluşturmak için Apple'ın framework'üdür. Anahtar sınıf, şablon navigasyonunu yöneten CPInterfaceController'dır. CPInterfaceController bir şablon yığını içerir: CPListTemplate (listeler), CPMapTemplate (navigasyon), CPNowPlayingTemplate (ses), CPVoiceControlTemplate (ses kontrolü). CPListTemplate, CPListItem içerir — simge, metin ve eylem içeren liste öğeleri.
CarPlay için SiriKit — arabadaki uygulamanın ses kontrolü için bir SiriKit uzantısıdır. Uygulama Intent'leri kaydeder (INPlayMediaIntent — oynatma, INStartWorkoutIntent — egzersiz, INSendMessageIntent — mesajlar). CarPlay bağlandığında Siri otomatik olarak etkinleşir ve direksiyondaki ses kontrol düğmesi aracılığıyla kullanılabilir. SiriKit CarPlay, CarPlay Dashboard'ı destekler — uygulamadan bilgileri (hedef, mevcut parça) görüntülemek için CarPlay ana ekranındaki widget'lar.
CarPlay bağlantı süreci: iPhone, Lightning/USB-C kablosu veya kablosuz olarak (CarPlay Wireless, iOS 9'dan itibaren) araca bağlanır. Bağlantıdan sonra, uygulama CPApplicationDelegate uyguluyorsa iOS otomatik olarak bir CarPlay oturumu başlatır. Geliştirici bağlantı anını kontrol etmez — sistem oturum başlangıcında ve bitişinde delegate yöntemlerini çağırır. CarPlay çoklu görevi destekler: müziğe geçildiğinde navigasyon arka planda çalışır ve sesli yönlendirmeler çalmaya devam eder.
Android Car App Library — Android Auto ile uyumlu uygulamalar oluşturmak için bir Android kütüphanesidir. Temel bileşenler: CarAppService — Android Auto için giriş noktası; Session — oturum yaşam döngüsü yönetimi; Screen — uygulamanın her ekranı; CarScreenManager — görüntüleme yönetimi. Uygulama, medya içeriği için MediaBrowserService ve navigasyon talimatları için NavigationManager'ı destekler.
MediaBrowserService — ses uygulamaları için anahtar bir bileşendir. Uygulama, oynatmayı yönetmek için MediaBrowserService ve MediaSession uygular. Android Auto otomatik olarak kontrolleri (Oynat/Duraklat, Sonraki, Önceki) ve parça listesini görüntüler. NavigationManager, navigasyon uygulamaları için kullanılır — dönüş talimatlarını, rota durumunu ve uyarıları iletir. NavigationManager, Android Auto durum çubuğunda navigasyon talimatlarını görüntülemek için CarNotification'ı destekler.
Android Auto gereksinimleri: uygulamanın manifest dosyasında category="android.intent.category.APP_AUTO" bulunmalıdır; AndroidX ve minimum SDK 26+ kullanımı zorunludur; koyu tema (DayNight) desteği; dokunmatik ve ses kontrolü desteği; Android Auto Compatibility Test Suite (CTS) uyumluluğu. Google Play, her uygulamayı güvenlik ve UX gereksinimlerine uygunluk açısından kontrol eder. Sertifikasyon süreci 1–4 hafta sürer.
CarPlay framework kullanarak Swift'te CarPlay için navigasyon uygulaması örneği.
import CarPlay
class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
let searchItem = CPListItem(
text: "Adres ara",
detailText: "Hedef girin"
)
searchItem.handler = { _, completion in
// Arama ekranını aç
completion()
}
let favoritesItem = CPListItem(
text: "Favoriler",
detailText: "Kaydedilmiş adresler"
)
favoritesItem.handler = { _, completion in
showFavorites()
completion()
}
let section = CPListSection(items: [searchItem, favoritesItem])
let listTemplate = CPListTemplate(
title: "Navigasyon",
sections: [section]
)
interfaceController.setRootTemplate(listTemplate, animated: true)
}
func showFavorites() {
// Favori adreslerin listesini göster
}
}
// Ses kontrolü için SiriKit Intent
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
func handle(intent: INSearchForMessagesIntent,
completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
// Siri aracılığıyla sesli komut işleme
let response = INSearchForMessagesIntentResponse(
code: .success, userActivity: nil
)
completion(response)
}
}
Anahtar noktalar: CPTemplateApplicationSceneDelegate — CarPlay oturumu için giriş noktası; CPInterfaceController şablon yığınını yönetir; CPListTemplate ve CPListItem — temel UI bileşenleri; .handler — her liste öğesi için tıklama işleyicisi.
Car App Library ile Kotlin'de Android Auto için navigasyon uygulaması örneği:
// CarAppService — Android Auto için giriş noktası
class NavigationCarAppService : CarAppService() {
override fun createSession(): Session = NavigationSession()
}
// Session — oturum yaşam döngüsü yönetimi
class NavigationSession : Session() {
override fun onCreateScreen(manager: ScreenManager): Screen {
return MainScreen(carContext)
}
}
// MainScreen — navigasyonlu ana ekran
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val searchAction = Action.Builder()
.setTitle("Adres ara")
.setOnClickListener { showSearchScreen() }
.build()
val favoritesAction = Action.Builder()
.setTitle("Favoriler")
.setOnClickListener { showFavorites() }
.build()
return ListTemplate.Builder()
.setTitle("Navigasyon")
.setHeaderAction(Action.APP_ICON)
.addAction(searchAction)
.addAction(favoritesAction)
.build()
}
private fun showSearchScreen() {
screenManager.push(SearchScreen(carContext))
}
private fun showFavorites() {
screenManager.push(FavoritesScreen(carContext))
}
}
// AndroidManifest — hizmet kaydı
<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>
Anahtar noktalar: CarAppService — Android Auto için giriş noktası; Session — yaşam döngüsü yönetimi; Screen — uygulamanın her ekranı, bir Template döndürür; ListTemplate — Action ile listeler için şablon; category.APP_AUTO — manifestte zorunlu kategori.
Apple CarPlay gereksinimleri: uygulama CarPlay Distraction Design Guidelines'a uymalıdır — minimum düğme boyutu 48x48 pt, metin kontrastı 4.5:1, animasyon veya video yok, VoiceOver desteği. Yayınlama — App Store Connect aracılığıyla, uygulama standart Apple denetiminden geçer. App Store Connect'te CarPlay desteği belirtilmeli ve CarPlay arayüzünün ekran görüntüleri eklenmelidir. CarPlay uygulamaları reklamsız ücretsiz olamaz — Apple, uygulama içi satın alımlarda %30 (küçük işletmeler için %15) komisyon alır.
Android Auto gereksinimleri: uygulama Android Auto Design Guidelines'a uymalı ve Android Auto Compatibility Test Suite'ten (CTS) geçmelidir. Yayınlama — Google Play Console aracılığıyla, uyumlu cihazlar listesinde "Android Auto" kategorisi belirtilmelidir. Google Play şunları kontrol eder: koyu tema (DayNight) desteği, bağlantı kaybında doğru davranış, ekran dönüşü işleme, Google Assistant aracılığıyla ses kontrolü desteği. Android Auto uygulamaları ek komisyon gerektirmez — standart Google Play modeli (%15-30).
| Parametre | Apple CarPlay | Android Auto |
|---|---|---|
| Framework | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Dil | Swift | Kotlin |
| Ses asistanı | SiriKit | Google Assistant |
| Arayüz | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Medya | MPNowPlayingInfoCenter | MediaBrowserService |
| Navigasyon | CPNavigationSession | NavigationManager |
| Yayınlama | App Store Connect | Google Play Console |
| Komisyon | 15–30% | 15–30% |
| Denetim | App Review (1–3 gün) | CTS + Google Play (1–4 hafta) |
Kablosuz bağlantı desteği: CarPlay Wireless, iOS 9'dan itibaren kullanılabilir ve Wi-Fi + Bluetooth gerektirir. Android Auto Wireless, Android 11'den itibaren kullanılabilir. Kablosuz bağlantı için arabanın ilgili standardı desteklemesi gerekir. Geliştiricinin ek kod yazması gerekmez — işletim sistemi bağlantıyı otomatik olarak yönetir.
Sıkça Sorulan Sorular
Car App, sürüş sırasında kullanım için optimize edilmiştir: minimum sayıda öğe, büyük düğmeler, ses kontrollü, metin girişi yok. Uygulama güvenlik gereksinimlerine uymalıdır — Apple ve Google'dan Distraction Design Guidelines.
CarPlay kategorileri destekler: navigasyon (Apple Maps, Google Maps, Waze), ses (Spotify, Apple Music), mesajlaşma (Siri aracılığıyla okuma ve dikte), otomotiv işlevleri (EV şarjı, park etme) ve VOIP aramaları.
Android Car App Library'yi kullanın: giriş noktası için CarAppService, yaşam döngüsü yönetimi için Session, her ekran için Screen uygulayın. Uygulama medya için MediaBrowserService veya navigasyon için NavigationManager'ı desteklemelidir.
Evet, her iki platform da denetim gerektirir. Apple, CarPlay uygulamalarını App Review aracılığıyla inceler. Android Auto, Android Auto Compatibility Test Suite (CTS)'i geçmeyi ve Google Play Console'da doğrulamayı gerektirir.
CarPlay için — Swift ve CarPlay framework'leri (CPInterfaceController, CPTemplate, CPListItem) ile SiriKit. Android Auto için — Kotlin ve Car App Library ile MediaBrowserService.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun