Loading repository dataβ¦
Loading repository dataβ¦
oguzhnatly / repository
π Apple CarPlay and Android Auto for Flutter Apps. Aims to make it safe to use apps made with Flutter in the car by integrating with CarPlay and Android Auto.

Flutter Apps now on Apple CarPlay and Android Auto ! flutter_carplay aims to make it safe to use apps made with Flutter in the car by integrating with CarPlay and Android Auto. The package takes the things you want to do while driving and puts them on the car's built-in display.
β¨ New in v1.5.0: Android Auto alert, grid, and tab bar templates, modal alert APIs, and richer Android Auto list loading states.
β¨ New in v1.1.0: CarPlay apps can now launch automatically without requiring the Flutter app to be opened first, supporting true background launch capabilities.
Apple announced some great features in iOS 14, one of which is users download CarPlay apps from the App Store and use them on iPhone like any other app. When an iPhone with a CarPlay app is connected to a CarPlay vehicle, the app icon appears on the CarPlay home screen. CarPlay apps are not separate appsβyou add CarPlay support to an existing app.
Your app uses the CarPlay framework to present UI elements to the user. iOS manages the display of UI elements and handles the interface with the car. Your app does not need to manage the layout of UI elements for different screen resolutions, or support different input hardware such as touchscreens, knobs, or touch pads.
It supports only iOS 14.0+. For general design guidance, see Human Interface Guidelines for CarPlay Apps.
For detailed guides and examples, check out the Wiki:

Before you begin CarPlay integration, you must carefully read this section.
The official App Programming Guidelines from Apple is the most valuable resource for understanding the needs, limits, and capabilities of CarPlay Apps. This documentation is a 49-page which clearly spells out the some actions required, and you are strongly advised to read it. If you are interested in a CarPlay System, learn more about the MFi Program.
CarPlay apps are built from a fixed set of user interface templates that iOS renders on the CarPlay screen. Each CarPlay app category can only use a restricted number of templates. Your app entitlement determines your access to templates.

Android Auto apps built with the Android for Cars App Library are constructed using a fixed set of vehicle-optimized templates that the host renders on the car screen. Each Android Auto app category (e.g., Navigation, Point-of-Interest, IoT, etc.) can only use a restricted number of templates, and access to the Android for Cars App Library and its templates is generally restricted to supported app categories.
https://developer.android.com/design/ui/cars/guides/templates/overview
flutter_carplay currently supports:
By evaluating this information, you can request for the relevant entitlement from Apple.
CPSearchTemplate with search text, result selection, and search button callbacksAAMessageTemplate, AALongMessageTemplate, and AAPaneTemplate, including update APIstabTitle, systemIcon, and showsTabBadge are now exposed consistently on templatesFlutterCarplay.showSharedNowPlaying()file://), or URLs (https://) (Thanks to @vanlooverenkoen)Special thanks to @EArminjon, @vanlooverenkoen, @snipd-mikel, @APIUM, and all contributors who made this release possible!
Other templates will be supported in the future releases by flutter_carplay.
All CarPlay apps require a CarPlay app entitlement.
If you want to build, run and publish your app on Apple with CarPlay compatibility or test or share the app with others through the TestfFlight or AdHoc, you must first request Apple to approve your Developer account for CarPlay access. The process can take from a few days to weeks or even months. It depends on the type of Entitlement you are requesting.
To request a CarPlay app entitlement from Apple, go to https://developer.apple.com/contact/carplay and provide information about your app, including the CarPlay App Category. You must also agree to the CarPlay Entitlement Addendum.
With this project, you can start developing and testing through Apple's CarPlay Simulator without waiting for CarPlay Entitlements. Apple will review your request. If your app meets the criteria for a CarPlay app, Apple will assign a CarPlay app entitlement to your Apple Developer Account and will notify you.
Whether you are running the app through a simulator or developing it for distribution, you must ensure that the relevant entitlement key is added to the Entitlements.plist file. You must create an Entitlements.plist file if you do not already have one.
After you receive the entitlement, you need to configure your Xcode project to use it, which involves several steps. You create and import a provisioning profile, and add an Entitlements.plist file. Your projectβs code signing settings also require minor changes.
For more detailed instructions about how to create and import the CarPlay Provisioning Profile and add an Entitlements File to Xcode Project, go to Configure your CarPlay-enabled app with the entitlements it requires.
Choose the CarPlay entitlement that matches the app category Apple approved for your project. The example app keeps com.apple.developer.carplay-parking so the Point of Interest demo remains available. If your app uses a different CarPlay category, replace it with the matching entitlement, for example com.apple.developer.carplay-maps for maps and navigation, com.apple.developer.carplay-quick-ordering for quick ordering, com.apple.developer.carplay-charging for EV charging, com.apple.developer.carplay-fueling for fuel stations, `com.apple.developer.carplay-dr