誰もが9月に新しいtvOSオペレーティングシステムを搭載した第4世代Apple TVを導入し、独自のアプリケーションを開発できることを知っています。 これを行う方法については既に何かが書かれており、この記事ではこのトピックにも目を向けます。 tvOSの開発を開始する際に知っておくべきこと、およびいくつかの困難を回避する方法。
アプリケーションとユーザー間の相互作用が変更されました。
以前は、画面をタッチし、ボタンをクリックし、画像をスクロールできました-インターフェースを直接操作しました。 相互作用は間接的に行われるようになりました。ユーザーには2つの相互作用方法があります。
- コントロールパネル経由
- Siriによる管理
コントロールパネルも更新され、次の機能が追加されました。
- タッチパネル(タップ、スワイプなど)
- メニューボタン
- シリ
- マイク
- 再生/一時停止
- ホーム
- ボリューム
- ジャイロスコープ
- 充電穴
また、リモートはゲームのジョイスティックとして使用できます。 また、アップルはサードパーティのジョイスティックを接続する機会を提供し、 ジョイスティックの動作を保証する方法についての指示を書きました。
しかし、リモートコントロールの相互作用は開発チームにとって何を意味するのでしょうか? これは、ユーザーが自分がどのコントロールエレメントを使用していて、いつでもクリックできるものを明確にする必要があることを意味します。 このために、 フォーカスなどのツールが作成されました 。 フォーカスは、一度に1つの要素のみにフォーカスできると言います。
UIKitフレームワークは、フォーカスをサポートするインターフェイスのみをサポートします。 つまり、ほとんどの要素について、Focusはそのまま使用できます。 プログラム的には、フォーカスはアップグレードのみ可能ですが、プログラムでインストールまたは移動することはできません。
ほとんどの場合、それはどういう意味ですか? たとえば、UIButtonはフォーカスをサポートします。 UILlabel Focusはこれをサポートしていないため、ラベルをクリックすることはできません-なぜですか? デフォルトでは、Focusは次のUI要素をサポートしています。
- UIButton
- UITextField
- UITableView
- UICollectionView
- UITextView
- UISegmentedControl
- UISearchBar
フォーカスの更新については、 ドキュメントで詳しく説明しています 。
Apple TVのホーム画面が新しく見える
トップシェルフ
現在は、アプリケーションアイコンと、アプリケーションアイコンの上にあるトップシェルフ(オプション)で構成されています。 ユーザーがアプリケーション(フォーカス)を選択すると、アイコンの上にトップシェルフが表示されます。
iOSで並行して行う場合、Top Shelfは一種のウィジェットです。
Top Shelfは、アプリケーションの重要なコンテンツ(天気など)を紹介したり、ユーザーにショートカットを作成したり、一時停止中の映画を見に戻ったりするのに最適な場所です。
アプリケーションにとって、Top Shelfは拡張機能です。 特にそれを使用するために、新しいフレームワークが作成されました-TV Servicesフレームワークは、以下で構成されます:
TVContentIdentifier-メディアコンテンツの一意の識別子
TVContentItemオブジェクト-任意の要素、またはトップシェルフに表示される要素のコンテナー
2つのバインディングメソッドを持つTVTopShelfProviderプロトコル
topShelfItems-トップシェルフに表示される要素を返します
topShelfStyle-要素の表示に使用するスタイルを指示します
tvOSアプリケーションプロジェクトへのトップシェルフの追加
プロジェクトにトップシェルフを追加するには、以下を行う必要があります。
- プロジェクトに新しいターゲットを追加します。
ファイル>新規>ターゲット - TVサービス延長を選択してください
tvOS>アプリケーション拡張機能> tvOS>アプリケーション拡張機能 - トップシェルフに名前を付けます
- デバッグのためにトップシェルフをアクティブにすることに同意する
- プロジェクトに、新しく作成されたトップシェルフと共にフォルダーが表示されます。
さて、それは技術の問題です-TopShelf表示スタイルを選択し、必要な要素を追加します。 実装オプションは、Appleのサンプルプロジェクトで確認できます。
視差
アイコンも見た目ほど単純ではありません。 tvOSのすべてのアイコンは視差をサポートする必要があります。
Appleは視差画像の新しいファイル形式を開発しました-.lsr
視差は、マルチレベルの画像オーバーレイによって実現されます。このような画像は、Xcodeから直接、または特別な便利なParallax Previewerプログラムから作成できます。別の方法は、Photoshop の拡張機能をダウンロードすることです。 アーカイブには、Photoshopの拡張機能とともに、取扱説明書があります。
2つの開発方法:TVMLとネイティブアプリケーション
それぞれに長所と短所があります。
1. TVML
最初の方法には、TVML、TVJS、およびTVMLKitテクノロジースタックの使用が含まれます
- TVML-テレビマークアップ言語-XMLの相対的
- TVJS-アプリケーションインターフェイスの作成を提供するJavaScript APIのセット
- TVMLKit-TVML、JavaScript、tvOSアプリケーション間の接着剤
そして、私たちにとって使いやすくするために、Appleは私たちのための指示 とテンプレートのカタログを用意しました 。
さらに、サーバーを更新することにより、アプリケーションを更新できます。 アプリストアでレビューを待つ必要はもうありません!
マイナス:わずかにカスタマイズ可能。 ネイティブアプリは常に見栄えがよくなります。
一般に、これはApple TVのアプリケーションの典型的な目的に対する優れたソリューションです。 ユーザーにビデオコンテンツを提供するサーバーが既にあり、tvOSアプリケーションの設計や複雑なナビゲーションに煩わされたくないとします。 この場合、TVMLを使用してアプリケーションを開発することが理想的です。
2.ネイティブアプリケーション
この場合、Apple TVの開発プロセスは、通常のiOSアプリケーションの作成とほぼ同じです。ここでは、Objective-CやSwiftも使用できます。 ほとんどのiOSフレームワークは、tvOSでも利用できます。MediaPlayerやUIKitなどがあります。 完全なリストはここにあります 。
制限事項
ローカルデータストアはありません。 ストレージには、iCloud、CloudKit、または独自のバックエンドを使用する必要があります。
アプリケーションのサイズは200 MBを超えてはなりません。
ログイン
認可に関する問題についても話したいと思います。 これで、パスワードエントリは次のようになります。
たとえば、映画を購入するときやアプリケーションをダウンロードするときなど、無料であっても、承認が非常に頻繁に必要になります。 すぐに、この認証方法は退屈に思われます。 したがって、アプリケーションに承認が存在する場合は、痛みを軽減する方法を検討する必要があります。 すでにネットワーク上で興味深いソリューションのいくつかの例を見つけることができます( 1、2 )が、さらに空想してQRコード、Siri(「sim-sim-open」)またはリモートコントロールのタッチパネルを使用して認証用のグラフィックコードを入力しようとすることを禁止するものはいません( Androidのように)。