CarPlay for iOS and Android Auto provides the user to use your app in the car's built-in display. Today I am going to provide a summary of CarPlay for iOS which will help you understand the basics of CarPlay.
What is CarPlay:-
CarPlay is a smarter, safer way to use your iPhone in the car. CarPlay takes the things you want to do with your iPhone while driving and puts them right on your car's built-in display. CarPlay is the same as Android Auto for the Android platform.
In addition to getting directions, making calls, sending and receiving messages, and listening to music, CarPlay supports the following categories of apps:
• EV charging
• Quick food ordering
CarPlay supported model:-
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.
CarPlay apps are designed to look and feel like your app on iPhone, but with UI elements that are similar to the built-in CarPlay apps.
Your app uses the CarPlay framework to present UI elements to the user
CarPlay apps must meet the basic requirements defined in the CarPlay Entitlement Addendum and must follow the CarPlay App Guidelines
CarPlay app entitlement:-
All CarPlay apps require a CarPlay app entitlement.
To request a CarPlay app entitlement, go to http://developer.apple.com/carplay and provide information about your app, including the CarPlay app category. You must also agree to the CarPlay Entitlement Addendum. 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 notify you.
CarPlay app guidelines:-
All CarPlay apps must support the following guidelines. Guidelines for all apps
1. Your CarPlay app must be designed primarily to provide the specified feature to a user (e.g. CarPlay audio apps must be designed primarily to provide audio playback services, CarPlay parking apps must be designed primarily to provide parking services, etc.).
2. Never instruct users to pick up their iPhone to perform a task. If there is an error condition, such as a required login, you can let users know about the condition so they can take action when safe. However, user messages must not include wording that asks users to manipulate their iPhones.
3. All CarPlay user flows must be possible without interacting with the iPhone.
4. All CarPlay user flows must be meaningful to use while driving. Don’t include features in CarPlay that aren’t related to the primary task (e.g. unrelated settings, maintenance features, etc.).
5. No gaming or social networking.
6. Never show the content of messages, texts, or emails on the CarPlay screen.
7. Use templates for their intended purpose, and only populate templates with the specified information types (e.g. a list template must be used to present a list for selection, album artwork in the now playing screen must be used to show an album cover, etc.).
8. All voice interaction must be handled using SiriKit (with the exception of CarPlay navigation apps, see below).
Additional guidelines for audio apps
1. Never show song lyrics on the CarPlay screen.
2. Text to speech systems (web readers, email readers, etc.) is not permitted.
CarPlay apps are built from a fixed set of user interface templates that iOS renders on the CarPlay screen.
CarPlay supports general-purpose templates such as alerts, lists, and tab bars. It also supports templates designed for specific features such as contacts, maps, and a now playing screen. Each CarPlay app category may access a limited set of templates. Access to templates determines your app entitlement. If you attempt to use a template not supported by your entitlement, an exception will occur at runtime.
For now, let's consider the Audio template
Audio Apps support 5 UI Components:-
Alert:- You can provide titles of varying lengths and let CarPlay choose the title that best fits the available screen space. If underlying conditions permit, alerts can be dismissed programmatically.
2. Grid:- A grid is a specific style of menu that presents up to eight choices represented by an icon and a title. Use the grid template to let people select from a fixed list of categories
3. List:- A list presents data as a scrolling, single-column table of rows that can be divided into sections. Each item in a list can include attributes such as an icon, title, subtitle, disclosure indicator, progress indicator, playback status, or read status.
Some cars dynamically limit lists to a maximum of 12 items. Your app can always check the currently permitted maximum, but you always need to be prepared to handle the case where only 12 items can be shown. Items beyond the maximum will not be shown
4. Now playing:- The now playing screen presents information about the currently playing audio, such as title, artist, elapsed time, and album artwork. It also lets people control your app using playback control buttons. The now playing screen is customizable and you should adapt it to your needs.
The now playing template is special because users can directly access it from the CarPlay home screen or through the now playing button in your app’s navigation bar. You must be prepared to populate the now playing template at all times.
5. Tab bar:- A tab bar appears at the top of an app screen, enabling users to quickly switch between different sections of an app. The tab bar can have up to 5 tabs, although this may change in the future so you should not rely on this number. Instead, observe the maximum tab count provided by iOS. In the case of audio apps, one tab is always occupied by the now playing button.
CarPlay assets include your app icon and images used in templates such as icons and buttons. Create assets for CarPlay in 2x and 3x scales, and for light and dark interfaces.
Your app icon in CarPlay should look similar to your app icon displayed on your iPhone.
1. Don't require sign-in or configuration steps in CarPlay:-
Audio apps in CarPlay are about consumption. Don't ask the user to perform setup steps on the car's display. It's highly probable your app will be launched on iPhone before it's used in CarPlay, so your iPhone experience should ensure the setup is complete. If a setup step does become necessary in CarPlay, gracefully handle the situation without encouraging the user to pick up their phone. For example, consider offering cached audio the user can play without signing in.
2. No paging. You have no callback for when the user reaches the end of the list to load more content.
3. No filtering or reordering interface available. All actions like this should be done on the phone and then you can have CarPlay reflect it, but you can't have the user do these things by interacting with CarPlay.
4. All Audio Apps have the exact same interface in CarPlay, so try to give it your app's personality through the few icons or images you can use.
Using Simulator enables you to run your CarPlay app in a second window. The second window acts as the car’s display and allows you to interact with it in a similar manner to when you are connected to a CarPlay system.
While Simulator is useful during development, certain CarPlay features are not available in Simulator and you should not rely on it as the sole method to develop your app.
Some features that cannot be tested in Simulator:
• Testing while the iPhone is locked. Most users interact with CarPlay while the iPhone is locked. Your app should perform normally even when the iPhone is locked.
• Testing Siri. CarPlay relies heavily on Siri. Ensure that your app works as expected during Siri interactions.
• Testing audio behavior. Your app must be a good audio citizen. Remember that other audio sources may be playing while CarPlay is active. Deactivate your audio session except when you are actually playing audio. For example, when the car’s FM radio is playing, navigation voice prompts should cause the FM radio volume level to be temporarily lowered, then raised after the voice prompt has finished playing.
Here is the existing official material on CarPlay:
WWDC talk on CarPlay (audio apps useful portion: 04:50–11:00)
Design guidelines for CarPlay