tvosとiosがこんなに違うわけがない ~tvosアプリ実装編~

32
〜 tvOS 〜〜〜〜〜〜 〜 株株株株 CyberZ OPENREC 株株株 株株株株株 株株 株株

Upload: keisuke-tatsumi

Post on 15-Apr-2017

783 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

〜 tvOS アプリ実装編 〜株式会社 CyberZ OPENREC 事業部エンジニア辰己 佳祐

Page 2: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

自己紹介•    辰己 佳祐 (23)• 所属 – 株式会社 CyberZ OPENREC 事業部• 職種 – エンジニア(主に OPENREC.tv の iOS, tvOS 担当)• 755 – たつみんの FRESH! トーク• 趣味 – お菓子作り , 沖縄三線• アプリ – AppStore で「 Keisuke Tatsumi 」で検索求ム

Page 3: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

Agenda

• はじめに• フォーカスの概念• applicationFrame の話• ボタンのクリック検知について• 最後に

Page 4: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

Agenda

• はじめに• フォーカスの概念• applicationFrame の話• ボタンのクリック検知について• 最後に

Page 5: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

はじめに2015年12月に OPENREC.tv は AppleTV に対応しました!

Page 6: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

はじめに• 今回は実際に実装してみてわかった tvOSのアプリ開発は iOS と比べてここが違う!と感じたことについて発表します

Page 7: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

Agenda

• はじめに• フォーカスの概念• applicationFrame の話• ボタンのクリック検知について• 最後に

Page 8: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

フォーカスの概念tvOS ではフォーカスという概念がとても重要な特徴の一つとなっています

画像参照元 URL : http://www.fastcodesign.com/3050952/four-fun-design-flourishes-in-apple-tvs-new-tvos

Page 9: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

Siri Remote

Touch サーフェスによるトラックパッドのようなカーソル移動がメインになっているため、いまどこにカーソルがいるのかを判断するためにフォーカスの概念が導入されています

画像参照元 URL : http://simpleguide.blog.jp/archives/46949468.html

Page 10: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

フォーカス検知UIKit 内でフォーカス検知できる UI パーツ– UITabBar– UIButton– UITableViewCell– UICollectionViewCell– UISegmentedControl– UITextField– UISearchBar

( 2016/02/10 調べ)

Page 11: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

フォーカス検知フォーカスが当たっているビュー上に設置した UIImageView の場合

画像参照元 URL : https://dribbble.com/shots/2239752--tvOS-Icon-Parallax-Effect

Page 12: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

フォーカス移動の検知

context.nextFocusedView : 現在フォーカスが当たっているビューcontext.previouslyFocusedView : 一つ前にフォーカスが当たっていたビュー

フォーカスの移動を検知するためのメソッド

Page 13: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

Agenda

• はじめに• フォーカスの概念• applicationFrame の話• ボタンのクリック検知について• 最後に

Page 14: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

applicationFrame の話applicationFrame プロパティが使えない

Page 15: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

applicationFrame の話実際に書こうとすると、、、

applicationFrame プロパティが使えない

使っちゃダ〜メ♡

Page 16: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

applicationFrame の話

UIKit.framework の UIScreen クラス内にあるプロパティ欄にも、、、

実際に書こうとすると、、、applicationFrame プロパティが使えない

使っちゃダ〜メ♡

ダメよ〜ダメダメ♡

Page 17: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

どうしてダメなのか > <

1. AppleTV にはステータスバーの概念が無いから

Page 18: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

ステータスバーなんて無かった

見渡す限りのダメよ〜ダメダメ♡

Page 19: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

どうしてダメなのか > <

1. AppleTV にはステータスバーの概念が無いから2. AppleTV にはマルチタスキングのようなスプリットビューの概念が無いから

Page 20: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

マルチタスキングiPad では、 iOS 9 の【 Slide Over 】と【 Split View 】という機能の追加で、2 つのアプリを同時に起動して操作できるようになった

画像参照元 URL : http://www.appbank.net/2015/09/17/iphone-news/1096738.php

Page 21: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

どうしてダメなのか > <

1. AppleTV にはステータスバーの概念が無いから2. AppleTV にはマルチタスキングのようなスプリットビューの概念が無いから3. テレビは回転を検知できないから

Page 22: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

どうしてダメなのか > <

1. AppleTV にはステータスバーの概念が無いから2. AppleTV にはマルチタスキングのようなスプリットビューの概念が無いから3. テレビは回転を検知できないから

つまりスクリーンのフレームサイズが1パターン(ランドスケープで全画面)しかないので、 applicationFrame を使う必要がなくなる

Page 23: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

Agenda

• はじめに• フォーカスの概念• applicationFrame の話• ボタンのクリック検知について• 最後に

Page 24: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

ボタンのクリック検知についてiOS でよくあるボタンアクションの実装

Page 25: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

ボタンのクリック検知についてiOS でよくあるボタンアクションの実装

ボタンは同じはずtvOS でも同じコードで実装でしょ?そうでしょ?

Page 26: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

はんのうがない。ただの しかばね のようだ。

Page 27: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

あれ?故障かな?と思ったら何かおかしいと思って、 UIKit の中身を覗いてみると、 forControlEvents のオプション指定に新たな項目が増えていました。それが、、、

Page 28: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

あれ?故障かな?と思ったら何かおかしいと思って、 UIKit の中身を覗いてみると、 forControlEvents のオプション指定に新たな項目が増えていました。それが、、、

UIControlEventPrimaryActionTriggeredー (その UI パーツの)主なアクションを引き起こす

Page 29: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

tvOS でのボタンのクリック検知

tvOS でのボタンアクションの実装

iOS でよくあるボタンアクションの実装

Page 30: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

Agenda

• はじめに• フォーカスの概念• applicationFrame の話• ボタンのクリック検知について• 最後に

Page 31: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

最後に今回発表させていただいた内容は tvOS とiOS の違いのほんの一部です!続きはブログで!

Page 32: tvOSとiOSがこんなに違うわけがない ~tvOSアプリ実装編~

ご清聴ありがとうございました