Car App: CarPlay ve Android Auto geliştirmenin özü

Yazar: IT Sectr Yayınlanma: 2026-02-15 Okuma süresi: 9 dk

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 — CarPlay (iOS) ve Android Auto (Android) için uygulama, sürüş sırasında kullanım için optimize edilmiş
  • Apple CarPlay — iPhone arayüzünü araç ekranına yansıtır, Siri ve dokunmatik ile kontrol
  • Android Auto — Google Assistant desteğiyle Android akıllı telefonu araç ekranına yansıtır
  • CarPlay framework — Swift'te arayüz oluşturmak için CPInterfaceController, CPTemplate, CPListItem
  • Car App Library — MediaBrowserService ve NavigationManager ile Automotive uygulamaları oluşturmak için Android kütüphanesi

Car App Nedir

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).

Apple CarPlay: CarPlay framework ve SiriKit

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 Auto: Car App Library

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.

Kod Örnekleri: Swift ve Kotlin

CarPlay framework kullanarak Swift'te CarPlay için navigasyon uygulaması örneği.

swift
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:

kotlin
// 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.

Gereksinimler ve Yayınlama

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).

ParametreApple CarPlayAndroid Auto
FrameworkCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
DilSwiftKotlin
Ses asistanıSiriKitGoogle Assistant
ArayüzCPListTemplate, CPMapTemplateListTemplate, MapTemplate
MedyaMPNowPlayingInfoCenterMediaBrowserService
NavigasyonCPNavigationSessionNavigationManager
YayınlamaApp Store ConnectGoogle Play Console
Komisyon15–30%15–30%
DenetimApp 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, mobil uygulamadan nasıl farklıdır?

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 için hangi uygulama kategorileri mevcuttur?

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 Auto için uygulama nasıl geliştirilir?

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.

Car App için denetim gerekli midir?

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.

Car App için hangi diller kullanılır?

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

  • Car App — CarPlay (iOS) ve Android Auto (Android) için uygulama, sürüş sırasında güvenli kullanım için optimize edilmiş
  • Apple CarPlay, ses kontrolü için CPInterfaceController, CPListTemplate ve SiriKit ile CarPlay framework'ünü kullanır
  • Android Auto, medya için CarAppService, Session, Screen ve MediaBrowserService ile Car App Library'yi kullanır
  • Ses kontrolü — Siri (CarPlay) ve Google Assistant (Android Auto) navigasyon ve mesajlaşma için zorunludur
  • UX sınırlamaları — büyük düğmeler 48x48 pt, minimum öğe, video yasağı, 100 ms'den az yanıt
  • Denetim — App Store (1–3 gün) ve Google Play CTS (1–4 hafta) güvenlik ve UX kontrolü ile
  • Kablosuz bağlantı — CarPlay Wireless (iOS 9+) ve Android Auto Wireless (Android 11+) kablo olmadan kullanılabilir

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.

Projeyi tartış

Ayrıca okuyun