SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
My#First#tvOS
2015/10/13
@TachibanaKaoru
自己紹介
渋谷のVOYAGE'GROUPでiOSエンジニア
をしています。
Twi$er/Vainglory/:/@TachibanaKaoru
Blog/:/h$p://www.toyship.org/
朝時間.jpというアプリをだしてます。
Apple%TVとは
• AppleがリリースしているTV接続用
セットトップボックス
• 2007年から販売しているが、2015年
10月下旬発売予定の第四世代-Apple-TV
で、はじめてサードパーティ製のアプ
リが搭載できるように
Apple%TVとは
64#bit'A8'processor
32GB'or'64GB'Storage
2GB'RAM
10/100Mbps'Ethernet
WiFi'802.11a/b/g/n/ac
New'Siri'Remote'/'Apple'TV'Remote
tvOSとは
• 第四世代"Apple"TVのOS
• iOS9.0をベースとした独自OS
• Xcode7.1から開発ターゲットとなる
tvOS%アプリ
• Apple&TV内のApp&Storeで配布される。
• watchOS&Appと違い、iOS&App部分を
必要とせず、tvOSアプリ単体でリリー
ス。
• 現時点ではApp&Storeは開始されていな
いが、審査は開始されている。
• シミュレーターでの安定した動作確認
がある程度までは可能。
tvOSアプリ開発の特徴
• 独自UX
• 実装方法の選択
• 厳しいリソース制限
tvOSアプリ開発の特徴%&%独自UX
• いわゆる10$feet$UI
• ユーザー入力として、タッチイベントが使えない。
• フォーカスを移動させ、pressイベントを取得。
• UIFocusEnvironmentプロトコルに対応した
UIControl(UIView、UIWindowなど)のフォーカスイベント
はシステムで管理されるが、独自UIControlを作った場合の
フォーカス管理を実装する必要がある。
tvOSアプリ開発の特徴%&%独自UX
• 文字入力が極端に難しい。
• 基本的に、画面上のソフトウェアキーボードで入力
• watch'OSと同様に、文字入力を用いないUXとする必要があ
る
tvOSアプリ開発の特徴%&%独自UX
• アプリの「ユーザー」がアプリを起動した人ではない可能性を
考える。
• 永続性データの保存方法
• ソーシャル機能で使うアカウント
tvOSアプリ開発の特徴%&%独自
UX
アプリアイコンやアプリ内画像でのパラ
ラックス効果
tvOSアプリ開発の特徴%&%独自
UX
• パララックス効果は1画像表示エリア
につき、3つの画像レイヤーを設定す
ることで作成する。
• リモコン上部のタッチを使わないと確
認できないので、シミュレーター上で
再現することは不可。
• ただし、パララックス確認用Viewerア
プリがリリースされている。
tvOSアプリ開発の特徴%&%実装方法の選択
大きく分けて二つの実装方法がある。
• UIKitによる実装
• TVJS/TVMLによる実装
tvOSアプリ開発の特徴%&%実装方法の選択
• UIKitによる実装
• iOSアプリとほぼ同様の実装方法となる。
• UIAlertController、UICollec1onViewControllerなどもポー
ティングされている。
tvOSアプリ開発の特徴%&%実装
方法の選択
• TVJS/TVMLによる実装
• アプリの実行部分をTVJS(~Java-
Script)とTVML(Apple-TV-Markup-
Language)で記述し、アプリ内ではな
くサーバーに配置する。
AppDelegateではそれをよびだすだ
け。
• 後述するリソース制限を考慮する
と、Appleはこちらを推奨しているの
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>
tvOSアプリ開発の特徴%&%厳しいリソース制限
セットトップボックスであるというデバイスの性質上、iOSやMac
にくらべてアプリで使う子ことができるリソースの制限が厳し
い。
'(ローカル領域へのデータ保存は不可。(永続化にはiCloudを利
用)
'(アプリの配布サイズは200MBに制限。((On(demand(Resources(
を利用)
tvOSアプリ開発の特徴%&%その他
• tvOSとiOSとの差異があるため、iOS用の外部ライブラリがその
まま使えない可能性がある。'
• UIライブラリなどが難しそう
まとめ
• Apple&TV&での開発は、今までの&Mac,iOS,Apple&watchのどれと
も違ったUXを考慮する必要がある。
• UXについては、可能であれば、実機を使って検討するのがい
いでしょう。
• UIKitでの実装よりTVJS/TVMLによる実装の方が推奨されてい
る(かもしれない)

Weitere ähnliche Inhalte

Andere mochten auch (7)

HealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得するHealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得する
 
watchOS2 tips
watchOS2 tipswatchOS2 tips
watchOS2 tips
 
GitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作るGitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作る
 
tvOSネイティブアプリを作る
tvOSネイティブアプリを作るtvOSネイティブアプリを作る
tvOSネイティブアプリを作る
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
ホットペッパービューティーアプリリプレイスとMVCP
ホットペッパービューティーアプリリプレイスとMVCPホットペッパービューティーアプリリプレイスとMVCP
ホットペッパービューティーアプリリプレイスとMVCP
 
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
 

Mehr von toyship (14)

Time for Xcode Behavior
Time for Xcode BehaviorTime for Xcode Behavior
Time for Xcode Behavior
 
Notifications in iOS10
Notifications in iOS10Notifications in iOS10
Notifications in iOS10
 
Universal Link
Universal LinkUniversal Link
Universal Link
 
Can we live in a pure Swift world?
Can we live in a pure Swift world?Can we live in a pure Swift world?
Can we live in a pure Swift world?
 
Swift Protocol and Selector
Swift Protocol and SelectorSwift Protocol and Selector
Swift Protocol and Selector
 
What's new Swift3
What's new Swift3What's new Swift3
What's new Swift3
 
3D touch for iOS
3D touch for iOS3D touch for iOS
3D touch for iOS
 
Contents blocker on iOS9
Contents blocker on iOS9Contents blocker on iOS9
Contents blocker on iOS9
 
Embedded framework and so on
Embedded framework and so onEmbedded framework and so on
Embedded framework and so on
 
はじめてのWKInterfaceController
はじめてのWKInterfaceControllerはじめてのWKInterfaceController
はじめてのWKInterfaceController
 
App extension for iOS
App extension for iOSApp extension for iOS
App extension for iOS
 
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更する
 
Xcode bot
Xcode botXcode bot
Xcode bot
 
AVSpeechSynthesizerとロケール
AVSpeechSynthesizerとロケールAVSpeechSynthesizerとロケール
AVSpeechSynthesizerとロケール
 

My first tvOS