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 — برنامهای است که در سیستم اطلاعات-سرگرمی خودرو (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).
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 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 بررسی میکند. فرآیند صدور گواهی ۱ تا ۴ هفته طول میکشد.
نمونه برنامه ناوبری برای 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 باشد — حداقل اندازه دکمهها ۴۸×۴۸ 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 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 |
| کارمزد | ۱۵–۳۰٪ | ۱۵–۳۰٪ |
| نظارت | App Review (۱–۳ روز) | CTS + Google Play (۱–۴ هفته) |
پشتیبانی از اتصال بیسیم: CarPlay Wireless از iOS ۹ در دسترس است و به Wi-Fi + Bluetooth نیاز دارد. Android Auto Wireless از Android ۱۱ در دسترس است. برای اتصال بیسیم خودرو باید استاندارد مربوطه را پشتیبانی کند. توسعهدهنده نیازی به نوشتن کد اضافی ندارد — سیستم عامل اتصال را خودکار مدیریت میکند.
سوالات متداول
Car App برای استفاده پشت فرمان بهینه شده است: حداقل عناصر، دکمههای بزرگ، کنترل صوتی، بدون ورود متن. برنامه باید الزامات ایمنی را برآورده کند — Distraction Design Guidelines از اپل و گوگل.
CarPlay از دستهها پشتیبانی میکند: ناوبری (Apple Maps، Google Maps، Waze)، صوتی (Spotify، Apple Music)، پیامها (خواندن و دیکته از طریق Siri)، عملکردهای خودرو (شارژ EV، پارکینگ) و تماسهای VOIP.
از Android Car App Library استفاده کنید: CarAppService را برای نقطه ورود، Session را برای مدیریت چرخه حیات، Screen را برای هر صفحه پیادهسازی کنید. برنامه باید از MediaBrowserService برای رسانه یا NavigationManager برای ناوبری پشتیبانی کند.
بله، هر دو پلتفرم نیاز به نظارت دارند. اپل برنامههای 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 از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.