my first tvos
TRANSCRIPT
![Page 1: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/1.jpg)
My#First#tvOS2015/10/13
@TachibanaKaoru
![Page 2: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/2.jpg)
自己紹介渋谷のVOYAGE'GROUPでiOSエンジニアをしています。Twi$er/Vainglory/:/@TachibanaKaoruBlog/:/h$p://www.toyship.org/
朝時間.jpというアプリをだしてます。
![Page 3: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/3.jpg)
Apple%TVとは
• AppleがリリースしているTV接続用セットトップボックス
• 2007年から販売しているが、2015年10月下旬発売予定の第四世代-Apple-TVで、はじめてサードパーティ製のアプリが搭載できるように
![Page 4: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/4.jpg)
Apple%TVとは
64#bit'A8'processor32GB'or'64GB'Storage2GB'RAM10/100Mbps'EthernetWiFi'802.11a/b/g/n/acNew'Siri'Remote'/'Apple'TV'Remote
![Page 5: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/5.jpg)
tvOSとは• 第四世代"Apple"TVのOS
• iOS9.0をベースとした独自OS
• Xcode7.1から開発ターゲットとなる
![Page 6: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/6.jpg)
tvOS%アプリ
• Apple&TV内のApp&Storeで配布される。
• watchOS&Appと違い、iOS&App部分を必要とせず、tvOSアプリ単体でリリース。
• 現時点ではApp&Storeは開始されていないが、審査は開始されている。
• シミュレーターでの安定した動作確認がある程度までは可能。
![Page 7: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/7.jpg)
tvOSアプリ開発の特徴• 独自UX
• 実装方法の選択
• 厳しいリソース制限
![Page 8: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/8.jpg)
tvOSアプリ開発の特徴%&%独自UX
• いわゆる10$feet$UI
• ユーザー入力として、タッチイベントが使えない。
• フォーカスを移動させ、pressイベントを取得。
• UIFocusEnvironmentプロトコルに対応したUIControl(UIView、UIWindowなど)のフォーカスイベントはシステムで管理されるが、独自UIControlを作った場合のフォーカス管理を実装する必要がある。
![Page 9: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/9.jpg)
tvOSアプリ開発の特徴%&%独自UX
• 文字入力が極端に難しい。
• 基本的に、画面上のソフトウェアキーボードで入力
• watch'OSと同様に、文字入力を用いないUXとする必要がある
![Page 10: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/10.jpg)
tvOSアプリ開発の特徴%&%独自UX
• アプリの「ユーザー」がアプリを起動した人ではない可能性を考える。
• 永続性データの保存方法
• ソーシャル機能で使うアカウント
![Page 11: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/11.jpg)
tvOSアプリ開発の特徴%&%独自UX
アプリアイコンやアプリ内画像でのパララックス効果
![Page 12: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/12.jpg)
![Page 13: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/13.jpg)
tvOSアプリ開発の特徴%&%独自UX
• パララックス効果は1画像表示エリアにつき、3つの画像レイヤーを設定することで作成する。
• リモコン上部のタッチを使わないと確認できないので、シミュレーター上で再現することは不可。
• ただし、パララックス確認用Viewerアプリがリリースされている。
![Page 14: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/14.jpg)
tvOSアプリ開発の特徴%&%実装方法の選択
大きく分けて二つの実装方法がある。• UIKitによる実装
• TVJS/TVMLによる実装
![Page 15: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/15.jpg)
tvOSアプリ開発の特徴%&%実装方法の選択• UIKitによる実装
• iOSアプリとほぼ同様の実装方法となる。
• UIAlertController、UICollec1onViewControllerなどもポーティングされている。
![Page 16: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/16.jpg)
tvOSアプリ開発の特徴%&%実装方法の選択
• TVJS/TVMLによる実装
• アプリの実行部分をTVJS(~Java-
Script)とTVML(Apple-TV-Markup-
Language)で記述し、アプリ内ではなくサーバーに配置する。AppDelegateではそれをよびだすだけ。
• 後述するリソース制限を考慮すると、Appleはこちらを推奨しているの
![Page 17: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/17.jpg)
TVML%Example
<document> <alertTemplate> <title>Update to premium</title> <description>Go ad free by updating to the premium version</description> <button> <text>Update Now</text> </button> <button> <text>Cancel</text> </button> </alertTemplate></document>
![Page 18: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/18.jpg)
tvOSアプリ開発の特徴%&%厳しいリソース制限
セットトップボックスであるというデバイスの性質上、iOSやMacにくらべてアプリで使う子ことができるリソースの制限が厳しい。'(ローカル領域へのデータ保存は不可。(永続化にはiCloudを利用)'(アプリの配布サイズは200MBに制限。((On(demand(Resources(を利用)
![Page 19: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/19.jpg)
tvOSアプリ開発の特徴%&%その他• tvOSとiOSとの差異があるため、iOS用の外部ライブラリがそのまま使えない可能性がある。'
• UIライブラリなどが難しそう
![Page 20: My first tvOS](https://reader031.vdocuments.pub/reader031/viewer/2022022202/58794cea1a28abb1418b525d/html5/thumbnails/20.jpg)
まとめ• Apple&TV&での開発は、今までの&Mac,iOS,Apple&watchのどれとも違ったUXを考慮する必要がある。
• UXについては、可能であれば、実機を使って検討するのがいいでしょう。
• UIKitでの実装よりTVJS/TVMLによる実装の方が推奨されている(かもしれない)