Car App — แอปพลิเคชันสำหรับระบบข้อมูลความบันเทิงในรถยนต์ที่ผสานรวมกับ Apple CarPlay และ Android Auto CarPlay เป็นเทคโนโลยีของ Apple ที่แสดงอินเทอร์เฟซของ iPhone บนหน้าจอรถยนต์และควบคุมผ่าน Siri หน้าจอสัมผัส หรือปุ่มบนพวงมาลัย Android Auto เป็นเทคโนโลยีที่คล้ายกันของ Google สำหรับสมาร์ทโฟน Android การพัฒนา Car App รวมถึงการสร้างแอปพลิเคชันใน Swift ด้วย CarPlay framework และ SiriKit สำหรับ iOS และใน Kotlin ด้วย Car App Library, MediaBrowserService และ NavigationManager สำหรับ Android การรองรับ Car App กำลังกลายเป็นมาตรฐานสำหรับรถยนต์สมัยใหม่ — ตามข้อมูลของ Apple 98% ของรถยนต์ใหม่ในสหรัฐอเมริการองรับ CarPlay และ Android Auto มีให้บริการในมากกว่า 200 รุ่น
ประเด็นสำคัญ
Car App — แอปพลิเคชันที่ทำงานบนระบบข้อมูลความบันเทิงในรถยนต์ (IVI) ผ่านการฉายจากสมาร์ทโฟน — Apple CarPlay สำหรับ iOS และ Android Auto สำหรับ Android แตกต่างจาก 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: Apple และ Google ควบคุม UX อย่างเข้มงวดเพื่อความปลอดภัย — จำนวนองค์ประกอบขั้นต่ำ ปุ่มขนาดใหญ่ (ขั้นต่ำ 48x48 pt) ไม่มีการป้อนข้อความ (เสียงเท่านั้น) การหรี่อินเทอร์เฟซอัตโนมัติขณะขับขี่ ห้ามวิดีโอ เวลาตอบสนองต่อการกดต้องน้อยกว่า 100 ms แอปพลิเคชันทั้งหมดผ่านการตรวจสอบที่บังคับ (App Review สำหรับ CarPlay, Google Play Console + CTS สำหรับ Android Auto)
CarPlay framework (เดิมชื่อ CPKit) — เฟรมเวิร์กของ Apple สำหรับสร้างแอปพลิเคชัน 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: iPhone เชื่อมต่อกับรถยนต์ผ่านสาย Lightning/USB-C หรือแบบไร้สาย (CarPlay Wireless ตั้งแต่ iOS 9) หลังจากการเชื่อมต่อ iOS จะเริ่มเซสชัน CarPlay โดยอัตโนมัติหากแอปพลิเคชันใช้ CPApplicationDelegate นักพัฒนาไม่ได้ควบคุมช่วงเวลาการเชื่อมต่อ — ระบบเรียกเมธอด delegate เมื่อเริ่มต้นและสิ้นสุดเซสชัน CarPlay รองรับการทำงานหลายอย่างพร้อมกัน: การนำทางทำงานในพื้นหลังเมื่อสลับไปยังเพลง และคำแนะนำด้วยเสียงยังคงดังต่อไป
Android Car App Library — ไลบรารี Android สำหรับสร้างแอปพลิเคชันที่เข้ากันได้กับ Android Auto ส่วนประกอบพื้นฐาน: CarAppService — จุดเริ่มต้นสำหรับ Android Auto; Session — การจัดการวงจรชีวิตเซสชัน; Screen — แต่ละหน้าจอของแอปพลิเคชัน; CarScreenManager — การจัดการการแสดงผล แอปพลิเคชันรองรับ MediaBrowserService สำหรับเนื้อหาสื่อและ NavigationManager สำหรับคำแนะนำการนำทาง
MediaBrowserService — ส่วนประกอบหลักสำหรับแอปพลิเคชันเสียง แอปพลิเคชันใช้ MediaBrowserService และ MediaSession เพื่อจัดการการเล่น Android Auto จะแสดงตัวควบคุม (เล่น/หยุดชั่วคราว, ถัดไป, ก่อนหน้า) และรายการแทร็กโดยอัตโนมัติ NavigationManager ใช้สำหรับแอปพลิเคชันนำทาง — ส่งต่อคำแนะนำการเลี้ยว สถานะเส้นทาง และการแจ้งเตือน NavigationManager รองรับ CarNotification สำหรับแสดงคำแนะนำการนำทางในแถบสถานะของ Android Auto
ข้อกำหนด Android Auto: แอปพลิเคชันต้องมี category="android.intent.category.APP_AUTO" ในแมนิเฟสต์; ต้องใช้ AndroidX และ SDK ขั้นต่ำ 26+; รองรับธีมมืด (DayNight); รองรับการควบคุมด้วยการสัมผัสและเสียง; ปฏิบัติตาม Android Auto Compatibility Test Suite (CTS) Google Play ตรวจสอบแอปพลิเคชันแต่ละรายการเพื่อให้สอดคล้องกับข้อกำหนดด้านความปลอดภัยและ UX กระบวนการรับรองใช้เวลา 1–4 สัปดาห์
ตัวอย่างแอปพลิเคชันนำทางสำหรับ 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 — ขนาดปุ่มขั้นต่ำ 48x48 pt, ความคมชัดของข้อความ 4.5:1, ไม่มีภาพเคลื่อนไหวหรือวิดีโอ, รองรับ VoiceOver การเผยแพร่ — ผ่าน App Store Connect แอปพลิเคชันผ่านการตรวจสอบมาตรฐานของ Apple ต้องระบุการรองรับ CarPlay ใน App Store Connect และแนบภาพหน้าจออินเทอร์เฟซ CarPlay แอปพลิเคชัน CarPlay ไม่สามารถให้บริการฟรีโดยไม่มีโฆษณา — Apple เรียกเก็บค่าคอมมิชชัน 30% (15% สำหรับธุรกิจขนาดเล็ก) สำหรับการซื้อภายในแอป
ข้อกำหนด 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 มาตรฐาน (15-30%)
| พารามิเตอร์ | 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 |
| ค่าคอมมิชชัน | 15–30% | 15–30% |
| การตรวจสอบ | App Review (1–3 วัน) | CTS + Google Play (1–4 สัปดาห์) |
การรองรับการเชื่อมต่อไร้สาย: CarPlay Wireless พร้อมใช้งานตั้งแต่ iOS 9 และต้องใช้ Wi-Fi + Bluetooth Android Auto Wireless พร้อมใช้งานตั้งแต่ Android 11 สำหรับการเชื่อมต่อไร้สาย รถยนต์ต้องรองรับมาตรฐานที่เกี่ยวข้อง นักพัฒนาไม่จำเป็นต้องเขียนโค้ดเพิ่มเติม — ระบบปฏิบัติการจัดการการเชื่อมต่อโดยอัตโนมัติ
คำถามที่พบบ่อย
Car App ได้รับการปรับให้เหมาะสมสำหรับการใช้งานขณะขับขี่: จำนวนองค์ประกอบขั้นต่ำ ปุ่มขนาดใหญ่ ควบคุมด้วยเสียง ไม่มีการป้อนข้อความ แอปพลิเคชันต้องปฏิบัติตามข้อกำหนดด้านความปลอดภัย — Distraction Design Guidelines จาก Apple และ Google
CarPlay รองรับหมวดหมู่: การนำทาง (Apple Maps, Google Maps, Waze), เสียง (Spotify, Apple Music), การส่งข้อความ (การอ่านและการเขียนตามคำบอกผ่าน Siri), ฟังก์ชันยานยนต์ (การชาร์จ EV, การจอดรถ) และการโทร VOIP
ใช้ Android Car App Library: ใช้ CarAppService เป็นจุดเริ่มต้น Session สำหรับการจัดการวงจรชีวิต Screen สำหรับแต่ละหน้าจอ แอปพลิเคชันต้องรองรับ MediaBrowserService สำหรับสื่อหรือ NavigationManager สำหรับการนำทาง
ใช่ ทั้งสองแพลตฟอร์มต้องการการตรวจสอบ Apple ตรวจสอบแอปพลิเคชัน 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 สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ