Car App — ứng dụng cho hệ thống thông tin giải trí trên ô tô, tích hợp với Apple CarPlay và Android Auto. CarPlay là công nghệ của Apple chiếu giao diện iPhone lên màn hình ô tô và được điều khiển qua Siri, màn hình cảm ứng hoặc nút trên vô lăng. Android Auto là công nghệ tương tự của Google dành cho điện thoại thông minh Android. Phát triển Car App bao gồm việc tạo ứng dụng bằng Swift với CarPlay framework và SiriKit cho iOS, và bằng Kotlin với Car App Library, MediaBrowserService và NavigationManager cho Android. Hỗ trợ Car App đang trở thành tiêu chuẩn cho xe hơi hiện đại — theo Apple, 98% xe mới ở Mỹ hỗ trợ CarPlay và Android Auto có sẵn trên hơn 200 mẫu xe.
Những điểm chính
Car App — ứng dụng chạy trên hệ thống thông tin giải trí trên xe (IVI) thông qua chiếu từ điện thoại thông minh — Apple CarPlay cho iOS và Android Auto cho Android. Khác với Android Automotive OS (hệ điều hành tích hợp trên xe), CarPlay và Android Auto là các phần mở rộng của ứng dụng di động chạy trên điện thoại và chiếu giao diện lên màn hình ô tô. Car App là ứng dụng iOS/Android hiện có của bạn triển khai các giao thức CarPlay hoặc Android Auto.
Các danh mục chính của Car App: định vị (Apple Maps, Google Maps, Waze, Sygic), âm thanh (Spotify, Apple Music, YouTube Music, Audible, Castbox), nhắn tin (đọc to và đọc chính tả qua Siri/Google Assistant), chức năng ô tô (sạc EV, đỗ xe, trạng thái xe), cuộc gọi VOIP (WhatsApp, Zoom). Mỗi danh mục có mẫu giao diện riêng — ListTemplate, MapTemplate, AudioTemplate. Hệ thống tự xác định danh mục nào ứng dụng hỗ trợ dựa trên Intents đã đăng ký.
Giới hạn của Car App: Apple và Google kiểm soát chặt chẽ UX vì an toàn — số lượng phần tử tối thiểu, nút lớn (tối thiểu 48x48 pt), không nhập văn bản (chỉ giọng nói), tự động làm mờ giao diện khi lái xe, cấm video. Thời gian phản hồi khi nhấn phải dưới 100 ms. Tất cả ứng dụng đều phải qua kiểm duyệt bắt buộc (App Review cho CarPlay, Google Play Console + CTS cho Android Auto).
CarPlay framework (trước đây là CPKit) — framework của Apple để tạo ứng dụng CarPlay bằng Swift. Lớp chính là CPInterfaceController, quản lý điều hướng theo mẫu. CPInterfaceController chứa ngăn xếp mẫu: CPListTemplate (danh sách), CPMapTemplate (định vị), CPNowPlayingTemplate (âm thanh), CPVoiceControlTemplate (điều khiển giọng nói). CPListTemplate chứa CPListItem — các mục danh sách với biểu tượng, văn bản và hành động.
SiriKit cho CarPlay — phần mở rộng SiriKit để điều khiển bằng giọng nói ứng dụng trong xe. Ứng dụng đăng ký Intents (INPlayMediaIntent — phát lại, INStartWorkoutIntent — tập luyện, INSendMessageIntent — tin nhắn). Siri tự động kích hoạt khi kết nối CarPlay và có sẵn qua nút điều khiển giọng nói trên vô lăng. SiriKit CarPlay hỗ trợ CarPlay Dashboard — widget trên màn hình chính CarPlay để hiển thị thông tin từ ứng dụng (điểm đến, bản nhạc hiện tại).
Quy trình kết nối CarPlay: iPhone kết nối với xe qua cáp Lightning/USB-C hoặc không dây (CarPlay Wireless, từ iOS 9). Sau khi kết nối, iOS tự động bắt đầu phiên CarPlay nếu ứng dụng triển khai CPApplicationDelegate. Nhà phát triển không kiểm soát thời điểm kết nối — hệ thống gọi các phương thức delegate khi bắt đầu và kết thúc phiên. CarPlay hỗ trợ đa nhiệm: định vị hoạt động trong nền khi chuyển sang nhạc và hướng dẫn bằng giọng nói tiếp tục phát.
Android Car App Library — thư viện Android để tạo ứng dụng tương thích với Android Auto. Các thành phần cơ bản: CarAppService — điểm vào cho Android Auto; Session — quản lý vòng đời phiên; Screen — mỗi màn hình của ứng dụng; CarScreenManager — quản lý hiển thị. Ứng dụng hỗ trợ MediaBrowserService cho nội dung đa phương tiện và NavigationManager cho hướng dẫn định vị.
MediaBrowserService — thành phần chính cho ứng dụng âm thanh. Ứng dụng triển khai MediaBrowserService và MediaSession để quản lý phát lại. Android Auto tự động hiển thị các điều khiển (Play/Pause, Next, Previous) và danh sách bản nhạc. NavigationManager được sử dụng cho ứng dụng định vị — truyền hướng dẫn rẽ, trạng thái tuyến đường và cảnh báo. NavigationManager hỗ trợ CarNotification để hiển thị hướng dẫn định vị trên thanh trạng thái Android Auto.
Yêu cầu Android Auto: ứng dụng phải có category="android.intent.category.APP_AUTO" trong tệp kê khai; phải sử dụng AndroidX và SDK tối thiểu 26+; hỗ trợ chủ đề tối (DayNight); hỗ trợ điều khiển cảm ứng và giọng nói; tuân thủ Android Auto Compatibility Test Suite (CTS). Google Play kiểm tra từng ứng dụng về tuân thủ các yêu cầu bảo mật và UX. Quy trình chứng nhận mất 1–4 tuần.
Ví dụ ứng dụng định vị cho CarPlay bằng Swift sử dụng CarPlay framework.
import CarPlay
class CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
let searchItem = CPListItem(
text: "Tìm kiếm địa chỉ",
detailText: "Nhập điểm đến"
)
searchItem.handler = { _, completion in
// Mở màn hình tìm kiếm
completion()
}
let favoritesItem = CPListItem(
text: "Yêu thích",
detailText: "Địa chỉ đã lưu"
)
favoritesItem.handler = { _, completion in
showFavorites()
completion()
}
let section = CPListSection(items: [searchItem, favoritesItem])
let listTemplate = CPListTemplate(
title: "Định vị",
sections: [section]
)
interfaceController.setRootTemplate(listTemplate, animated: true)
}
func showFavorites() {
// Hiển thị danh sách địa chỉ yêu thích
}
}
// SiriKit Intent cho điều khiển giọng nói
class NavigationIntentHandler: NSObject, INSearchForMessagesIntentHandling {
func handle(intent: INSearchForMessagesIntent,
completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
// Xử lý lệnh thoại qua Siri
let response = INSearchForMessagesIntentResponse(
code: .success, userActivity: nil
)
completion(response)
}
}
Các điểm chính: CPTemplateApplicationSceneDelegate — điểm vào cho phiên CarPlay; CPInterfaceController quản lý ngăn xếp mẫu; CPListTemplate và CPListItem — thành phần UI cơ bản; .handler — trình xử lý nhấp cho mỗi mục danh sách.
Ví dụ ứng dụng định vị cho Android Auto bằng Kotlin với Car App Library:
// CarAppService — điểm vào cho Android Auto
class NavigationCarAppService : CarAppService() {
override fun createSession(): Session = NavigationSession()
}
// Session — quản lý vòng đời phiên
class NavigationSession : Session() {
override fun onCreateScreen(manager: ScreenManager): Screen {
return MainScreen(carContext)
}
}
// MainScreen — màn hình chính với định vị
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val searchAction = Action.Builder()
.setTitle("Tìm kiếm địa chỉ")
.setOnClickListener { showSearchScreen() }
.build()
val favoritesAction = Action.Builder()
.setTitle("Yêu thích")
.setOnClickListener { showFavorites() }
.build()
return ListTemplate.Builder()
.setTitle("Định vị")
.setHeaderAction(Action.APP_ICON)
.addAction(searchAction)
.addAction(favoritesAction)
.build()
}
private fun showSearchScreen() {
screenManager.push(SearchScreen(carContext))
}
private fun showFavorites() {
screenManager.push(FavoritesScreen(carContext))
}
}
// AndroidManifest — đăng ký dịch vụ
<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>
Các điểm chính: CarAppService — điểm vào cho Android Auto; Session — quản lý vòng đời; Screen — mỗi màn hình của ứng dụng, trả về Template; ListTemplate — mẫu cho danh sách với Action; category.APP_AUTO — danh mục bắt buộc trong tệp kê khai.
Yêu cầu Apple CarPlay: ứng dụng phải tuân thủ CarPlay Distraction Design Guidelines — kích thước nút tối thiểu 48x48 pt, độ tương phản văn bản 4.5:1, không hoạt ảnh hoặc video, hỗ trợ VoiceOver. Xuất bản — qua App Store Connect, ứng dụng trải qua quy trình kiểm duyệt tiêu chuẩn của Apple. Cần chỉ rõ hỗ trợ CarPlay trong App Store Connect và đính kèm ảnh chụp màn hình giao diện CarPlay. Ứng dụng CarPlay không thể miễn phí không có quảng cáo — Apple thu phí hoa hồng 30% (15% cho doanh nghiệp nhỏ) trên các giao dịch mua trong ứng dụng.
Yêu cầu Android Auto: ứng dụng phải tuân thủ Android Auto Design Guidelines và vượt qua Android Auto Compatibility Test Suite (CTS). Xuất bản — qua Google Play Console, cần chỉ rõ danh mục "Android Auto" trong danh sách thiết bị tương thích. Google Play kiểm tra: hỗ trợ chủ đề tối (DayNight), hành vi chính xác khi mất kết nối, xử lý xoay màn hình, hỗ trợ điều khiển bằng giọng nói qua Google Assistant. Ứng dụng Android Auto không yêu cầu thêm phí hoa hồng — mô hình Google Play tiêu chuẩn (15-30%).
| Tham số | Apple CarPlay | Android Auto |
|---|---|---|
| Framework | CarPlay framework (CPInterfaceController) | Car App Library (CarAppService) |
| Ngôn ngữ | Swift | Kotlin |
| Trợ lý giọng nói | SiriKit | Google Assistant |
| Giao diện | CPListTemplate, CPMapTemplate | ListTemplate, MapTemplate |
| Đa phương tiện | MPNowPlayingInfoCenter | MediaBrowserService |
| Định vị | CPNavigationSession | NavigationManager |
| Xuất bản | App Store Connect | Google Play Console |
| Hoa hồng | 15–30% | 15–30% |
| Kiểm duyệt | App Review (1–3 ngày) | CTS + Google Play (1–4 tuần) |
Hỗ trợ kết nối không dây: CarPlay Wireless có sẵn từ iOS 9 và yêu cầu Wi-Fi + Bluetooth. Android Auto Wireless có sẵn từ Android 11. Để kết nối không dây, xe phải hỗ trợ tiêu chuẩn tương ứng. Nhà phát triển không cần viết thêm mã — hệ điều hành xử lý kết nối tự động.
Câu hỏi thường gặp
Car App được tối ưu hóa cho việc sử dụng khi lái xe: số lượng phần tử tối thiểu, nút lớn, điều khiển bằng giọng nói, không nhập văn bản. Ứng dụng phải tuân thủ các yêu cầu an toàn — Distraction Design Guidelines từ Apple và Google.
CarPlay hỗ trợ các danh mục: định vị (Apple Maps, Google Maps, Waze), âm thanh (Spotify, Apple Music), nhắn tin (đọc và đọc chính tả qua Siri), chức năng ô tô (sạc EV, đỗ xe) và cuộc gọi VOIP.
Sử dụng Android Car App Library: triển khai CarAppService làm điểm vào, Session để quản lý vòng đời, Screen cho mỗi màn hình. Ứng dụng phải hỗ trợ MediaBrowserService cho đa phương tiện hoặc NavigationManager cho định vị.
Có, cả hai nền tảng đều yêu cầu kiểm duyệt. Apple kiểm tra ứng dụng CarPlay qua App Review. Android Auto yêu cầu vượt qua Android Auto Compatibility Test Suite (CTS) và xác minh trong Google Play Console.
Cho CarPlay — Swift với các framework CarPlay (CPInterfaceController, CPTemplate, CPListItem) và SiriKit. Cho Android Auto — Kotlin với Car App Library và MediaBrowserService.
Tổng kết
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm