tvOS Advent Calendar 2017 25日目担当の @dekatotoroです。
**AbemaTV**のiOSアプリやtvOSアプリを開発しています。
本日は最終日です!
今日はAbemaTVのtvOSアプリで使っているライブラリの紹介と、tvOS特有のライブラリをピックアップしたいと思います 📺
基本的にtvOS専用のライブラリというのは少なくて、多くのライブラリがiOSとtvOSの両方に対応しています。
AbemaTVで使っているtvOSライブラリ
まずはAbemaTVのtvOSアプリで使っているライブラリを紹介したいと思います。
ほとんどiOSで使っているものと同じになります。
DB
Reactive
RxSwift
RxTV
Action
RxDataSources
Network
UI
ImageOverlay
FocusZPositionMutating
GestureTV
HorizontalStickyHeaderLayout
Cartography
AttributedLabel
SpringIndicator
Cheetah
Image Loader
Util
KeychainAccess
Reachability
SwiftDate
SwiftyUserDefaults
Fabric
Tool
SwiftLint
SwiftGen
IBAnalyzer
Sourcery
Test
tvOSピックアップライブラリ
tvOSに特化したライブラリを探してみました。
iOSで使えるものもありますが、なるべくtvOS特有のものを取り上げたいと思います。
TVOSSlideViewController
左右のドロワーを表示するライブラリで、panGestureで左右のドロワーを制御しています。
side-navigation
こちらもTVOSSlideViewControllerと同様左右のドロワーを表示するライブラリです。
HorizontalStickyHeaderLayout
アドベントカレンダーの6日目で紹介がありますが、フォーカスに合わせて上下に動くStickyなセクションヘッダーのライブラリです。
FocusZPositionMutating
layerのzPositionを、フォーカスに合わせて自動で調整してフォーカスされたViewが一番上にくるようにしてくれます。
こちらはアドベントカレンダーの12日目で紹介されています。
ImageOverlay
tvOS11でUIImageView上にカスタムUIを表示するためにoverlayContentViewが追加されましたが、tvOS9、10の同様の機能を提供してくれるライブラリです。
Re-Lax
アドベントカレンダーの11日目で紹介したフォーカスエフェクトですが、Apple純正のエフェクトを忠実に再現しているライブラリです。
RxTV
tvOS用のRxSwiftのReactive Extension群です。
アドベントカレンダーの15日目で紹介があります。
TVOSPicker
tvOS用の選択用UI部品
TvOSTextViewer
tvOS用の選択用UI部品
TvOSMoreButton
tvOS用のスクロールできるテキスト表示用UI部品
TvLightSegments
tvOS用のスクロールできるテキスト表示用UI部品
TVOSToast
tvOS用のスクロールできるテキスト表示用UI部品
PopcornTimeTV
tvOS用のトーストUI部品
antenna
こちらはライブラリではないですが、USTVnowのAPIを使ったtvOSのライブTVアプリになります。
まとめ
いかがでしょうか。
tvOSアプリを作る場合、多くはiOSアプリからの派生ではないでしょうか。
多くのライブラリはtvOSにも対応していますので、iOSとの共通化や同じ設計ができるのではないかと思います。また、フォーカスまわりの処理はtvOS特有なので、tvOSに特化したUI部品のライブラリもいくつかありました。
tvOS用のライブラリはまだまだ少ないので、今後良いものができたら公開していきたいと思います。
tvOS Advent Calendar 2017 最終日をお送りしました!