Implementing CarPlay support for your iOS application can be easily made with great online resources (check out the article below). However, I want to share some tips for testing your CarPlay implementation in this article.
Testing CarPlay can be an enjoyable part of the development process, especially for iOS developers who are accustomed to testing on their Mac using the iOS Simulator or on their own devices. However, with CarPlay, you receive the extra benefit of testing on a real device – in this case, a car. This allows you to get a more accurate and immersive experience of how your CarPlay integration will work in a real-world setting.
Simulator
One way to test your CarPlay integration is through the iOS Simulator. While it is the easiest option, it is not the most reliable or comprehensive method. When you launch the iPhone Simulator, you can select `I/O > External Displays > CarPlay` to bring up the Car Play Simulator screen and see your app on the Home Screen. However, this tool has widely known issues and bugs that can make the testing experience frustrating (for example, the knob may disappear, making the test of knob navigation difficult). Additionally, the simplicity of the simulator comes with limitations, and many CarPlay features are not available for testing. In my opinion, Apple has not put much effort into maintaining this tool, as they have put more effort into the next option, the CarPlay simulator.
CarPlay Simulator
The CarPlay simulator is a standalone application that can be downloaded as part of the Additional Tools for Xcode. It is a .dmg file that includes several useful tools, but we will focus on the CarPlay Simulator for now. If you don’t already have the Additional Tools for Xcode on your computer, you can download them from https://developer.apple.com/download/all/.
To use the CarPlay Simulator, attach the .dmg file and go to the `Hardware` folder, where you will find the CarPlay Simulator. You can copy it to your Applications folder and open it (like a standard Mac app). Once the simulator runs, you must plug your iPhone into your Mac. You will then see prompts asking you to allow CarPlay (similar to what you would see in a real car). Once you have done this, your Mac will function as a display, just like the display in a real car. You can then run your app in Xcode on your iPhone to access your CarPlay app, as well as other apps installed on your phone. This is a convenient way to test other apps if you can’t access a real car.
Overall, the CarPlay Simulator is our preferred tool for testing, as it is reliable, stable, and does not require you to code inside a car. Most importantly, it provides almost the same experience as real CarPlay.
Real car testing
Before releasing our apps, we wanted to follow Apple’s recommendation to test them on a real vehicle. The main issue we faced was that none of us within the team owned a car with CarPlay support. While we could afford to set up a nice device lab at the office, our management was not keen on purchasing a brand-new car just for testing podcasts requirements. Fortunately, we found a cost-effective solution in Kraków – car sharing. This allowed us to test our apps on a real car without incurring the expense of buying one ourselves.
At Schibsted, we prioritize the environment and sustainability, so we opted for an electric car for testing purposes. We selected the Dacia Spring, a small city car that aligns with our values. We can ensure that our testing process is more eco-friendly and sustainable by choosing an electric car.
While testing, we had one person driving the car while the other acted as a passenger to test the new app. This allowed the driver to focus on the road while the passenger searched for bugs and ensured that the app was ready to be shipped. We also aimed to test the sound quality at different playback speeds and evaluated the app’s usability and potential for distraction while driving.
If you are developing apps on your own, please make sure to test the app while the car is parked correctly. There is no need to put yourself or others at risk by attempting to test the app while driving. It is crucial to prioritize safety and focus on driving while on the road.
Using the CarPlay simulator, which provides a similar experience to a real car, we were able to identify and fix two critical issues with our app:
- we discovered that a button was not resized adequately for the CarPlay screen size on a real device
- we also identified a problem with our error logic (which was reproducible on the CarPlay Simulator).
By thoroughly testing our app using the car, we ensured that the playback experience was seamless and error-free.
One of the most significant perks of testing with a real car is the chance to break up your work routine. As developers, we often spend much time sitting in front of a computer, coding at home or in the office. Testing with CarPlay allows you to mix things up, perform your duties in a different work environment, and have fun simultaneously. So not only will you be able to ensure the quality of your app, but you’ll also be able to take a refreshing break from your usual routine.
List of resources
https://developer.apple.com/carplay/ – Car Play for developers – excellent starting point
https://developer.apple.com/design/human-interface-guidelines/technologies/carplay/introduction – Human Interface Guidelines – those are super important for you to understand limitations of UI. You must remember that Apple did a great job making CarPlay experience safe and focused on driving.
https://developer.apple.com/documentation/carplay – Apple documentation
https://developer.apple.com/videos/play/wwdc2020/10635/ – WWDC: Accelerate your app with CarPlay