CarPlayについて簡単にまとめてみました

こんにちわ。iOSアプリ開発をしている[@haseken_dev](https://twitter.com/haseken_dev)です。
[iOS Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ios)の22日目を担当させていただきました。

今回はCarPlayについてちょっと簡単にまとめてみようと思います。
既に知っていることも多々あるかとは思いますが、読んでもらえたら幸いです。

# 1. はじめに
この記事は、Appleが提供するCarPlayについてかんたんにですがまとめてみました。
自分でもCarPlayを実際にドライバーとして利用していたりしますが、これまでどのような流れでCarPlayが発表されて来たのか、またアップデートはどのようなものがあったのかをまとめたことがなかったので、
良い機会だとも思い、まとめてみることにしました。

# 2. イメージする対象の方
本記事の対象者は下記のような方をイメージしています。

- CarPlayって聞いたことあるけど、実際に何ができるのかいまいちわからない方
- できること、できないことの概要でも把握したい方
- CarPlayってこれまでどんなアップデートがあったのか知りたい方

※具体的な開発手法については記載しておりません。
※サードパーティアプリ開発者を想定しているため、ハードウェアについて(例えばデバイス開発など)の詳細な情報は記載しておりません。

# 3. CarPlayとは
[CarPlay](https://www.apple.com/jp/ios/carplay/)とはカーオーディオやカーモニターに接続してiPhoneを操作するAppleによって開発された規格です。
LightningケーブルやBluetoothを利用して接続し、CarPlayに対応したアプリが接続したiPhoneに入っていれば、カーオーディオなどから操作が可能となります。
例えば音楽を聴いたり、電話を受けたりかけたりしたり、ナビも操作が可能となります。
![スクリーンショット 2021-12-12 23.33.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/70f105f6-3085-615c-7202-7aca9090791a.png)

CarPlayのメリットは、iPhoneに入っているデータを車載機器からもアクセスができる点です。
これにより、iPhoneさえ所持していれば車載器にデータを入力し直す必要はなくなります。例えばiPhoneでよく聞く音楽を車でもすぐに聴ける、iPhoneで調べた地点データにすぐにアクセスしナビも開始できるなど、データへのアクセスが手間なく可能となります。
(マイカーもそうですが、レンタカーなどでも重宝しそうです。)
またiPhoneは通信も可能なため、常に最新の情報を取得することも可能です。

国内ではTOYOTAやNissan、国外でもAudiやフォルクスワーゲンなど主要な車メーカーがAppleと提携し、[600以上の車種](https://www.apple.com/jp/ios/carplay/available-models/)がCarPlayを提供しています。
車だけではなく、HONDAではバイクにもCarPlay搭載がされているようです。

また車種だけではなく、アフターマーケット向けにもCarPlayが提供されており、
ユーザーはさまざまな選択肢からCarPlayの利用環境を選択することができるようになっています。
![スクリーンショット 2021-12-10 22.52.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/8021f0b0-6610-e14e-283e-9069ab003b3c.png)

WWDC 2020では世界の新車の80%でCarPlayが利用できると発表されており、市場も引き続き拡大されていることが窺えます。
![スクリーンショット 2021-12-13 10.05.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/a659d306-89fc-0bf4-fbbe-ee1684a134b1.png)


# 4. これまでのCarPlayのアップデート
CarPlayはこれまでどのようなアップデートや発表があったのか、簡易的ではありますが、振り返ってみたいと思います。

元々CarPlayは[WWDC 2013のKeynote](https://podcasts.apple.com/jp/podcast/apple-wwdc-2013-keynote-address/id275834665?i=1000160871947)で「iOS in the Car」という名前で発表されていました。
![スクリーンショット 2021-12-12 0.12.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/a99a1984-c113-d0bf-ad0c-99962937ac35.png)


その後、2014/03に[プレスリリース](https://www.apple.com/jp/newsroom/2014/03/03Apple-Rolls-Out-CarPlay-Giving-Drivers-a-Smarter-Safer-More-Fun-Way-to-Use-iPhone-in-the-Car/)にて、「CarPlay」と改めて正式に発表がされました。
サードパーティアプリとして提供可能なアプリのカテゴリは、音楽やメッセージなどが該当していました。
しかし、車といえばナビアプリが頭に浮かぶ(主観が入っているかもです・・)かと思いますが、その肝心のナビゲーションアプリの提供はまだ許可されてはいませんでした。


初めてナビゲーションアプリがサードパーティアプリとして提供できるようになったのは、iOS 12からです。
[WWDC 2018](https://www.youtube.com/watch?v=UThGcWBIMpU)ではGoogle マップなどのアプリがCarPlayで提供されると発表されました。
![スクリーンショット 2021-12-12 0.06.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/3a46b7b3-9319-821e-0af6-ad2e33b01923.png)

WWDC 2019ではダッシュボードのUIが刷新され、複数のアプリの情報を1画面で確認できるようになりました。
またiOS 13.4では上記新しいダッシュボードUIへの対応がサードパーティに開放されることとなり、ダッシュボードに自身のアプリを表示してより利便性を上げられるようになりました。
![スクリーンショット 2021-12-13 10.14.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/6cd9657a-851b-8dd5-7144-14d98e61d427.png)
[Advances in CarPlay Systemsより](https://developer.apple.com/videos/play/wwdc2019/252/?time=24)

WWDC 2020では提供できるアプリのカテゴリとして駐車場などが追加され、利用できるUIの種類もいくつか追加されました。
![スクリーンショット 2021-12-12 0.18.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/555472c1-32b1-94b8-5d5e-1befcc1b9763.png)
またCarPlayとは少し離れますが、iPhoneで車の鍵を開ける、車のエンジンをかけられるようになるなどの発表もありました。
![スクリーンショット 2021-12-12 0.19.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/2a587581-bd95-f375-1c67-d8cb2f4b1f3f.png)

このようにCarPlayは機能や新しいUIの追加、サードパーティアプリで開発可能なカテゴリも追加されるなど、年々着実にアップデートが行われて来ており、また提供できるカテゴリも追加されています。
また個別のsessionだけではなく、WWDCのKeynoteでも取り上げられるようになっており、期待の高さが窺えます。


# 4. CarPlay向けapp開発で注意すること
CarPlayはドライバーにとって魅力的なものであると思いますし、市場が広がって来ていると考えられます。
そのためアプリ開発者としてもCarPlay向けにアプリが提供できればユーザーとの接点が広がるなど、提供を視野に入れることも考えられますが、
ここでいくつか気をつけなければならないことがあります。

### 5.1 提供できるappのカテゴリ
CarPlay向けにアプリを開発してみたいところではありますが、提供できるアプリのカテゴリには制限があります。
現在開発が許可されているカテゴリは下記になります。

- Audio
- Communication 
- EV charging 
- Navigation 
- Parking 
- Quick food ordering

[# 3. CarPlayとは](#3-CarPlay%E3%81%A8%E3%81%AF)でも記載しましたが、
Parking、EV charging、Quick food orderingはWWDC 2020で追加されたもので、
それまではさらに少ないカテゴリでしか提供ができなかったことになります。

とはいえ、確かに車の運転中に必要なアプリの種類は限られると考えられますし、
ドライバーの安全を考慮した場合、何でもかんでもアプリにして操作できてしまうのは危険だと思われますので、このくらい制限があった方が良いのかもしれません。

また上記以外ではAutomakerというカテゴリもあります。
これは自動車メーカー用のカテゴリのようで、[HIG](https://developer.apple.com/design/human-interface-guidelines/carplay/overview/automaker-apps/)によると、気候制御、GPS、ラジオなどの組み込みの車両機能を制御するカスタムアプリを設計できるようです。
![スクリーンショット 2021-12-20 23.18.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/9d1b7afb-f951-ed13-3a89-88be2b37a794.png)


### 5.2 Entitlementsについて
CarPlay向けのアプリケーション開発を行うには、Provisioning ProfileでCarPlayのentitlementsを設定する必要があります。
ただし、defaultでは設定する項目が表示されておらず、表示させるには[CarPlay Contact Us](https://developer.apple.com/contact/carplay)からAppleへ申請し、審査を通過する必要があります。

CarPlayで提供予定のアプリの概要・提供するカテゴリをもとに審査が行われます。
もしこの審査に落ちてしまうと、CarPlayでのアプリ提供ができなくなってしまいます。

### 5.3 提供できるUIについて
CarPlay上でアプリが提供できるUIには制限があります。
Templatesがいくつか用意されており、アプリ開発者は適切なTemplatesを選択していき、アプリを構築していきます。
Templatesには下記のような種類があります。

- Action Sheet
- Alert
- Contact
- Grid
- Information
- List
- Map
- Now Playing
- Point of Interest
- Search
- Tab bar
- Voice control

Now playingなどいくつかのtemplatesはWWDC 2020で追加されたものとなっています。

![スクリーンショット 2021-12-12 23.07.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/3ebf1734-e58c-0d44-a3ce-0e9f93607083.png)
「List」

![スクリーンショット 2021-12-12 23.18.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453700/afc33391-d73d-c983-224e-38a122d0fe38.png)
「Now playing」

ただし、利用できるTemplatesはアプリのカテゴリごとに利用制限があります。
例えばListはどのカテゴリでも利用が可能ですが、Now playingはAudioカテゴリのアプリでしか利用が許可されていません。

詳しくは[CarPlay App Programming Guide](https://developer.apple.com/carplay/documentation/CarPlay-App-Programming-Guide.pdf)のP.15を参照してみてください。

制限がある中でサービス検討をすることになりますので、企画の段階でデザイナーの方も交えながら、
どのようなサービスが提供できるのか、またTemplatesは何を選択するのかなど、
事前の準備がかなり大事になるのではないかと思います。

# . 終わりに
いかがでしたでしょうか。CarPlayについて、簡単ではありますがまとめさせていただきました。

CarPlayは年々アップデートされ、利便性の向上や注目度もアップして来ているかと思います。
しかし、いざ開発するとなると審査があったり、提供できるUIも制限があるなど、難しさがあるのも事実かと思います。

ただ個人的にはCarPlayを利用していてiPhoneのデータにすぐにアクセスでき、操作できることの利便性はもう手放せるものではないとも感じております。
今後、さらにサードパーティアプリが増えてきて、CarPlayがより魅力的なものになってくると良いなと考えています。


# 参考文献・リンク集
・紹介ページ
[CarPlay](https://www.apple.com/jp/ios/carplay)
[CarPlay 対応車種](https://www.apple.com/jp/ios/carplay/available-models/)

・Document
[CarPlay Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/carplay/overview/automaker-apps/)
[CarPlay App Programming Guide](https://developer.apple.com/carplay/documentation/CarPlay-App-Programming-Guide.pdf)
[Requesting CarPlay Entitlements](https://developer.apple.com/documentation/carplay/requesting_carplay_entitlements)

・Newsroom
[[Newsroom]Apple、自動車でのiPhoneの使用をより快適に、安全に、楽しくするCarPlayを発表](https://www.apple.com/jp/newsroom/2014/03/03Apple-Rolls-Out-CarPlay-Giving-Drivers-a-Smarter-Safer-More-Fun-Way-to-Use-iPhone-in-the-Car/)

・WWDC Keynote
[Apple WWDC 2013 Keynote Address](https://podcasts.apple.com/jp/podcast/apple-wwdc-2013-keynote-address/id275834665?i=1000160871947&l=en)
[WWDC 2018 Keynote — Apple](https://www.youtube.com/watch?v=UThGcWBIMpU)
[WWDC 2019 Keynote — Apple](https://www.youtube.com/watch?v=psL_5RIBqnY)
[WWDC 2020 Special Event Keynote — Apple](https://www.youtube.com/watch?v=GEZhD3J89ZE)

・CarPlay関連のWWDC Session(他にも見つけ次第追加していきます。)
 - 2016
[Developing CarPlay Systems, Part 1](https://developer.apple.com/videos/play/wwdc2016/722/)
[Developing CarPlay Systems, Part 2](https://developer.apple.com/videos/play/wwdc2016/723)
 - 2017
[Enabling Your App for CarPlay](https://developer.apple.com/videos/play/wwdc2017/719)
[Developing Wireless CarPlay Systems](https://developer.apple.com/videos/play/wwdc2017/717)
 - 2018
[CarPlay Audio and Navigation Apps](https://developer.apple.com/videos/play/wwdc2018/213)
 - 2019
[Advances in CarPlay Systems](https://developer.apple.com/videos/play/wwdc2019/252)
 - 2020
[Accelerate your app with CarPlay](https://developer.apple.com/videos/play/wwdc2020/10635)

・Qiita
[iOS14 で始める CarPlay](https://qiita.com/crexista/items/cc934f10e1d84be5a27a)