一年ぶりの投稿です 😮  お久しぶりです。和尚です!

さてさて、入社3年目を迎えた私は一年ぶりに何を書くのでしょうか?

 

Javascript..?

 

Go言語…?

 

そう、タイトルにある通りApple TV (tvOS)アプリについてです(焦らした意味←)

現在はこれまでやっていたWebフロントやサーバーサイドから軽く離れつつ、iOS/tvOSの開発をしています!

 

…これまでWebフロントやサーバーサイドをやってきた私が何故今、tvOSをやっているのか?

その答えはシンプルで、去年部署移動があった際に移動先の部署でiOSエンジニアが少なかったのでチャンスだと思ってiOSの開発をやりたいと手を挙げた結果です。割とあっさりと要望が通って、今ではiOSの流れでtvOSもやっています (勢いでしたが、言ってみるもんですね笑)

現在はこの2OSをメインに仕事しています 🙂

(また個人でもiOSアプリを作ってリリースするなど、この一年は自分にとってはアプリの年になりました!)

 

さてさて本題ですが、今回はそんなApple TVとtvOSについて軽く紹介していきたいと思います!

 

Apple TVについて

近年サブスクリプション型の動画配信サービスが成功を収めており、動画配信事業は日々拡大しています。その影響は弊社にも及んでおり、最近では動画配信系アプリのお問い合わせをいただくことが少なくありません。

最近の家庭ではAndroid一体型テレビを設置していたり、Apple TVをはじめAmazonのFireTVやGoogleのChrome Castなどのテレビに接続するタイプのデバイスを持っている家庭が多くなってきたからでしょう。

では、弊社で開発実績のあるApple TVとAndroid TV、FireTVの最新版の違いを軽く見ていきましょう!

比較内容 \ 機種 Apple TV 4K(第二世代) Chromecast witch Google TV Fire TV Cube 第2世代(2019)
発売日 2021年5月 2020年11月 2019年11月
OS tvOS Android FireOS
金額 21,800円 ~ 7,600円 14,980円
CPU 6コア

(2.5 GHz×2 + 1.5 GHz ×4)

4コア

1.9GHz

6 コア

(2.2 GHz ×4 + 1.9 GHz×2)

※ AndroidはAndroid搭載型TVやChrome Castなど種類が多いため、Chrome Castを基準としています。

Apple TVの性能は他の2つに比べても値段が高いのでCPUはもちろんそれ以外でも高性能なものとなっています。通信に関しても最新のwifi規格であるwifi6に対応しているので、動画もサクサク見ることが可能です。

またApple TVの歴史は古く、初めて販売されたのは今からおよそ14年も前のことになります。ChromeキャストやFireTVが発売してからまだ10年経っていないので、やはりスティーブ・ジョブズ恐るべしといったところでしょうか。金額も初めて発売した時は36,800円でしたが、現在は当時に比べて少しお求めやすい?金額となっています。

Apple TVではNetflixやAmazon Primeなどといった動画アプリの他にもゲームをすることができたり、iPhoneやAirPodsなどのApple製品と連動させることで更に便利に楽しめるといった機能が付いていたりするので、市場でのシェア率は高くはないものの、Apple製品が好きな人にとってはおすすめの一品となっています。最新版ではリモコンも新しくなったり今年の秋に登場するtvOS15では新機能が出たりするみたいなので今後の進化にも目が離せません!

 

tvOSとは?

iPhoneに搭載されているOSがiOSなのに対し、Apple TVに搭載されているOSはApple TV用に開発されたtvOSとなります。

開発自体も通常のiOSアプリとは異なるフォーカスという概念やtvOSに特化したUIパーツがあるため、tvOSの開発にはiOS+αの知識が必要となります。また、Apple TVアプリ開発は業界全体でみてもAndroid TV/FireTVに比べて少ないため、tvOS開発経験者も少ないといった問題があります。(要はネットにあまり情報が落ちてない。。。)

また、フォーカス制御の他にもtvOS独自のヒューマンインタフェースガイドラインというUI/UXのガイドラインをAppleが制定しているため、開発前にはエンジニアも要チェックです。

いくつかピックアップしてみました。

 

よりシンプルに

tvOSアプリはシンプルであればあるほど、良いと考えられています。

例えば動画アプリだった場合、ユーザーのアプリ内でのゴールは動画を視聴することです。ユーザーが動画を見るために何個も何個も画面を移動しなければならないのはユーザーにとってはストレスとなるため、Apple的には良くないとされています。なるべく画面移動を最小限に抑えた、シンプルな構造になるように心がける必要があります。

https://developer.apple.com/design/human-interface-guidelines/tvos/app-architecture/navigation/

 

フォーカスがどこにあるかを明確に

iOSアプリではなかったフォーカスという概念ですが、tvOSではリモコンでの操作になるため必要です。

フォーカスの移動に合わせてUIを変えたり、アニメーションを付けたりと、ユーザーがフォーカスを見失わないように各Viewに対してフォーカスの制御を入れる必要があります。

フォーカス移動を検知する方法はいくつかありますが、基本はUIViewControllerやUIViewにあるdidUpdateFocusというメソッドを利用して、UIを制御していくことになるかと思います。

また、現在フォーカスされているViewはUIScreen.main.focusedViewで取得が可能です。

https://developer.apple.com/design/human-interface-guidelines/tvos/overview/apps/

 

リモコンで出来る操作を再定義しない

Apple TVのリモコンには、戻るボタンや動画の再生/停止ボタンなどのいくつかの機能を備えたボタンがあります。その挙動と全く同じ動作をするUIを画面に設置するべきではない。というのがAppleのガイドラインによって定められています。

例えば「戻るボタン」ですが、iOSアプリの場合は画面移動すると前の画面に戻るための戻るボタンが用意されていることがしばしばあります。それと同様の戻るボタンを基本的にはtvOSアプリには付けてはならないというガイドラインです。

ガイドラインには『Apple TVユーザーはリモコンでの操作に慣れており、同じ挙動をするUIをつける必要はない。』といった旨の記述がされており、画面からは極力無駄を省くことを推奨しています。

tvOSアプリがシンプルなものが多いのは、そういった無駄を省いて必要最低限のUIに絞るといったガイドラインによるものも理由の一つとしてあります。

最適なユーザーインターフェースはiOSアプリとは全く違うということを心がけることが必要です。

https://developer.apple.com/design/human-interface-guidelines/tvos/remote-and-controllers/remote/

https://developer.apple.com/design/human-interface-guidelines/tvos/app-architecture/navigation/

 

他にもいくつかありますが、一つ言えることはiOSの常識はtvOSの常識ではないということです。

まずは、ガイドラインを読んでみることを強くおすすめします。

 

最後に

Apple TVとtvOSの紹介を軽くしてみましたが、いかがだったでしょうか?

弊社ではApple TVの他にもAndroid TVやFireTVなどのデザイン・設計・開発実績があるので、興味のある方は是非お問い合わせください!

 

んー技術記事というより営業的な記事になってしまった。。。

ということで、次回はtvOSのサンプルアプリの記事になります(多分)!

ではでは!

投稿者プロフィール

和尚
和尚
'96年生まれのiOSエンジニア