Car App: ماهیت توسعه برای CarPlay و Android Auto

نویسنده: IT Sectr منتشر شده: 2026-02-15 زمان مطالعه: 9 دقیقه

Car App — برنامه‌ای برای سیستم اطلاعات-سرگرمی خودرو که با Apple CarPlay و Android Auto یکپارچه می‌شود. CarPlay — فناوری اپل که رابط آیفون را روی صفحه خودرو نمایش می‌دهد و از طریق Siri، صفحه لمسی یا دکمه‌های فرمان کنترل می‌شود. Android Auto — فناوری مشابه گوگل برای گوشی‌های اندرویدی. توسعه Car App شامل ایجاد برنامه به Swift با CarPlay framework و SiriKit برای iOS و به Kotlin با Car App Library، MediaBrowserService و NavigationManager برای اندروید است. پشتیبانی Car App به استانداردی برای خودروهای مدرن تبدیل می‌شود — به گفته اپل، ۹۸٪ خودروهای جدید در ایالات متحده از CarPlay پشتیبانی می‌کنند و Android Auto در بیش از ۲۰۰ مدل در دسترس است.

نکات اصلی

  • Car App — برنامه‌ای برای CarPlay (iOS) و Android Auto (Android) که برای استفاده پشت فرمان بهینه شده است
  • Apple CarPlay — نمایش رابط آیفون روی صفحه خودرو، کنترل از طریق Siri و لمس
  • Android Auto — نمایش گوشی اندرویدی روی صفحه خودرو با پشتیبانی Google Assistant
  • CarPlay framework — CPInterfaceController، CPTemplate، CPListItem برای ساخت رابط در Swift
  • Car App Library — کتابخانه اندروید برای ایجاد برنامه‌های Automotive با MediaBrowserService و NavigationManager

Car App چیست

Car App — برنامه‌ای است که در سیستم اطلاعات-سرگرمی خودرو (IVI) از طریق نمایشگر گوشی هوشمند کار می‌کند — Apple CarPlay برای iOS و Android Auto برای اندروید. برخلاف 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: اپل و گوگل UX را برای ایمنی به شدت کنترل می‌کنند — حداقل تعداد عناصر، دکمه‌های بزرگ (حداقل ۴۸×۴۸ pt)، عدم ورود متن (فقط صدا)، تاریک شدن خودکار رابط هنگام حرکت، ممنوعیت ویدئو. زمان واکنش به لمس باید کمتر از ۱۰۰ میلی‌ثانیه باشد. همه برنامه‌ها تحت نظارت اجباری قرار می‌گیرند (App Review برای CarPlay، Google Play Console + CTS برای Android Auto).

Apple CarPlay: CarPlay framework و SiriKit

CarPlay framework (پیشتر CPKit) — چارچوب اپل برای ایجاد برنامه‌های 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: آیفون از طریق کابل Lightning/USB-C یا بی‌سیم (CarPlay Wireless، از iOS 9) به خودرو متصل می‌شود. پس از اتصال، iOS اگر برنامه CPApplicationDelegate را پیاده‌سازی کند، به طور خودکار جلسه CarPlay را شروع می‌کند. توسعه‌دهنده لحظه اتصال را مدیریت نمی‌کند — سیستم متدهای delegate را در شروع و پایان جلسه فراخوانی می‌کند. CarPlay از چندوظیفه‌ای پشتیبانی می‌کند: ناوبری در پس‌زمینه هنگام جابجایی به موسیقی کار می‌کند و راهنماهای صوتی به صدا در می‌آیند.

Android Auto: Car App Library

Android Car App Library — کتابخانه اندروید برای ایجاد برنامه‌های سازگار با 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 ۲۶+؛ پشتیبانی از تم تیره (DayNight)؛ پشتیبانی از کنترل لمسی و صوتی؛ مطابقت با Android Auto Compatibility Test Suite (CTS). Google Play هر برنامه را از نظر مطابقت با الزامات امنیتی و UX بررسی می‌کند. فرآیند صدور گواهی ۱ تا ۴ هفته طول می‌کشد.

نمونه کد: Swift و Kotlin

نمونه برنامه ناوبری برای CarPlay به Swift با استفاده از CarPlay framework.

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

kotlin
// 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 باشد — حداقل اندازه دکمه‌ها ۴۸×۴۸ pt، کنتراست متن ۴.۵:۱، بدون انیمیشن و ویدئو، پشتیبانی VoiceOver. انتشار — از طریق App Store Connect، برنامه از نظارت استاندارد اپل عبور می‌کند. باید پشتیبانی CarPlay را در App Store Connect مشخص کرده و اسکرین‌شات‌های رابط CarPlay را ضمیمه کنید. برنامه‌های CarPlay نمی‌توانند بدون تبلیغات رایگان باشند — اپل ۳۰٪ (۱۵٪ برای کسب‌وکارهای کوچک) از خریدهای درون‌برنامه‌ای کارمزد دریافت می‌کند.

نیازمندی‌های Android Auto: برنامه باید مطابق Android Auto Design Guidelines باشد و Android Auto Compatibility Test Suite (CTS) را پشت سر بگذارد. انتشار — از طریق Google Play Console، باید دسته "Android Auto" را در لیست دستگاه‌های سازگار مشخص کنید. Google Play بررسی می‌کند: پشتیبانی از تم تیره (DayNight)، رفتار صحیح هنگام قطع اتصال، مدیریت چرخش صفحه، پشتیبانی از کنترل صوتی از طریق Google Assistant. برنامه‌های Android Auto کارمزد اضافی ندارند — مدل استاندارد Google Play (۱۵-۳۰٪).

پارامترApple CarPlayAndroid Auto
چارچوبCarPlay framework (CPInterfaceController)Car App Library (CarAppService)
زبانSwiftKotlin
دستیار صوتیSiriKitGoogle Assistant
رابطCPListTemplate, CPMapTemplateListTemplate, MapTemplate
رسانهMPNowPlayingInfoCenterMediaBrowserService
ناوبریCPNavigationSessionNavigationManager
انتشارApp Store ConnectGoogle Play Console
کارمزد۱۵–۳۰٪۱۵–۳۰٪
نظارتApp Review (۱–۳ روز)CTS + Google Play (۱–۴ هفته)

پشتیبانی از اتصال بی‌سیم: CarPlay Wireless از iOS ۹ در دسترس است و به Wi-Fi + Bluetooth نیاز دارد. Android Auto Wireless از Android ۱۱ در دسترس است. برای اتصال بی‌سیم خودرو باید استاندارد مربوطه را پشتیبانی کند. توسعه‌دهنده نیازی به نوشتن کد اضافی ندارد — سیستم عامل اتصال را خودکار مدیریت می‌کند.

سوالات متداول

Car App چه تفاوتی با برنامه موبایل دارد؟

Car App برای استفاده پشت فرمان بهینه شده است: حداقل عناصر، دکمه‌های بزرگ، کنترل صوتی، بدون ورود متن. برنامه باید الزامات ایمنی را برآورده کند — Distraction Design Guidelines از اپل و گوگل.

چه دسته‌هایی از برنامه‌ها برای CarPlay در دسترس هستند؟

CarPlay از دسته‌ها پشتیبانی می‌کند: ناوبری (Apple Maps، Google Maps، Waze)، صوتی (Spotify، Apple Music)، پیام‌ها (خواندن و دیکته از طریق Siri)، عملکردهای خودرو (شارژ EV، پارکینگ) و تماس‌های VOIP.

چگونه برای Android Auto برنامه توسعه دهیم؟

از Android Car App Library استفاده کنید: CarAppService را برای نقطه ورود، Session را برای مدیریت چرخه حیات، Screen را برای هر صفحه پیاده‌سازی کنید. برنامه باید از MediaBrowserService برای رسانه یا NavigationManager برای ناوبری پشتیبانی کند.

آیا Car App نیاز به نظارت دارد؟

بله، هر دو پلتفرم نیاز به نظارت دارند. اپل برنامه‌های CarPlay را از طریق App Review بررسی می‌کند. Android Auto نیاز به گذراندن Android Auto Compatibility Test Suite (CTS) و بررسی در Google Play Console دارد.

چه زبان‌هایی برای Car App استفاده می‌شود؟

برای CarPlay — Swift با چارچوب‌های CarPlay (CPInterfaceController، CPTemplate، CPListItem) و SiriKit. برای Android Auto — Kotlin با Car App Library و MediaBrowserService.

جمع‌بندی

  • Car App — برنامه‌ای برای CarPlay (iOS) و Android Auto (Android) که برای استفاده ایمن پشت فرمان بهینه شده است
  • Apple CarPlay از CarPlay framework با CPInterfaceController، CPListTemplate و SiriKit برای کنترل صوتی استفاده می‌کند
  • Android Auto از Car App Library با CarAppService، Session، Screen و MediaBrowserService برای رسانه استفاده می‌کند
  • کنترل صوتی — Siri (CarPlay) و Google Assistant (Android Auto) برای ناوبری و پیام‌ها اجباری هستند
  • محدودیت‌های UX — دکمه‌های بزرگ ۴۸×۴۸ pt، حداقل عناصر، ممنوعیت ویدئو، واکنش کمتر از ۱۰۰ میلی‌ثانیه
  • نظارت — App Store (۱–۳ روز) و Google Play CTS (۱–۴ هفته) با بررسی امنیت و UX
  • اتصال بی‌سیم — CarPlay Wireless (iOS ۹+) و Android Auto Wireless (Android ۱۱+) بدون کابل در دسترس

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید