Apple TV向けゲームアプリにおけるSiri RemoteのMenuボタンの正しい挙動について

本日、Flying ColorのtvOS版をリリースしました。 

frnk.hatenablog.jp

 

実はリリースにあたってSiri RemoteのMenuボタンの挙動に関して3回のリジェクトがありました。
今回、アップルの審査担当者とのやりとり等の中で分かったMenuボタンの正しい挙動について共有したいと思います。
 
 
Siri Remoteの各ボタンの役割についてはRemote - Remote and Controllers - tvOS - Human Interface Guidelines - Apple Developerに記載があります。
 
以下はMenuボタンに関する部分の抜粋です。
Pauses/resumes gameplay.
Returns to previous screen, exits to main game menu, and/or exits to Apple TV Home screen.
 
つまり、
  •  ゲームプレイの一時停止/再開する
  • 前の画面へ戻る
  • ゲームのメインメニューに戻る
  • Apple TVのホーム画面に戻る
という挙動が必要となります。
(ちなみに非ゲームアプリの場合は「前の画面に戻る」「Apple TVのホーム画面に戻る」の2つです)
 
 
この中で特に重要なのが
  • 前の画面へ戻る
という挙動で、リジェクト時の問題解決センターでも「Menuボタンに前の画面に戻る機能を割り当てなさい」ということを強調して指摘されました。
Menuボタンは基本的には「戻るボタン」であると理解して問題ないと思われます。
 
 
  • ゲームのメインメニューに戻る
  • Apple TVのホーム画面に戻る

は、and/orとなっているためどちらかを省いても良いものと読めますが、現在App Store上にあるアプリではMenuボタンを押して戻っていくと最終的にApple TVのホーム画面に戻れるものがほとんどであることと、非ゲームに関しては「Apple TVのホーム画面に戻る」が必須であるため、「ゲームのメインメニューがない場合はホーム画面に戻る」程度に解釈した方が良さそうです。

 
 
  •  ゲームプレイの一時停止/再開する

ゲームアプリと非ゲームアプリの最大の違いがこの挙動です。

当初、ゲームプレイ中にMenuボタンを押したときには一時停止し、再度押した場合に再開するという簡単な実装をおこなったのですが、それだけだとリジェクトされました。

審査担当の方の指摘は以下になります。

ゲームプレイ中にも「戻る」というオプションをユーザーが持てるようにするべきだ。例えば、ユーザーがMenuボタンを選択してゲームを一時停止すると同時に、「ゲームの再開」と「メインメニューに戻る」という選択肢が表示されると良い。メインメニューに戻ることができると、再度Menuボタンを押すことでユーザーはtvOSのホーム画面に戻ることができる。

つまり、ここでも「前の画面に戻る」「Apple TVのホーム画面に戻る」という戻るボタンとしての挙動が必要になってくるわけですね。
結果として、Flying Colorでは一時停止中の画面に以下のように再開ボタンと戻るボタンを設置しました。

f:id:frnk:20160420121140p:plain



普段iOSアプリ開発をおこなっているとハードウェアボタンの挙動を実装するということが基本的にはないですが、tvOSの場合は非常に重要になってきます。操作感に関わる部分なのでしっかりと実装していきたいですね。


また、当初操作感にばらつきがあったtvOSアプリですが、今回かなり具体的な指摘を伴う審査がされたことで、今後は操作感の統一が図られていくことが予想されます。より使いやすいプラットフォームになることを期待しています。