Car App — Apple CarPlay va Android Auto bilan integratsiyalanadigan avtomobil axborot-ko'ngilochar tizimi uchun ilova. CarPlay — iPhone interfeysini avtomobil ekranida aks ettiradigan va Siri, sensorli ekran yoki rul tugmalari orqali boshqariladigan Apple texnologiyasi. Android Auto — Android smartfonlari uchun Google-ning o'xshash texnologiyasi. Car App ishlanmasi iOS uchun Swift bilan CarPlay framework va SiriKit, Android uchun esa Kotlin bilan Car App Library, MediaBrowserService va NavigationManager yaratishni o'z ichiga oladi. Car App qo'llab-quvvatlashi zamonaviy avtomobillar uchun standartga aylanmoqda — Apple ma'lumotlariga ko'ra, AQShdagi yangi avtomobillarning 98% CarPlay-ni qo'llab-quvvatlaydi, Android Auto esa 200 dan ortiq modelda mavjud.
Asosiy ma'lumotlar
Car App — smartfon proyeksiyasi orqali avtomobil axborot-ko'ngilochar tizimida (IVI) ishlaydigan ilova — iOS uchun Apple CarPlay va Android uchun Android Auto. Android Automotive OS (avtomobilga o'rnatilgan OT) dan farqli o'laroq, CarPlay va Android Auto mobil ilovaning kengaytmalari bo'lib, telefonda ishga tushadi va interfeysni avtomobil ekraniga proyeksiyalaydi. Car App — CarPlay yoki Android Auto protokollarini amalga oshiradigan mavjud iOS/Android ilovangiz.
Car App ning asosiy kategoriyalari: navigatsiya (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), xabarlar (Siri/Google Assistant orqali ovozli o'qish va diktant), avtomobil funksiyalari (EV quvvatlash, parkovka, avtomobil holati), VOIP qo'ng'iroqlari (WhatsApp, Zoom). Har bir kategoriyaning o'z interfeys shabloni bor — ListTemplate, MapTemplate, AudioTemplate. Tizim ro'yxatdan o'tgan Intents asosida ilova qaysi kategoriyani qo'llab-quvvatlashini o'zi aniqlaydi.
Car App cheklovlari: Apple va Google xavfsizlik uchun UX-ni qattiq nazorat qiladi — minimal elementlar soni, katta tugmalar (minimum 48x48 pt), matn kiritish yo'q (faqat ovoz), harakat paytida interfeysning avtomatik qorayishi, video taqiqi. Tegish reaksiya vaqti 100 ms dan kam bo'lishi kerak. Barcha ilovalar majburiy moderatsiyadan o'tadi (CarPlay uchun App Review, Android Auto uchun Google Play Console + CTS).
CarPlay framework (ilgari CPKit) — Swift-da CarPlay ilovalar yaratish uchun Apple freymvorki. Asosiy klass — shablonlar bo'ylab navigatsiyani boshqaradigan CPInterfaceController. CPInterfaceController shablonlar stekini o'z ichiga oladi: CPListTemplate (ro'yxatlar), CPMapTemplate (navigatsiya), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (ovozli boshqaruv). CPListTemplate ikona, matn va harakatga ega CPListItem — ro'yxat elementlarini o'z ichiga oladi.
CarPlay uchun SiriKit — avtomobilda ilovani ovozli boshqarish uchun SiriKit kengaytmasi. Ilova Intents-ni ro'yxatdan o'tkazadi (INPlayMediaIntent — ijro etish, INStartWorkoutIntent — mashq, INSendMessageIntent — xabarlar). Siri CarPlay ulanganda avtomatik faollashadi va ruldagi ovozli boshqaruv tugmasi orqali mavjud. SiriKit CarPlay CarPlay Dashboard-ni qo'llab-quvvatlaydi — ilovadan ma'lumotlarni (manzil, joriy trek) ko'rsatish uchun CarPlay asosiy ekranidagi vidjetlar.
CarPlay ulanish jarayoni: iPhone avtomobilga Lightning/USB-C kabeli yoki simsiz (iOS 9 dan CarPlay Wireless) orqali ulanadi. Ulangandan so'ng, iOS ilova CPApplicationDelegate-ni amalga oshirsa, avtomatik CarPlay sessiyasini ishga tushiradi. Dasturchi ulanish vaqtini boshqarmaydi — tizim sessiya boshlanishi va tugashida delegate metodlarini chaqiradi. CarPlay multitasking-ni qo'llab-quvvatlaydi: navigatsiya musiqa almashtirilganda fonda ishlaydi va ovozli ko'rsatmalar yangraydi.
Android Car App Library — Android Auto bilan mos ilovalar yaratish uchun Android kutubxonasi. Asosiy komponentlar: CarAppService — Android Auto uchun kirish nuqtasi; Session — sessiya hayot aylanishini boshqarish; Screen — ilovaning har bir ekrani; CarScreenManager — ko'rsatishni boshqarish. Ilova media tarkibi uchun MediaBrowserService va navigatsiya ko'rsatmalari uchun NavigationManager-ni qo'llab-quvvatlaydi.
MediaBrowserService — audio ilovalar uchun asosiy komponent. Ilova ijro etishni boshqarish uchun MediaBrowserService va MediaSession-ni amalga oshiradi. Android Auto avtomatik ravishda boshqaruv elementlarini (Play/Pause, Next, Previous) va treklar ro'yxatini ko'rsatadi. NavigationManager navigatsiya ilovalari uchun ishlatiladi — burilish ko'rsatmalarini, marshrut holatini va ogohlantirishlarni uzatadi. NavigationManager Android Auto holat panelida navigatsiya ko'rsatmalarini ko'rsatish uchun CarNotification-ni qo'llab-quvvatlaydi.
Android Auto talablari: ilova manifestda category="android.intent.category.APP_AUTO" bo'lishi kerak; majburiy AndroidX ishlatish va minimal SDK 26+; qorong'u mavzu qo'llab-quvvatlashi (DayNight); sensor va ovozli boshqaruv qo'llab-quvvatlashi; Android Auto Compatibility Test Suite (CTS) mosligi. Google Play har bir ilovani xavfsizlik va UX talablariga muvofiqligi uchun tekshiradi. Sertifikatlashtirish jarayoni 1–4 hafta davom etadi.
CarPlay framework yordamida Swift-da CarPlay uchun navigatsiya ilovasi namunasi.
import CarPlay
class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
let searchItem = CPListItem(
text: "Manzil qidiruvi",
detailText: "Belgilangan joyni kiriting"
)
searchItem.handler = { _, completion in
// Qidiruv ekranini ochamiz
completion()
}
let favoritesItem = CPListItem(
text: "Tanlanganlar",
detailText: "Saqlangan manzillar"
)
favoritesItem.handler = { _, completion in
showFavorites()
completion()
}
let section = CPListSection(items: [searchItem, favoritesItem])
let listTemplate = CPListTemplate(
title: "Navigatsiya",
sections: [section]
)
interfaceController.setRootTemplate(listTemplate, animated: true)
}
func showFavorites() {
// Tanlangan manzillar ro'yxatini ko'rsatish
}
}
// Ovozli boshqaruv uchun SiriKit Intent
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
func handle(intent: INSearchForMessagesIntent,
completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
// Siri orqali ovozli buyruqni qayta ishlash
let response = INSearchForMessagesIntentResponse(
code: .success, userActivity: nil
)
completion(response)
}
}
Asosiy nuqtalar: CPTemplateApplicationSceneDelegate — CarPlay sessiyasi uchun kirish nuqtasi; CPInterfaceController shablonlar stekini boshqaradi; CPListTemplate va CPListItem — asosiy UI komponentlari; .handler — har bir ro'yxat elementi uchun tegish ishlovchisi.
Car App Library bilan Kotlin-da Android Auto uchun navigatsiya ilovasi namunasi:
// CarAppService — Android Auto uchun kirish nuqtasi
class NavigationCarAppService : CarAppService() {
override fun createSession(): Session = NavigationSession()
}
// Session — sessiya hayot aylanishini boshqarish
class NavigationSession : Session() {
override fun onCreateScreen(manager: ScreenManager): Screen {
return MainScreen(carContext)
}
}
// MainScreen — navigatsiya bilan asosiy ekran
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val searchAction = Action.Builder()
.setTitle("Manzil qidiruvi")
.setOnClickListener { showSearchScreen() }
.build()
val favoritesAction = Action.Builder()
.setTitle("Tanlanganlar")
.setOnClickListener { showFavorites() }
.build()
return ListTemplate.Builder()
.setTitle("Navigatsiya")
.setHeaderAction(Action.APP_ICON)
.addAction(searchAction)
.addAction(favoritesAction)
.build()
}
private fun showSearchScreen() {
screenManager.push(SearchScreen(carContext))
}
private fun showFavorites() {
screenManager.push(FavoritesScreen(carContext))
}
}
// AndroidManifest — xizmatni ro'yxatdan o'tkazish
<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>
Asosiy nuqtalar: CarAppService — Android Auto uchun kirish nuqtasi; Session — hayot aylanishini boshqarish; Screen — ilovaning har bir ekrani, Template qaytaradi; ListTemplate — Action bilan ro'yxatlar uchun shablon; category.APP_AUTO — manifestda majburiy kategoriya.
Apple CarPlay talablari: ilova CarPlay Distraction Design Guidelines ga mos kelishi kerak — tugmalarning minimal o'lchami 48x48 pt, matn kontrasti 4.5:1, animatsiya va video yo'qligi, VoiceOver qo'llab-quvvatlashi. Nashr — App Store Connect orqali, ilova standart Apple moderatsiyasidan o'tadi. App Store Connect-da CarPlay qo'llab-quvvatlashini ko'rsatish va CarPlay interfeysining ekran tasvirlarini ilova qilish kerak. CarPlay ilovalari reklamasiz bepul bo'lishi mumkin emas — Apple ilova ichidagi xaridlardan 30% (kichik biznes uchun 15%) komissiya oladi.
Android Auto talablari: ilova Android Auto Design Guidelines ga mos kelishi va Android Auto Compatibility Test Suite (CTS) dan o'tishi kerak. Nashr — Google Play Console orqali, mos qurilmalar ro'yxatida "Android Auto" kategoriyasini ko'rsatish kerak. Google Play tekshiradi: qorong'u mavzu qo'llab-quvvatlashi (DayNight), ulanish uzilishida to'g'ri xatti-harakat, ekran aylanishini boshqarish, Google Assistant orqali ovozli boshqaruv qo'llab-quvvatlashi. Android Auto ilovalari qo'shimcha komissiya talab qilmaydi — standart Google Play modeli (15-30%).
| Parametr | Apple CarPlay | Android Auto |
|---|---|---|
| Freymvork | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Til | Swift | Kotlin |
| Ovozli yordamchi | SiriKit | Google Assistant |
| Interfeys | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Media | MPNowPlayingInfoCenter | MediaBrowserService |
| Navigatsiya | CPNavigationSession | NavigationManager |
| Nashr | App Store Connect | Google Play Console |
| Komissiya | 15–30% | 15–30% |
| Moderatsiya | App Review (1–3 kun) | CTS + Google Play (1–4 hafta) |
Simsiz ulanish qo'llab-quvvatlashi: CarPlay Wireless iOS 9 dan mavjud va Wi-Fi + Bluetooth talab qiladi. Android Auto Wireless Android 11 dan mavjud. Simsiz ulanish uchun avtomobil tegishli standartni qo'llab-quvvatlashi kerak. Dasturchi qo'shimcha kod yozishi shart emas — OT ulanishni avtomatik boshqaradi.
Ko'p beriladigan savollar
Car App rul orqasida foydalanish uchun optimallashtirilgan: minimal elementlar soni, katta tugmalar, ovozli boshqaruv, matn kiritish yo'q. Ilova xavfsizlik talablariga javob berishi kerak — Apple va Google-dan Distraction Design Guidelines.
CarPlay kategoriyalarni qo'llab-quvvatlaydi: navigatsiya (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), xabarlar (Siri orqali o'qish va diktant), avtomobil funksiyalari (EV quvvatlash, parkovka) va VOIP qo'ng'iroqlari.
Android Car App Library dan foydalaning: kirish nuqtasi uchun CarAppService, hayot aylanishini boshqarish uchun Session, har bir ekran uchun Screen ni amalga oshiring. Ilova media uchun MediaBrowserService yoki navigatsiya uchun NavigationManager ni qo'llab-quvvatlashi kerak.
Ha, ikkala platforma ham moderatsiya talab qiladi. Apple CarPlay ilovalarini App Review orqali tekshiradi. Android Auto Android Auto Compatibility Test Suite (CTS) dan o'tishni va Google Play Console-da tekshirishni talab qiladi.
CarPlay uchun — CarPlay (CPInterfaceController, CPTemplate, CPListItem) va SiriKit freymvorklari bilan Swift. Android Auto uchun — Car App Library va MediaBrowserService bilan Kotlin.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.