Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FireTVことはじめ
Search
Naoya Shibahara
August 21, 2018
5.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FireTVことはじめ
Cookpad.apk #1
Naoya Shibahara
August 21, 2018
More Decks by Naoya Shibahara
See All by Naoya Shibahara
WorkManager のすすめ / Recommendation of WorkManager
nshiba
0
1.2k
storeLive をスーパーで 動かし続けるためにやったこと/What we did to keep storeLive running at supermarkets
nshiba
0
710
cookpadTV マルチモジュール化について/Multi modularization in cookpadTV
nshiba
1
6.4k
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
52k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
The Cost Of JavaScript in 2023
addyosmani
55
10k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Why Our Code Smells
bkeepers
PRO
340
58k
The Limits of Empathy - UXLibs8
cassininazir
1
360
Building Adaptive Systems
keathley
44
3.1k
Prompt Engineering for Job Search
mfonobong
0
340
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
The Curse of the Amulet
leimatthew05
1
13k
Claude Code のすすめ
schroneko
67
230k
GitHub's CSS Performance
jonrohan
1033
470k
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
おわり