読者です 読者をやめる 読者になる 読者になる

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

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

frnk.hatenablog.jp

 

実はリリースにあたってSiri RemoteのMenuボタンの挙動に関して3回のリジェクトがありました。
今回、アップルの審査担当者とのやりとり等の中で分かったMenuボタンの正しい挙動について共有したいと思います。
 
 
Siri Remoteの各ボタンの役割についてはSiri Remote and Game Controllers - Apple TV Human Interface Guidelinesに記載があります。
 
以下は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アプリですが、今回かなり具体的な指摘を伴う審査がされたことで、今後は操作感の統一が図られていくことが予想されます。より使いやすいプラットフォームになることを期待しています。

激ムズ系ゲームアプリ「Flying Color」のApple TV版をリリースしました。


激ムズ系ゲームアプリ「Flying Color」のApple TV版をリリースしました。


縦画面から横長のテレビ画面への変更やタッチパネルとSiri Remoteでの操作の違いなど、tvOS向けにアプリを移植するには意外と考慮すべきことが多くて面白かったです。


無料ですので新型Apple TVをお持ちの方はダウンロードしてみてください。

f:id:frnk:20160420074708p:plain


frnk.hatenablog.jp

激ムズ系ゲームアプリ「Flying Color」をリリースしました

激ムズ系ゲームアプリ「Flying Color」をiOS / Android 同時リリースしました。


ボールを落とさないように出来るだけ遠くまで進んでいくゲームです。
ボールは同じ色の壁しか通過できません。他の色の部分に当たったらゲームオーバーです。


今回はUnityを使ってゲームアプリを制作してみました。
iOS版とAndroid版をほぼ並行して作っていけるし、開発に関する情報もWeb上に沢山あるので便利ですね。


シンプルですが結構ハマると思うので、ぜひ遊んでみてください!


iOS

Flying Color

Flying Color

  • rakko entertainment
  • ゲーム
  • 無料

Android
http://play.google.com/store/apps/details?id=com.rakkoentertainment.flyingcolor

Xcode 7.1でhead指定したCocoaPodsライブラリが含まれるプロジェクトのiTunes Connectへのアップロードに失敗する問題とその対処法

Xcode 7.1を使ってアプリをiTunes Connectにアップロードしようとしたところ、以下のようなエラーメッセージが出て失敗するようになりました。

ERROR ITMS-90060: "This bundle is invalid. The value for key CFBundleShortVersionString 'HEAD based on 1.0.0' in the Info.plist file must be a period-separated list of at most three non-negative integers."


CocoaPodsでは:head指定をしたライブラリ内のInfo.plistファイルのCFBundleShortVersionStringに「HEAD based on 1.0.0」のような文字列が設定されています。
ところが、Xcode 7.1からはアップロード時にCFBundleShortVersionStringの内容がバージョンナンバーであるかを厳密にチェックするようになり、「ピリオド区切りで3つまでの負ではない整数」以外の文字列が入っていると弾かれるようになってしまったようです。


Podフォルダ内の該当するInfo.plistのCFBundleShortVersionStringから「HEAD based on 」を取り除いて再度アーカイブしたところ、無事iTunes Connectへアップロードすることができました。

【速報】FastEver 2が仕事効率化カテゴリ有料1位になりました!感謝!

f:id:frnk:20151005211028j:plain

本日リリースしたFastEver 2が先ほど仕事効率化カテゴリ有料1位になりました!
ダウンロードしてくださったみなさま、応援してくださったみなさま、ありがとうございます!

FastEver 2 - 素早く簡単にメモ for Evernote

FastEver 2 - 素早く簡単にメモ for Evernote

  • rakko entertainment
  • 仕事効率化
  • ¥240
frnk.hatenablog.jp

FastEver 2をリリースしました。

f:id:frnk:20151005015930p:plain

2010年4月のFastEverリリースから5年半。
ゼロから作り直し、すべてが新しくなったFastEver 2を本日リリースしました。

FastEver 2 - 素早く簡単にメモ for Evernote

FastEver 2 - 素早く簡単にメモ for Evernote

  • rakko entertainment
  • 仕事効率化
  • ¥240


FastEver 2では「素早く簡単にEvernoteにメモをする」というコンセプトはそのままに、以下の新機能を追加しています。

• iPad対応(ユニバーサルアプリ化)
• Evernoteリマインダーの追加
• 画像の挿入
• 場所情報の挿入
• 保存したノートのプレビュー
• Split Viewマルチタスク(iPad Air 2, iPad mini 4のみ)
• 3D Touch ショートカット(iPhone 6s, iPhone 6s Plusのみ)
• ⌘+Sショートカットでノートの保存(外部キーボード接続時)
• 進化したバックグラウンド送信
• 刷新されたユーザーインターフェイス


発売記念50%OFFセールを実施中ですので、この機会にぜひダウンロードしてみてください。

Xcode 7でProvisioning Profileを更新する方法

Dev Centerからテスト用デバイスを追加したりしてXcode管理のProvisioning Profileを新しいものに更新したいとき、Xcode 6.xでは
Xcode > Preferences... > Accounts でApple IDを選択し、「View Details」ボタンからProvisioning Profileを一覧できる画面を開いて、右下の更新(リフレッシュ)ボタンをクリックすると簡単にできました。
(手順を書いてみたらちっとも簡単な感じがしない^^;)


ところが、Xcode 7からは更新ボタンがあった場所に「Download All」ボタンが配置され、Provisioning Profileの更新ができなくなってしまいました。
f:id:frnk:20150930131841p:plain


最初は仕方なくProvisioning Profileの更新のためだけにXcode 6.4を起動していたりしたのですが、さすがに面倒なのでDeveloper Forumsで解決策を探してみると、以下の方法で更新できることが分かりました。


1. Xcode > Preferences... > Accounts でApple IDを選択し、左下の「-」ボタンからApple IDを削除。

2. 左下の「+」ボタンから「Add Apple ID」を選択して再度Apple IDにサインイン
f:id:frnk:20150930132329p:plain

3. 上記の操作でProvisioning Profileが更新されるので、Download Allボタンを押して新しいProvisioning Profileをダウンロード


若干めんどうなのとバッドノウハウ臭がプンプンするので、将来のXcodeでは更新ボタンを復活させて欲しいものです。