Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
FireTVことはじめ
Naoya Shibahara
August 21, 2018
2
4.5k
FireTVことはじめ
Cookpad.apk #1
Naoya Shibahara
August 21, 2018
Tweet
Share
More Decks by Naoya Shibahara
See All by Naoya Shibahara
WorkManager のすすめ / Recommendation of WorkManager
nshiba
0
190
storeLive をスーパーで 動かし続けるためにやったこと/What we did to keep storeLive running at supermarkets
nshiba
0
400
cookpadTV マルチモジュール化について/Multi modularization in cookpadTV
nshiba
1
5.8k
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
48
2.6k
How to train your dragon (web standard)
notwaldorf
60
3.9k
Automating Front-end Workflow
addyosmani
1351
200k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
25
15k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
15k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.9k
What’s in a name? Adding method to the madness
productmarketing
11
1.6k
How to Ace a Technical Interview
jacobian
267
21k
Mobile First: as difficult as doing things right
swwweet
213
7.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
151
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1.1k
Support Driven Design
roundedbygravity
87
8.6k
Transcript
FireTV ことはじめ Cookpad.apk #1 2018-08-21
自己紹介 - 柴原 直也 - メディアプロダクト開発部 - 2018新卒入社 - Twitter:
梨原 @nshiba310
今日話すこと - FireTV / Android TV 向けアプリ開発の基本的なこと - Fire App
Builder - Leanback Library - TV 向けアプリ開発で気をつけないといけないこと
Fire TV
None
FireTV - Amazon から発売している TV 向け端末 - Apple TVなどが類似品 -
現在は第3世代まで出ている - https://www.amazon.co.jp/gp/product/B01ETRGGYI/ - 中身の OS はほぼ Android - 第1, 2世代は Android 5.1 (Lollipop、APIレベル22) - 第3世代は Android 7.1 (Nougat、APIレベル25)
FireTV - FireTV 向けアプリを作るにはだいたい2種類ある - 公式フレームワークの Fire App Builder を使う
- https://developer.amazon.com/ja/docs/fire-app-builder/overview.html - https://github.com/amzn/fire-app-builder - Leanback Library を用いて普通に Android TV 開発 - https://developer.android.com/training/tv/ - https://github.com/googlesamples/androidtv-leanback
Fire App Builder
Fire App Builder - Amazon 公式が配布してる FireTV 向けアプリを簡単につく れるフレームワーク -
データの流れが複雑で少し扱いにくい - 使ってみた感想を一言でいうと、Android開発に慣れて無い 人向けのフレームワークかな、と感じた
Introduce Fire App Builder
None
重要なのは この2つ
None
None
None
None
None
None
Fire App Builder 良い点 - 動画を配信できるAPIサーバがあれば、 メディアフィードという形式でレスポンスを返すAPIを作るだ けでアプリが作れる - +
config ファイルをいじる - 大きくカスタマイズする必要がなければ、フレームワークで 用意されている Component に沿って実装するだけで良い
Fire App Builder 悪い点 - config ファイルをいじるだけでいろいろ設定できるように実 装されているので構成が複雑 - ベースプロジェクトがでかいためビルドが長い
- モジュールがたくさんあるが、使わないモジュールもあっ て無駄なコードがある - メンテがそんなにされてないっぽい
Fire App Builder ハマりポイント
google play services がない (FireTV)
google play services がない (FireTV) - google 系の api が使えない
- 今回だめだったのは firebase-core が入らない問題
urlFiles が1行目しか読み込まれない - Fire App Builder の仕様では、複数のメディアフィードを持っ てるなら urlFiles に複数の
url を書くことができる。(としか書 かれてない) - https://developer.amazon.com/docs/fire-app-builder/load-media-feed .html#types-of-feeds - なので複数 url を書けば複数 url からデータを取得してくれ ると思った。
urlFiles が1行目しか読み込まれない
None
None
None
なぜかドキュメントに書かれてない
Leanback Library
- Android TV アプリの開発において Google のガイドライン の標準的な UI/UX を簡単に実現するライブラリ -
https://developer.android.com/design/tv/ - https://developer.android.com/topic/libraries/support-library/features #v17-leanback - サンプルが公開されている - https://github.com/googlesamples/androidtv-leanback Leanback Library
- 基本的な UI は Fragment が用意されていて、それを継承し て作っていく Leanback Library
https://github.com/googlesamples/androidtv-leanback#screenshots
Leanback Library - Leanback Library の Fragment は MVP アーキテクチャを
採用している - 大雑把に言うと以下のクラスを実装すると作れる - presenter - presenter selector (必要に応じて)
None
None
None
None
None
TV向けアプリで気をつけること
TVにはオーバースキャンエリアが存在する - TVにはディスプレイの端っこに時間を表示したり、そもそも クリッピングされている場合がある - そのため、だいたい 10% マージンを確保してそこには基本 的にコンテンツを置かないようにしたほうが良い -
https://developer.android.com/training/tv/start/layouts?hl=ja#oversc an - https://developer.amazon.com/ja/docs/fire-tv/system-xray-developer- tools.html#safezone
タッチができないということを意識する - TVは基本的にタッチはできなくてコントローラーで操作を行 う。 - そのため、通常のアプリ開発とは違って今何処にフォーカス があるのかをちゃんと分かるように作る必要がある
タッチができないということを意識する - よくあるリストのスクロール等をそのまま作ると最悪 - Leanback Library の Fragment を使わずに作る場合で も、
[Vertical | Horizontal]GridLayout というものが用意 されている - RecyclerView を継承して作られているので、 使い方はほぼ RecyclerView と同じ
雑感
雑感 - Androidエンジニアは普通に leanback library で作ったほう が良さそう - 公式のドキュメントとサンプル見ればだいたい作れる -
https://developer.android.com/training/tv/ - https://github.com/googlesamples/androidtv-leanb ack
おわり