SlideShare a Scribd company logo
1 of 101
AbemaTV on Apple TV
tvOS入門
CA.swift 2016/12/01
Yuji Hato
About me
Yuji Hato
CyberAgent, Inc. / AbemaTV, Inc.
dekatotoro
@dekatotoro
Contributed services
Apple TV
4th generation
Apple TV
4th generation
・64-bit A8 processor
・32GB or 64GB of storage
・2GB of RAM
・10/100Mbps Ethernet
・WiFi 802.11a/b/g/n/ac
・1080p resolution
・HDMI 1.4
・New Siri Remote / Apple TV Remote
Apple TV
4th generation
・32GB 15,800円
・64GB 20,800円
※2016/09に値下げ
・32GB 18,400円 →15,800円(2,600円値下げ)
・64GB 24,800円 →20,800円(4,000円値下げ)
Apple TV (tvOS)
4th generation
Remote
https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/
Remote
https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/
Remote
Swipe Click Tap
https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/
Remote
Development Method
Development Method
iOSと同様にUIKitで開発
・Traditional Apps
TVMLとTVJSをで開発
・Client-Server Apps
Limited App Size
Limited App Size
200MB
Limited Local Storage
Limited Local Storage
Service Online/Local Persistent/Temporary limit
iCloud Key-Value Store
(KVS)
Online Persistent 1MB max
CloudKit Online Persistent -
UserDefaults Local Persistent 500KB max
Keychain Local Persistent -
CacheDirectory Local Temporary May be purged
TemporaryDirectory Local Temporary May be purged
Limited Local Storage
Service Online/Local Persistent/Temporary limit
iCloud Key-Value Store
(KVS)
Online Persistent 1MB max
CloudKit Online Persistent -
UserDefaults Local Persistent 500KB max
Keychain Local Persistent -
CacheDirectory Local Temporary May be purged
TemporaryDirectory Local Temporary May be purged
Limited Local Storage
Service Online/Local Persistent/Temporary limit
iCloud Key-Value Store
(KVS)
Online Persistent 1MB max
CloudKit Online Persistent -
UserDefaults Local Persistent 500KB max
Keychain Local Persistent -
CacheDirectory Local Temporary May be purged
TemporaryDirectory Local Temporary May be purged
Limited Local Storage
Service Online/Local Persistent/Temporary limit
iCloud Key-Value Store
(KVS)
Online Persistent 1MB max
CloudKit Online Persistent -
UserDefaults Local Persistent 500KB max
Keychain Local Persistent -
CacheDirectory Local Temporary May be purged
TemporaryDirectory Local Temporary May be purged
User Interaction
https://developer.apple.com/tvos/human-interface-guidelines/overview/
User Interaction
Focus
https://developer.apple.com/tvos/human-interface-guidelines/overview/
Parallax
User Interaction
https://developer.apple.com/tvos/human-interface-guidelines/overview/
Video
User Interaction
Icons and Images
https://developer.apple.com/tvos/human-interface-guidelines/icons-and-images/
Icons and Images
App Icon.
https://developer.apple.com/tvos/human-interface-guidelines/icons-and-images/
Layered Images.
Icons and Images
Layered Images.
https://developer.apple.com/tvos/human-interface-guidelines/icons-and-images/
Icons and Images
https://developer.apple.com/tvos/human-interface-guidelines/icons-and-images/
Top Shelf Images.
Icons and Images
https://developer.apple.com/tvos/human-interface-guidelines/icons-and-images/
Top Shelf Images.
Icons and Images
Layout
Layout
https://developer.apple.com/tvos/human-interface-guidelines/visual-design/
https://developer.apple.com/tvos/human-interface-guidelines/visual-design/
Layout
https://support.apple.com/ja-jp/HT202763
Layout
https://developer.apple.com/tvos/human-interface-guidelines/visual-design/
Layout
https://developer.apple.com/tvos/human-interface-guidelines/visual-design/
Layout
https://developer.apple.com/tvos/human-interface-guidelines/visual-design/
Layout
Interface Elements
Tab Bars
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
TableView
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
CollectionView
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Split Views
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Text Fields
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Keyboards
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Search
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Button
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Navigation Bars
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Navigation Bars
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Page Controls
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Activity Indicators
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
Alerts
Interface Elements
https://developer.apple.com/tvos/human-interface-guidelines/interface-elements/
tvOSの概要を抑えたところで
AbemaTV on tvOS
2016/11/25にリリースしました
AbemaTV on tvOS
開発スケジュール
開発スケジュール
2ヶ月
2ヶ月
開発スケジュール
2ヶ月
開発スケジュール
2ヶ月
開発スケジュール
体制
体制
・Designer 1 (兼務)
・Engineer 2 (1名兼務)
・Director 1 (兼務)
プロジェクト構成
プロジェクト構成
iOSと同じプロジェクトでTargetを分け
るか、別プロジェクトにするか
iOSとは別プロジェクトで開発
framework化ができてない
Swift3対応
スケジュール
プロジェクト構成
進捗管理
進捗管理
GitHub Projects
https://github.com/blog/2256-a-whole-new-github-universe-announcing-new-tools-forums-and-features
Libraries
Libraries
RxSwift
RxCocoa
Kingfisher
Cartography
AttributedLabel
SwiftDate
Cheetah
SpringIndicator
CryptoSwift
KeychainAccess
SQLite.swift
ReachabilitySwift
SwiftyUserDefaults
ProtocolBuffers-Swift
Fabric
Crashlytics
Device
UI/UX
Overall
UI/UX
Overall
UI/UX
UI/UX
OnAir Playback
OnAir Playback
UI/UX
Menu
UI/UX
Menu TabBar
UI/UX
OnAir Playback PageViewController
UI/UX
OnAir Info
UI/UX
OnAir Info CustomView
CollectionView
UI/UX
Overall
UI/UX
TimeTable
UI/UX
TimeTable CollectionView
CollectionView ScrollView
UI/UX
TimeTable
CollectionView
UI/UX
TimeTable
CollectionView
UI/UX
TimeTable
UI/UX
TimeTable
UI/UX
Detail Info
UI/UX
Detail Info
UI/UX
Detail Info
UI/UX
Overall
UI/UX
Ondemand
UI/UX
Ondemand SplitViewController
UI/UX
Ondemand Playback
UI/UX
Ondemand Playback
AVPlayerViewController
UI/UX
Overall
UI/UX
Setting
UI/UX
Setting
TableViewImageView
UI/UX
Overall
UI/UX
Conclusion
Conclusion
• 共通部分をEmbedded Framework化しておくと良い
• iOSとの違いはFocus周りがキモ
• 標準のUI/UXに従う
• 画面大きくて開発が楽しい
Trial&Errorしながら開発中
AbemaTV on tvOS
Thank you
参考資料
https://developer.apple.com/tvos/resources/

More Related Content

Viewers also liked

祭りから半年たったプロジェクトにジョインしてみた
祭りから半年たったプロジェクトにジョインしてみた祭りから半年たったプロジェクトにジョインしてみた
祭りから半年たったプロジェクトにジョインしてみたAsuka Oizumi
 
Introduction to Resource Hints
Introduction to Resource HintsIntroduction to Resource Hints
Introduction to Resource HintsShogo Sensui
 
Atomic designで助かった人たち
Atomic designで助かった人たちAtomic designで助かった人たち
Atomic designで助かった人たちIida Yukako
 
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみアメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみKazunari Hara
 
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringアメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringTakuya Hattori
 
Lviv MD Day 2015 Олексій Озун "Introduction to the new Apple TV and TVos"
Lviv MD Day 2015 Олексій Озун "Introduction to the new Apple TV and TVos"Lviv MD Day 2015 Олексій Озун "Introduction to the new Apple TV and TVos"
Lviv MD Day 2015 Олексій Озун "Introduction to the new Apple TV and TVos"Lviv Startup Club
 
Introduction to tvOS app Development !
Introduction to tvOS app Development !Introduction to tvOS app Development !
Introduction to tvOS app Development !Snehal Patil
 
tvOS, The Focus Engine, and Swift
tvOS, The Focus Engine, and SwifttvOS, The Focus Engine, and Swift
tvOS, The Focus Engine, and SwiftEvan Maloney
 
The new Apple TV and the tvOS
The new Apple TV and the tvOSThe new Apple TV and the tvOS
The new Apple TV and the tvOSMugunth Kumar
 
CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状Yuji Hato
 
Building Apps for Apple TV
Building Apps for Apple TVBuilding Apps for Apple TV
Building Apps for Apple TVdavidolesch
 
マルチスレッドRxSwift @ 社内RxSwift勉強会
マルチスレッドRxSwift @ 社内RxSwift勉強会マルチスレッドRxSwift @ 社内RxSwift勉強会
マルチスレッドRxSwift @ 社内RxSwift勉強会Yuki Takahashi
 
AndroidにおけるCocos2d-x製ゲームの画面の録画
AndroidにおけるCocos2d-x製ゲームの画面の録画AndroidにおけるCocos2d-x製ゲームの画面の録画
AndroidにおけるCocos2d-x製ゲームの画面の録画gomachan_7
 
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-Keisuke Tatsumi
 
20161110 tristan 広告ランキング
20161110 tristan 広告ランキング20161110 tristan 広告ランキング
20161110 tristan 広告ランキングTristan Irvine
 
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウGameCreators,CyberAgent
 
20170112 tristan 勉強会_社外
20170112 tristan 勉強会_社外20170112 tristan 勉強会_社外
20170112 tristan 勉強会_社外Tristan Irvine
 
ニューラルネットと深層学習の歴史
ニューラルネットと深層学習の歴史ニューラルネットと深層学習の歴史
ニューラルネットと深層学習の歴史Akinori Abe
 

Viewers also liked (20)

祭りから半年たったプロジェクトにジョインしてみた
祭りから半年たったプロジェクトにジョインしてみた祭りから半年たったプロジェクトにジョインしてみた
祭りから半年たったプロジェクトにジョインしてみた
 
Introduction to Resource Hints
Introduction to Resource HintsIntroduction to Resource Hints
Introduction to Resource Hints
 
Atomic designで助かった人たち
Atomic designで助かった人たちAtomic designで助かった人たち
Atomic designで助かった人たち
 
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみアメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
 
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringアメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
 
Lviv MD Day 2015 Олексій Озун "Introduction to the new Apple TV and TVos"
Lviv MD Day 2015 Олексій Озун "Introduction to the new Apple TV and TVos"Lviv MD Day 2015 Олексій Озун "Introduction to the new Apple TV and TVos"
Lviv MD Day 2015 Олексій Озун "Introduction to the new Apple TV and TVos"
 
Introduction to tvOS app Development !
Introduction to tvOS app Development !Introduction to tvOS app Development !
Introduction to tvOS app Development !
 
tvOS, The Focus Engine, and Swift
tvOS, The Focus Engine, and SwifttvOS, The Focus Engine, and Swift
tvOS, The Focus Engine, and Swift
 
The new Apple TV and the tvOS
The new Apple TV and the tvOSThe new Apple TV and the tvOS
The new Apple TV and the tvOS
 
CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状
 
tvOS
tvOStvOS
tvOS
 
Building Apps for Apple TV
Building Apps for Apple TVBuilding Apps for Apple TV
Building Apps for Apple TV
 
Inside Android N
Inside Android NInside Android N
Inside Android N
 
マルチスレッドRxSwift @ 社内RxSwift勉強会
マルチスレッドRxSwift @ 社内RxSwift勉強会マルチスレッドRxSwift @ 社内RxSwift勉強会
マルチスレッドRxSwift @ 社内RxSwift勉強会
 
AndroidにおけるCocos2d-x製ゲームの画面の録画
AndroidにおけるCocos2d-x製ゲームの画面の録画AndroidにおけるCocos2d-x製ゲームの画面の録画
AndroidにおけるCocos2d-x製ゲームの画面の録画
 
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
 
20161110 tristan 広告ランキング
20161110 tristan 広告ランキング20161110 tristan 広告ランキング
20161110 tristan 広告ランキング
 
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウ
 
20170112 tristan 勉強会_社外
20170112 tristan 勉強会_社外20170112 tristan 勉強会_社外
20170112 tristan 勉強会_社外
 
ニューラルネットと深層学習の歴史
ニューラルネットと深層学習の歴史ニューラルネットと深層学習の歴史
ニューラルネットと深層学習の歴史
 

Similar to AbemaTV on Apple TV tvOS入門

Cisco connect jabber client update
Cisco connect   jabber client updateCisco connect   jabber client update
Cisco connect jabber client updateVitor Costa
 
iPhone possibilities
iPhone possibilitiesiPhone possibilities
iPhone possibilitiesJesse Wynants
 
Adobe Flash platform の法人利用
Adobe Flash platform の法人利用Adobe Flash platform の法人利用
Adobe Flash platform の法人利用Keisuke Todoroki
 
SimpleK12 Webinar - You Got an iPad, Now What? 031312
SimpleK12 Webinar - You Got an iPad, Now What? 031312SimpleK12 Webinar - You Got an iPad, Now What? 031312
SimpleK12 Webinar - You Got an iPad, Now What? 031312Christopher Casal
 
Apple — i pad — compare ipad models
Apple — i pad — compare ipad modelsApple — i pad — compare ipad models
Apple — i pad — compare ipad modelsHarrison Weber
 
AWS微服務時代-Serverless架構與物聯網的整合與應用-Tomofun-Charles Yang
AWS微服務時代-Serverless架構與物聯網的整合與應用-Tomofun-Charles YangAWS微服務時代-Serverless架構與物聯網的整合與應用-Tomofun-Charles Yang
AWS微服務時代-Serverless架構與物聯網的整合與應用-Tomofun-Charles YangAmazon Web Services
 
Emerging Educational Technologies
Emerging Educational TechnologiesEmerging Educational Technologies
Emerging Educational TechnologiesNoelle Morris
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and DeliveryJason Diehl
 
iPad Lecture Capture for Brightspace - Illinois Ignite 2014
iPad Lecture Capture for Brightspace - Illinois Ignite 2014iPad Lecture Capture for Brightspace - Illinois Ignite 2014
iPad Lecture Capture for Brightspace - Illinois Ignite 2014D2L Barry
 
Mac orientation
Mac orientationMac orientation
Mac orientationLori Roe
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstRaymond Camden
 
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für TabletsIndiginox
 
Flash Applications For Mobile
Flash Applications For MobileFlash Applications For Mobile
Flash Applications For MobileSerge Jespers
 
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für TabletsStefan Kolb
 
Cm i padwebdev_lunch_learn
Cm i padwebdev_lunch_learnCm i padwebdev_lunch_learn
Cm i padwebdev_lunch_learnCritical Mass
 

Similar to AbemaTV on Apple TV tvOS入門 (20)

Cisco connect jabber client update
Cisco connect   jabber client updateCisco connect   jabber client update
Cisco connect jabber client update
 
iPhone possibilities
iPhone possibilitiesiPhone possibilities
iPhone possibilities
 
Iphone
IphoneIphone
Iphone
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Adobe Flash platform の法人利用
Adobe Flash platform の法人利用Adobe Flash platform の法人利用
Adobe Flash platform の法人利用
 
SimpleK12 Webinar - You Got an iPad, Now What? 031312
SimpleK12 Webinar - You Got an iPad, Now What? 031312SimpleK12 Webinar - You Got an iPad, Now What? 031312
SimpleK12 Webinar - You Got an iPad, Now What? 031312
 
Apple — i pad — compare ipad models
Apple — i pad — compare ipad modelsApple — i pad — compare ipad models
Apple — i pad — compare ipad models
 
Forensicating the Apple TV
Forensicating the Apple TVForensicating the Apple TV
Forensicating the Apple TV
 
AWS微服務時代-Serverless架構與物聯網的整合與應用-Tomofun-Charles Yang
AWS微服務時代-Serverless架構與物聯網的整合與應用-Tomofun-Charles YangAWS微服務時代-Serverless架構與物聯網的整合與應用-Tomofun-Charles Yang
AWS微服務時代-Serverless架構與物聯網的整合與應用-Tomofun-Charles Yang
 
Emerging Educational Technologies
Emerging Educational TechnologiesEmerging Educational Technologies
Emerging Educational Technologies
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and Delivery
 
iPad Lecture Capture for Brightspace - Illinois Ignite 2014
iPad Lecture Capture for Brightspace - Illinois Ignite 2014iPad Lecture Capture for Brightspace - Illinois Ignite 2014
iPad Lecture Capture for Brightspace - Illinois Ignite 2014
 
Mac orientation
Mac orientationMac orientation
Mac orientation
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
 
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
 
Flash Applications For Mobile
Flash Applications For MobileFlash Applications For Mobile
Flash Applications For Mobile
 
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
 
Cm i padwebdev_lunch_learn
Cm i padwebdev_lunch_learnCm i padwebdev_lunch_learn
Cm i padwebdev_lunch_learn
 
Apple WWDC 2018
Apple WWDC 2018Apple WWDC 2018
Apple WWDC 2018
 
Skyping awesomeness
Skyping awesomenessSkyping awesomeness
Skyping awesomeness
 

More from Yuji Hato

継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」Yuji Hato
 
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ - Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ - Yuji Hato
 
iOSDC 2018 動画をなめらかに動かす技術
iOSDC 2018 動画をなめらかに動かす技術iOSDC 2018 動画をなめらかに動かす技術
iOSDC 2018 動画をなめらかに動かす技術Yuji Hato
 
5分で学ぶ差分更新とRxDataSources
5分で学ぶ差分更新とRxDataSources5分で学ぶ差分更新とRxDataSources
5分で学ぶ差分更新とRxDataSourcesYuji Hato
 
AbemaTV モバイルアプリの開発体制と開発プロセスの話
AbemaTV モバイルアプリの開発体制と開発プロセスの話AbemaTV モバイルアプリの開発体制と開発プロセスの話
AbemaTV モバイルアプリの開発体制と開発プロセスの話Yuji Hato
 
AWA with Realm
AWA with RealmAWA with Realm
AWA with RealmYuji Hato
 

More from Yuji Hato (6)

継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
 
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ - Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
 
iOSDC 2018 動画をなめらかに動かす技術
iOSDC 2018 動画をなめらかに動かす技術iOSDC 2018 動画をなめらかに動かす技術
iOSDC 2018 動画をなめらかに動かす技術
 
5分で学ぶ差分更新とRxDataSources
5分で学ぶ差分更新とRxDataSources5分で学ぶ差分更新とRxDataSources
5分で学ぶ差分更新とRxDataSources
 
AbemaTV モバイルアプリの開発体制と開発プロセスの話
AbemaTV モバイルアプリの開発体制と開発プロセスの話AbemaTV モバイルアプリの開発体制と開発プロセスの話
AbemaTV モバイルアプリの開発体制と開発プロセスの話
 
AWA with Realm
AWA with RealmAWA with Realm
AWA with Realm
 

Recently uploaded

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 

Recently uploaded (20)

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 

AbemaTV on Apple TV tvOS入門

Editor's Notes

  1. はい、それではAbemaTV on Apple TV tvOS入門ということで発表したいと思います。よろしくお願いします。今回codeは1行も出てこないので気楽に聞いてもらえればなと思います。
  2. 簡単に自己紹介です。 波戸と申します。ネット上ではだいたいdekatotoroという名前で活動しています。 これまでは、AmebaアプリやAWAという音楽ストリーミングアプリなど開発してきて、現在はAbemaTVのiOS、tvOSアプリを開発しています。
  3. はい、今回はtvOSについてお話ししようと思うのですが、おそらくtvOS開発したことのある方はそんなにいらっしゃらないと思いますので、 今日は概要や基本をお話ししたいと思います。 まず、Apple TV第4世代の概要について見ていきたいと思います。
  4. 第4世代Apple TVは2015年9月に発表されて、 2015年10月30日に発売されました
  5. AppleTVのスペックですが、CPUはA8のデュアルコアでメモリが2GBなので iPhone6のCPUとiPhone6sのメモリと同じなので、単純に比較はできませんが、iPhone6とiPhone6sの中間のスペックくらいかと思います。
  6. ちなみに値段は今年の9月に値下げが入って 税抜きで32GBモデルが15800円と64GBモデルが20800円です
  7. はい、次に、Apple TVに付属するリモコンですが、
  8. こんな感じです
  9. 上のマットな部分はTouch Surfaceと呼ばれている部分で、SwipeやClick, Tapができます。物理ボタンとして、Menuボタン、Homeボタン、Siriボタン、Play/PauseボタンとVolumeボタンがあります。
  10. Swipeはこんな感じで、左右上下できます。 Clickは押し込む感じです Tapは左右上下の位置で軽く触るイメージになります。
  11. はい、次にtvOSの開発方法なのですが、
  12. 開発方法は大きく分けて2つあります Traditional AppsとClient server appsの2つです Traditional AppsはiOSと同様にUIKitで開発するもので、 Client server AppsはTVMLやTVJSといったWebテクノロジーを使って開発する手法になります。 今回は通常のTraditional Appsの開発についての話になります。
  13. 最初になんですが、アプリサイズの制限がありまして、
  14. アプリのサイズは200MBの制限があります。 ゲームなどサイズが大きくなるものもあると思うので、その場合は オンデマンドリソースやCacheDirectoryを使う必要があります。
  15. tvOSのデータの保存も制限がいくつかありまして、
  16. 図のような感じにまとめました
  17. iCloudにデータを保存と取得ができますというのと、
  18. UserDefaultsが500kの制限がありますよーというのと、
  19. TmpDirectory, CacheDirectoryは、OSによって消される可能性がありますーというものです アプリケーションの実行中は削除されませんが、tvOSではDocumentsディレクトリは使えないので、RealmとかSqliteのようなdatabase fileもcacheDirectoryに保存することになります。なので、purgeされる可能性を考えると、DBはdisk保存じゃなくてonMemoryを検討してもいいかもしれません。
  20. はい、次にtvOSのUser Interactionについて代表的な部分を紹介します。
  21. tvOSではFocusという概念があって、基本的にView間の移動はFocusによて行います。 こんな感じです。
  22. 次に最も多用することが多い画像ですが、 ImageViewにadjustsImageWhenAncestorFocusedというpropertyがあってこれをtrueにしておけば、focus時にparallaxのようなインタラクションになります。
  23. あとは、tvOSと相性の良い動画ですが、 デフォルトのAVPlayerControllerを使用することで、このようなseekやstart/stop操作が簡単に実装できます。
  24. 次にIconと画像ですが、
  25. これはAppStoreの画像で、App Iconが並んでいます。 で、このcollectionで並んでるApp Iconはfocusしてグリグリできるようになっていて、
  26. えー、App IconはLayeredImageというもので作成するのですが、 これは設定アプリの例で、5枚の画像をレイヤードしてできたもので、 よく見ないとわかりませんが、Focus時にグリグリすると、layeredした画像がparallaxぽい動きになります。
  27. ちょっと小さくて見にくいと思いますが、LayeredImageは実際のサイズと、フォーカス時に見切れないサイズ、アンフォーカス時のサイズが定義されているので、これを参考に作ることができます。App Icon以外にもアプリでLayeredImageを使うことができて、埋め込みのLayeredImageはlsr、サーバから取得するものはlcrというformatで使うことができます。埋め込みの場合はXcodeでもできますが、layeredImageを生成するためのツールもいくつか用意されています。
  28. はい、あとはTop Shelf Imageですが、tvOSのホーム画面でfocusした時の上に表示する大きい画像も用意する必要があります。
  29. Top Shelf Imageはコンテンツのリストを見せたりなどのカスタムもできます。
  30. はい、次にLayoutについてAppleが推奨しているレイアウトを紹介します。
  31. アプリの画面レイアウトは1920 x 1080の16:9の画面解像度に設計します。画像もiOSみたく@1x, @2x @3xと複数用意する必要はなくtvOS用に@1xの一つだけで良いです。
  32. 全体的なデザインですが、古いTVだと端が見切れて隠れてしまうことがあるので、画面の端は余白を空けておくことが推奨されています。
  33. 古いTVなどで端が見切れて隠れてしまう現象は、 縦が見切れるオーバースキャンと、横幅が狭まるアンダースキャン などがあり、 テレビやプロジェクター側の設定で調整すると直る場合があります。 ただ、ユーザーがなかなか設定できることに気づかないことが多いと思うので、見切れても問題ないように、先ほどのように余白を設けたデザインにしたほうが良さそうです。。
  34. あとはフォーカスして拡大しても問題ないようにパディングを設けてください、というのと、
  35. 大きな要素でもコンテンツを1画面に伸ばさず、複数あるというヒントを残すと良いですと推奨しています。
  36. こんな感じでレイアウトのテンプレートをAppleが公開しているので 、これを参考にすると良いと思います。
  37. はい、次にUIの部品についてざっと見ていきます
  38. tvOSのTab Barはこんな感じで、上に表示されます。 UITabBarControllerを使って実装すると簡単です。 ほとんどのアプリのメニューがtabを使っているので、メニューはtabを使うのが無難かなーと思います。
  39. Table Viewはこんな感じで、リスト表示に良いです。 focusするとdefaultでfocusアニメーションがついて拡大してくれます。
  40. コレクションViewは、デフォルトではfocusアニメーションはありません。cellの中にadjustsImageWhenAncestorFocused がtrueのImageViewがあればImageが拡大しますが、cell自体のfocusアニメーションをつけたい場合は自分で実装する必要があります。
  41. はい、SplitViewはこんな感じで、この例のように 左がlistで右がコンテンツ表示というのが多いと思いますが、 tvOSだと結構使用するレイアウトだと思います。
  42. これはTextFieldですが、TextFieldは、、そのままですね。
  43. keyboradはこんな感じで、TextFieldなどにfocusした時に表示されます。 数字だけなどkeyboardTypeも色々指定できます
  44. UISearchBarはこんな感じです。
  45. Buttonです、AbemaTVではカスタムボタンをいくつか使っていますが systemボタンを使うとデフォルトでfocusアニメーションがついて拡大してくれたりするので、デザイン上カスタマイズする必要がなければ、systemボタンが良いと思います。
  46. Navigation barは上にナビゲーションを表示します。AbemaTVではNavigation barは使ってませんが、
  47. 例として純正の設定アプリがNavigation barを使って、現在いるnavigation階層のtitleを表示するように使用しています。
  48. はい、あとはUIPageControlで、iOSとほとんど一緒ですね
  49. これは、ローディングに使うUIActivityIndicatorViewです。
  50. あとはUIAlertControllerの例です。popupではなく画面全体に表示される感じになります。
  51. はい、以上がUI部品の紹介になります。 tvOSの概要はだいたい抑えたところで、
  52. ここからは、AbemaTVでのtvOS開発についてお話ししたいと思います。
  53. AbemaTVのtvOS版ですが、ちょうど1週間前くらいの11/25にリリースしました。
  54. まず、開発スケジュールですが、
  55. 初期リリースまでの開発期間は、9月中旬から始めたので大体2か月でした。
  56. まぁ人によって期間が短い長いの感じ方は違うと思いますが、 私は結構大変でしたw
  57. 次に開発体制ですが、
  58. ディレクターが一人とデザイナーが一人で エンジニアはメインで私が入って、もう一人も途中からガッツリ入りました。
  59. tvOSの開発を始めるにあたって、最初に迷ったのがプロジェクト構成です。
  60. iOSと同じプロジェクトにtargetを分けて作るか、別プロジェクトにするかで迷いました。 最初は同じプロジェクトにtargetを分けて作り始めたのですが、 共通機能の依存関係が結構複雑だったりで、結果として
  61. iOSとは別プロジェクトで作成することにしました。主な理由として、 - 共通機能のframeworkができていないことと、 - tvOS開発途中でiOS側のSwift3対応が入ること、 - 上記もろもろ同じプロジェクトで進行するとスケジュール的に厳しいこと から別プロジェクトで開発することにしました。 最終的には同じプロジェクトでtargetを分ける形にしたいなと思っています。
  62. はい、あとは進捗管理ですが、
  63. iOSはJiraを使っているのですが、 tvOSは体制も少人数なので、 ちょうど開発を始めた9月中旬頃にリリースされたGitHub projectとGitHub issueでカジュアルに管理する感じで開発しました。 Waffle.ioとかもありますね
  64. 次にtvOSで使っているライブラリですが、
  65. だいたいiOSと同じものを使ってます。 大きいところで言うと、RxSwift、SQLite, Kingfisher, ProtocolBufferとかですかね。 一部tvOSに対応していないものは、こちらで拡張しています。 使ってないのはFirebaseとかGoogleTagManagerとかtvOSに必要ないもの
  66. 次にAbemaTVのUI/UXについてです。
  67. はい、全体ですが、まずグローバルメニューがあって、 メインの画面が、ホーム、番組表、オンデマンド、設定の4つがあります。 pushやpresentする画面として詳細画面やオンデマンド再生画面、エラー画面やアラートなどいくつかその他の画面があります。
  68. まず最初にアプリを起動すると、ホームのオンエア放送の再生画面になります。
  69. こんな感じです。
  70. オンエア画面の操作は 上でメニュー、左右でチャンネル切り替え、クリックでチャンネル一覧表示としています。 ここのgestureは開発中に使いやすさを色々試していて、最終的にこの操作に落ち着きました。
  71. メニューはこんな感じで上から出るんですが、
  72. tabBarで作ると、このようになります。 ほとんどのアプリがtabBarによるグロールメニューを採用しているので、この形のメニューが無難だとは思います。
  73. onAirの再生画面は、左右スワイプでチャンネルの切り替えができるのですが、ここはPageViewControllerで作っています。
  74. onAirでクリックすると、チャンネルのリストを表示します。
  75. ここの画面は透明にしたViewControllerを重ねて表示していますが、 CustomViewとCollectionViewで作っています。
  76. 次に番組表ですが
  77. 見てわかると思いますが、ここはかなり複雑になっていまして、
  78. チャンネルヘッダーと左の日付リストはcollectionViewで、 真ん中のコンテンツはScrollViewにしています。で、真ん中のscrollViewの中に、、
  79. collectionViewをずらっと並べています。
  80. collectionView一枚じゃないとの?と思った方もいると思いますが、 collectionView一枚だと、focusがうまくいかなかったパターンがあったりして, 試行錯誤の結果最終的にこのようにしていますが、パフォーマンスが厳しい面もあって現在も調整中です。 (左右でスクロールできる形のflowlayoutを入れると画面端までfocusをずらすと勝手に一番端までscrollしてしまう感じのバグがあったので)
  81. あとは、番組表の日付の切り替えとして、一定条件でPlay/Pauseボタンで変更できるトーストを出すようにしています。
  82. Play/Pauseボタンを押すと日付選択画面を表示して、番組表の日付を切り替えられるようにしています。
  83. 詳細画面はこんな感じです
  84. ここで工夫している点としては、番組概要など、テキストの最大行数は決めて、長い場合は3点リーダーにして、focusできるようにしているところです。
  85. 見切れたテキストをクリックしたら全文を見れるようにしています。
  86. 次にオンデマンドですが
  87. オンデマンド画面はこんな感じで、左側にオンデマンドリスト 右側に詳細と削除の動線を置いています。
  88. ここはSplitViewを使って左右を分けた実装にしています。
  89. これはオンデマンド再生画面ですが、オンデマンドはシークやstart/stopを可能にしているので、オンエアと違いコントローラーを追加しています。
  90. これも標準のAVPlayerViewControllerを使って実装しています。
  91. 最後に設定ですが
  92. 設定は特段言うこともないのですが、
  93. ImageViewとTableViewで普通に作っています。
  94. これで、、だいたい主要なところは全部になります。
  95. はい、以上がtvOSのAbemaTVのお話しでした。。 tvOSの雰囲気が少しは伝わったかな〜と思います。
  96. で、最後にまとめなんですが、
  97. - まず、標準のUI/UXに準拠しましょう、ということで基本的にtvOSはリモコンを使って操作するので、iOSほど自由度もなく、他のアプリも標準のUIを採用しているところが多いので、準拠しておくと無難です。 - 次にiOSとの違いはFocusがキモということで、一番ハマるところでもあります。 今日はuI周りが中心だったのですが、focusに関してはまた別の機会にお話しできたらなと思っています。 -3つ目ですが、iOSなどとの共通機能はEmbedded Framework化しておくと良いということで、これはやっている方も多いかもしれませんが、tvOSに限らず、extensionなどでも言えるかと思います。 - 最後に画面が大きくて開発が楽しいです。新しいデバイスでの開発は大変な部分もありますが、やっぱり面白いと再認識しました。
  98. tvOSの開発は初めてだったのですが、 試行錯誤しながら現在も開発中です。
  99. はい、以上になります。 ありがとうございました!