Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
FireTV ことはじめ Cookpad.apk #1 2018-08-21
Slide 2
Slide 2 text
自己紹介 - 柴原 直也 - メディアプロダクト開発部 - 2018新卒入社 - Twitter: 梨原 @nshiba310
Slide 3
Slide 3 text
今日話すこと - FireTV / Android TV 向けアプリ開発の基本的なこと - Fire App Builder - Leanback Library - TV 向けアプリ開発で気をつけないといけないこと
Slide 4
Slide 4 text
Fire TV
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
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)
Slide 7
Slide 7 text
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
Slide 8
Slide 8 text
Fire App Builder
Slide 9
Slide 9 text
Fire App Builder - Amazon 公式が配布してる FireTV 向けアプリを簡単につく れるフレームワーク - データの流れが複雑で少し扱いにくい - 使ってみた感想を一言でいうと、Android開発に慣れて無い 人向けのフレームワークかな、と感じた
Slide 10
Slide 10 text
Introduce Fire App Builder
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
重要なのは この2つ
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
Fire App Builder 良い点 - 動画を配信できるAPIサーバがあれば、 メディアフィードという形式でレスポンスを返すAPIを作るだ けでアプリが作れる - + config ファイルをいじる - 大きくカスタマイズする必要がなければ、フレームワークで 用意されている Component に沿って実装するだけで良い
Slide 20
Slide 20 text
Fire App Builder 悪い点 - config ファイルをいじるだけでいろいろ設定できるように実 装されているので構成が複雑 - ベースプロジェクトがでかいためビルドが長い - モジュールがたくさんあるが、使わないモジュールもあっ て無駄なコードがある - メンテがそんなにされてないっぽい
Slide 21
Slide 21 text
Fire App Builder ハマりポイント
Slide 22
Slide 22 text
google play services がない (FireTV)
Slide 23
Slide 23 text
google play services がない (FireTV) - google 系の api が使えない - 今回だめだったのは firebase-core が入らない問題
Slide 24
Slide 24 text
urlFiles が1行目しか読み込まれない - Fire App Builder の仕様では、複数のメディアフィードを持っ てるなら urlFiles に複数の url を書くことができる。(としか書 かれてない) - https://developer.amazon.com/docs/fire-app-builder/load-media-feed .html#types-of-feeds - なので複数 url を書けば複数 url からデータを取得してくれ ると思った。
Slide 25
Slide 25 text
urlFiles が1行目しか読み込まれない
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
なぜかドキュメントに書かれてない
Slide 30
Slide 30 text
Leanback Library
Slide 31
Slide 31 text
- 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
Slide 32
Slide 32 text
- 基本的な UI は Fragment が用意されていて、それを継承し て作っていく Leanback Library
Slide 33
Slide 33 text
https://github.com/googlesamples/androidtv-leanback#screenshots
Slide 34
Slide 34 text
Leanback Library - Leanback Library の Fragment は MVP アーキテクチャを 採用している - 大雑把に言うと以下のクラスを実装すると作れる - presenter - presenter selector (必要に応じて)
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
No content
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
TV向けアプリで気をつけること
Slide 41
Slide 41 text
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
Slide 42
Slide 42 text
タッチができないということを意識する - TVは基本的にタッチはできなくてコントローラーで操作を行 う。 - そのため、通常のアプリ開発とは違って今何処にフォーカス があるのかをちゃんと分かるように作る必要がある
Slide 43
Slide 43 text
タッチができないということを意識する - よくあるリストのスクロール等をそのまま作ると最悪 - Leanback Library の Fragment を使わずに作る場合で も、 [Vertical | Horizontal]GridLayout というものが用意 されている - RecyclerView を継承して作られているので、 使い方はほぼ RecyclerView と同じ
Slide 44
Slide 44 text
雑感
Slide 45
Slide 45 text
雑感 - Androidエンジニアは普通に leanback library で作ったほう が良さそう - 公式のドキュメントとサンプル見ればだいたい作れる - https://developer.android.com/training/tv/ - https://github.com/googlesamples/androidtv-leanb ack
Slide 46
Slide 46 text
おわり