Car App — isang application para sa automotive infotainment system na isinasama sa Apple CarPlay at Android Auto. Ang CarPlay — teknolohiya ng Apple na nagpapakita ng interface ng iPhone sa screen ng kotse at kinokontrol sa pamamagitan ng Siri, touch screen, o mga button sa manibela. Ang Android Auto — katulad na teknolohiya ng Google para sa mga Android smartphone. Ang pag-develop ng Car App ay kinabibilangan ng paggawa ng application sa Swift na may CarPlay framework at SiriKit para sa iOS, at sa Kotlin — na may Car App Library, MediaBrowserService at NavigationManager para sa Android. Ang suporta sa Car App ay nagiging pamantayan para sa mga modernong kotse — ayon sa Apple, 98% ng mga bagong kotse sa US ay sumusuporta sa CarPlay, at ang Android Auto ay available sa mahigit 200 modelo.
Mga Pangunahing Punto
Car App — ay isang application na tumatakbo sa automotive infotainment system (IVI) sa pamamagitan ng projection ng smartphone — Apple CarPlay para sa iOS at Android Auto para sa Android. Hindi tulad ng Android Automotive OS (naka-embed na OS sa kotse), ang CarPlay at Android Auto ay mga extension ng mobile application na tumatakbo sa telepono at nagpo-project ng interface sa screen ng kotse. Ang Car App ay iyong umiiral na iOS/Android app na nag-iimplementa ng mga protocol ng CarPlay o Android Auto.
Mga pangunahing kategorya ng Car App: nabigasyon (Apple Maps, Google Maps, Waze, Sygic), audio (Spotify, Apple Music, YouTube Music, Audible, Castbox), mga mensahe (pagbabasa nang malakas at pag-dikta sa pamamagitan ng Siri/Google Assistant), mga function ng kotse (pag-charge ng EV, paradahan, estado ng kotse), mga tawag na VOIP (WhatsApp, Zoom). Ang bawat kategorya ay may sariling template ng interface — ListTemplate, MapTemplate, AudioTemplate. Ang sistema mismo ang tumutukoy kung aling kategorya ang sinusuportahan ng application batay sa mga rehistradong Intents.
Mga limitasyon ng Car App: Mahigpit na kinokontrol ng Apple at Google ang UX para sa kaligtasan — minimum na bilang ng mga elemento, malalaking button (minimum 48x48 pt), walang text input (boses lang), awtomatikong pagdilim ng interface kapag gumagalaw, bawal ang video. Ang oras ng reaksyon sa pagpindot ay dapat mas mababa sa 100 ms. Lahat ng application ay sumasailalim sa mandatoryong moderasyon (App Review para sa CarPlay, Google Play Console + CTS para sa Android Auto).
CarPlay framework (dating CPKit) — framework ng Apple para sa paggawa ng mga CarPlay application sa Swift. Pangunahing klase — CPInterfaceController, na namamahala sa nabigasyon sa pamamagitan ng mga template. Ang CPInterfaceController ay naglalaman ng stack ng mga template: CPListTemplate (mga listahan), CPMapTemplate (nabigasyon), CPNowPlayingTemplate (audio), CPVoiceControlTemplate (kontrol sa boses). Ang CPListTemplate ay naglalaman ng CPListItem — mga elemento ng listahan na may icon, text, at aksyon.
SiriKit para sa CarPlay — extension ng SiriKit para sa voice control ng application sa kotse. Nagrerehistro ang application ng Intents (INPlayMediaIntent — playback, INStartWorkoutIntent — ehersisyo, INSendMessageIntent — mga mensahe). Awtomatikong nag-a-activate ang Siri kapag kumonekta ang CarPlay at available sa pamamagitan ng voice control button sa manibela. Sinusuportahan ng SiriKit CarPlay ang CarPlay Dashboard — mga widget sa pangunahing screen ng CarPlay para sa pagpapakita ng impormasyon mula sa application (destinasyon, kasalukuyang track).
Proseso ng pagkonekta ng CarPlay: Kumokonekta ang iPhone sa kotse sa pamamagitan ng Lightning/USB-C cable o wireless (CarPlay Wireless, simula iOS 9). Pagkatapos kumonekta, awtomatikong sinisimulan ng iOS ang CarPlay session kung ang application ay nag-iimplementa ng CPApplicationDelegate. Hindi pinamamahalaan ng developer ang sandali ng pagkonekta — tinatawag ng sistema ang mga delegate method sa pagsisimula at pagtatapos ng session. Sinusuportahan ng CarPlay ang multitasking: ang nabigasyon ay tumatakbo sa background kapag lumipat sa musika, at ang mga voice guide ay patuloy na tumutunog.
Android Car App Library — Android library para sa paggawa ng mga application na compatible sa Android Auto. Mga pangunahing bahagi: CarAppService — entry point para sa Android Auto; Session — pamamahala ng lifecycle ng session; Screen — bawat screen ng application; CarScreenManager — pamamahala ng display. Sinusuportahan ng application ang MediaBrowserService para sa media content at NavigationManager para sa mga navigation guide.
MediaBrowserService — pangunahing bahagi para sa mga audio application. Iniimplementa ng application ang MediaBrowserService at MediaSession para sa pamamahala ng playback. Awtomatikong nagpapakita ang Android Auto ng mga kontrol (Play/Pause, Next, Previous) at listahan ng mga kanta. Ginagamit ang NavigationManager para sa mga navigation application — nagpapadala ng mga instruction sa pagliko, status ng ruta, at mga alerto. Sinusuportahan ng NavigationManager ang CarNotification para sa pagpapakita ng mga navigation guide sa status bar ng Android Auto.
Mga kinakailangan ng Android Auto: ang application ay dapat may category="android.intent.category.APP_AUTO" sa manifest; mandatoryong paggamit ng AndroidX at minimum SDK 26+; suporta sa dark theme (DayNight); suporta sa touch at voice control; pagsunod sa Android Auto Compatibility Test Suite (CTS). Sinusuri ng Google Play ang bawat application para sa pagsunod sa mga kinakailangan sa seguridad at UX. Ang proseso ng sertipikasyon ay tumatagal ng 1–4 na linggo.
Halimbawa ng navigation application para sa CarPlay sa Swift gamit ang CarPlay framework.
import CarPlay
class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
let searchItem = CPListItem(
text: "Maghanap ng address",
detailText: "Ilagay ang destinasyon"
)
searchItem.handler = { _, completion in
// Binubuksan ang screen ng paghahanap
completion()
}
let favoritesItem = CPListItem(
text: "Paborito",
detailText: "Mga naka-save na address"
)
favoritesItem.handler = { _, completion in
showFavorites()
completion()
}
let section = CPListSection(items: [searchItem, favoritesItem])
let listTemplate = CPListTemplate(
title: "Nabigasyon",
sections: [section]
)
interfaceController.setRootTemplate(listTemplate, animated: true)
}
func showFavorites() {
// Pagpapakita ng listahan ng mga paboritong address
}
}
// SiriKit Intent para sa voice control
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
func handle(intent: INSearchForMessagesIntent,
completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
// Pagproseso ng voice command sa pamamagitan ng Siri
let response = INSearchForMessagesIntentResponse(
code: .success, userActivity: nil
)
completion(response)
}
}
Mga pangunahing punto: CPTemplateApplicationSceneDelegate — entry point para sa CarPlay session; CPInterfaceController namamahala ng stack ng mga template; CPListTemplate at CPListItem — mga pangunahing UI component; .handler — handler ng pagpindot para sa bawat elemento ng listahan.
Halimbawa ng navigation application para sa Android Auto sa Kotlin na may Car App Library:
// CarAppService — entry point para sa Android Auto
class NavigationCarAppService : CarAppService() {
override fun createSession(): Session = NavigationSession()
}
// Session — pamamahala ng lifecycle ng session
class NavigationSession : Session() {
override fun onCreateScreen(manager: ScreenManager): Screen {
return MainScreen(carContext)
}
}
// MainScreen — pangunahing screen na may nabigasyon
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val searchAction = Action.Builder()
.setTitle("Maghanap ng address")
.setOnClickListener { showSearchScreen() }
.build()
val favoritesAction = Action.Builder()
.setTitle("Paborito")
.setOnClickListener { showFavorites() }
.build()
return ListTemplate.Builder()
.setTitle("Nabigasyon")
.setHeaderAction(Action.APP_ICON)
.addAction(searchAction)
.addAction(favoritesAction)
.build()
}
private fun showSearchScreen() {
screenManager.push(SearchScreen(carContext))
}
private fun showFavorites() {
screenManager.push(FavoritesScreen(carContext))
}
}
// AndroidManifest — pagrerehistro ng serbisyo
<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>
Mga pangunahing punto: CarAppService — entry point para sa Android Auto; Session — pamamahala ng lifecycle; Screen — bawat screen ng application, nagbabalik ng Template; ListTemplate — template para sa mga listahan na may Action; category.APP_AUTO — mandatoryong kategorya sa manifest.
Mga kinakailangan ng Apple CarPlay: ang application ay dapat sumunod sa CarPlay Distraction Design Guidelines — minimum na laki ng button 48x48 pt, contrast ng text 4.5:1, walang animation at video, suporta sa VoiceOver. Pag-publish — sa pamamagitan ng App Store Connect, ang application ay sumasailalim sa standard na moderasyon ng Apple. Kailangang tukuyin ang suporta sa CarPlay sa App Store Connect at mag-attach ng mga screenshot ng CarPlay interface. Ang mga CarPlay application ay hindi maaaring maging libre nang walang ads — ang Apple ay naniningil ng 30% (15% para sa maliit na negosyo) na komisyon sa mga pagbili sa loob ng application.
Mga kinakailangan ng Android Auto: ang application ay dapat sumunod sa Android Auto Design Guidelines at pumasa sa Android Auto Compatibility Test Suite (CTS). Pag-publish — sa pamamagitan ng Google Play Console, kailangang tukuyin ang kategoryang "Android Auto" sa listahan ng mga compatible na device. Sinusuri ng Google Play: suporta sa dark theme (DayNight), tamang pag-uugali kapag nawalan ng koneksyon, paghawak ng screen rotation, suporta sa voice control sa pamamagitan ng Google Assistant. Ang mga Android Auto application ay hindi nangangailangan ng karagdagang komisyon — standard na modelo ng Google Play (15-30%).
| Parameter | Apple CarPlay | Android Auto |
|---|---|---|
| Framework | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Wika | Swift | Kotlin |
| Voice assistant | SiriKit | Google Assistant |
| Interface | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Media | MPNowPlayingInfoCenter | MediaBrowserService |
| Nabigasyon | CPNavigationSession | NavigationManager |
| Pag-publish | App Store Connect | Google Play Console |
| Komisyon | 15–30% | 15–30% |
| Moderasyon | App Review (1–3 araw) | CTS + Google Play (1–4 na linggo) |
Suporta sa wireless connection: Ang CarPlay Wireless ay available mula iOS 9 at nangangailangan ng Wi-Fi + Bluetooth. Ang Android Auto Wireless ay available mula Android 11. Para sa wireless connection, ang kotse ay dapat sumuporta sa kaukulang standard. Ang developer ay hindi kailangang sumulat ng karagdagang code — ang OS ay awtomatikong humahawak ng koneksyon.
Mga Madalas Itanong
Ang Car App ay na-optimize para sa paggamit habang nagmamaneho: minimum na bilang ng mga elemento, malalaking button, voice control, walang text input. Ang application ay dapat sumunod sa mga kinakailangan sa kaligtasan — Distraction Design Guidelines mula sa Apple at Google.
Sinusuportahan ng CarPlay ang mga kategorya: nabigasyon (Apple Maps, Google Maps, Waze), audio (Spotify, Apple Music), mga mensahe (pagbabasa at pag-dikta sa pamamagitan ng Siri), mga function ng kotse (pag-charge ng EV, paradahan) at mga tawag na VOIP.
Gamitin ang Android Car App Library: i-implementa ang CarAppService para sa entry point, Session para sa pamamahala ng lifecycle, Screen para sa bawat screen. Ang application ay dapat sumuporta sa MediaBrowserService para sa media o NavigationManager para sa nabigasyon.
Oo, ang parehong platform ay nangangailangan ng moderasyon. Sinusuri ng Apple ang mga CarPlay application sa pamamagitan ng App Review. Ang Android Auto ay nangangailangan ng pagpasa sa Android Auto Compatibility Test Suite (CTS) at pagsusuri sa Google Play Console.
Para sa CarPlay — Swift na may mga CarPlay framework (CPInterfaceController, CPTemplate, CPListItem) at SiriKit. Para sa Android Auto — Kotlin na may Car App Library at MediaBrowserService.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din