Short guide to developing iOS apps for CarPlay

5 mins read

Table of contents:


I’m pretty sure not everybody will approve, but nowadays, a smartphone and a car are pretty indispensable. Just stop for a few seconds and imagine what would you do if you would have to “survive” for a week without a smartphone or even without a car. Now, I’m not saying it would be impossible, but you’ll have to agree, it would be a pain in the back having to figure out pretty much everything without a search, calling/texting a friend, or an app telling you the answer.

We build our routine based on electronic devices and we need comfortable transportation to commute to our jobs or go shopping for a full list of groceries or even travel. Now more than ever, since the pandemic made us go remote and rely on technology and individual transportation, we made use of inclusive platforms and systems that serve multiple purposes, like CarPlay, to ease our life and make everything more accessible and easy to use.

What exactly is CarPlay?

Apple introduced around 2014, “The ultimate copilot” - CarPlay. Now, what exactly is this and what does it do? CarPlay is an extension of iOS that enables a car’s infotainment system (aka the built-in entertainment and information system) to display and control a range of apps. Streaming music, dialing into a meeting, finding a car park, and ordering food, are just some of the apps you might consider enhancing to take advantage of the maturing CarPlay platform.

CarPlay allows any iPhone (from iPhone 5, all the way to iPhone 13 Pro Max) to interface with the car’s infotainment system (mainly with the built-in dashboard screen that controls the radio, making calls and navigation).

Once more, convenience prevails and this time, the distraction of a phone is replaced with the infotainment display that contains users' commonly used apps that are necessary and useful while driving. By doing so, CarPlay minimizes the need to handle your iPhone while driving. You can dive into more details on Alexi Schreier’s article A Developer’s Intro to CarPlay.

What are CarPlay apps?

Fortunately, Apple allows app developers many possibilities to build something that might be perfect for CarPlay, but before you jump to conclusions, you must also know that Apple restricts quite a lot of apps that CarPlay can enable, so the type of apps that you can develop are:

  • Audio apps (Music, Podcasts, News)
  • Communication apps (Messages, Calls)
  • Navigation apps
  • EV charging apps
  • Parking apps
  • Food ordering apps

CarPlay allows developers to make their products for safer use in cars so that there will be fewer accidents caused by distracted drivers using their mobile phones. As good as that sounds, there’s still a shortage of information on how to develop an actual CarPlay enabled app.

What niches should you pay attention to when developing?

  • Traffic safety
  • Safety and liability insurance
  • Fuel-saving applications
  • Health and ergonomics

Can I integrate CarPlay into my existing app?

You could do so, but it is recommended to create a new one that complies with all CarPlay legal criteria. CarPlay apps are meant to appear and feel similar to your iPhone app, but with UI features comparable to built-in CarPlay apps. It must be in accordance with certain dimensions.

If the application's purpose is to send and receive messages, you must utilize SiriKit's Messaging, especially for speech interactions. The user flows must be acceptable for use while driving and must be feasible without the use of an iPhone.

At appssemble we’ve learned the process of developing iOS CarPlay apps and what it takes to shift a music player app or a phone call into a CarPlay experience.

How to develop a CarPlay app?

1. CarPlay app entitlement

A CarPlay app entitlement is required for all CarPlay apps. Go to the Apple's site and put information regarding your app, along with the CarPlay app category. In addition, you must agree to the CarPlay Entitlement Addendum. Apple will look into your request. If your app passes the CarPlay app eligibility criteria, Apple will generate a CarPlay app entitlement and inform you.

2. Assess your entitlement

After receiving a CarPlay app entitlement, log in to your Apple Developer account and create a new Provisioning Profile that contains the entitlement. Once that is done, import it to Xcode. E.g. app Entitlement key: com.apple.developer.carplay-navigation (depending on the type of app you’re requesting an entitlement for)

3. Add the new key to Entitlements.plist file

4. Add the new key to Entitlements.plist file



5. Add the below key in info.plist

The example given contains an app that declares 2 scenes - for iPhone screen and one for CarPlay screen. The name of the class that serves as the scene delegate is defined in the manifest by UISceneDelegateClassName. Your delegate must conform to CPTemplateApplicationSceneDelegate.

Once your app is launched, you’ll be notified with a CPInterfaceController that manages all the templates on the CarPlay screen. Hold onto the controller since you’ll need it to manage templates, such as showing a now playing screen or an alert. On launch, you must also specify a root template.

6. Write the code

Since CarPlay apps are made using templates, here are the types of templates which can be used in the CarPlay app:

  • Action Sheet template
  • Alert template
  • Contact template
  • Grid template
  • Information template
  • List template
  • Map template
  • Now Playing template
  • Point of Interest template
  • Search template
  • Tab bar template
  • Voice Control template

7. Test it on Simulator

The Simulator may be used to test CarPlay applications, but while Simulator is useful during development, many CarPlay features are not available in it, and you should not rely on it as your main means of app development. To start, select I/O, External Displays, and CarPlay to bring up the CarPlay screen.

It is strongly advised to create and test CarPlay apps on a vehicle or aftermarket system that supports wireless CarPlay. This allows you to use CarPlay wirelessly when your iPhone is connected to Xcode on your Mac via a Lightning to USB cord.

How much UI does CarPlay accept?

Well...not much to be honest.

For example, music player or podcasts apps are pretty restricted by Apple, and the UI displayed in the car’s dashboard screen is very strict and allows no customization of the provided template. Looking at the bright side, it all means less development work and easier to implement.

On the other side, to the navigation apps, CarPlay gives more freedom of expression, to customize the UI and how the details are structured and displayed to the user. It’s good on one side and a little bad on the other because this whole thing means that it requires more development work compared to the music player app.

The biggest policy is given to the car producers, who are free to customize the CarPlay UI as they please.

In the table below, you can view each of the different CarPlay UI templates as well as the app categories that are accepted by each:

As we’ve said before, building a CarPlay enabled app is quite accessible and easy for an experienced iOS developer, but even if you’re a beginner, you should give it a try, test your boundaries. And if you ever feel overwhelmed, then we are here to take this issue out of your hand. Contact us and let our professionals build the project you desire. Until the next one, keep your hands on the wheel and drive safe!

Share

Subscribe to our newsletter


Thinking about a project?

Let’s build your next product! Share your idea or request a free consultation from us.

Contact Us

More?

There are a lot of articles on our blog, check them out!

Blog