Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FireTVことはじめ

E6d41d2d8b9dc4139ff18e46c8cc97c9?s=47 Naoya Shibahara
August 21, 2018
4.5k

 FireTVことはじめ

Cookpad.apk #1

E6d41d2d8b9dc4139ff18e46c8cc97c9?s=128

Naoya Shibahara

August 21, 2018
Tweet

Transcript

  1. FireTV ことはじめ Cookpad.apk #1 2018-08-21

  2. 自己紹介 - 柴原 直也 - メディアプロダクト開発部 - 2018新卒入社 - Twitter:

    梨原 @nshiba310
  3. 今日話すこと - FireTV / Android TV 向けアプリ開発の基本的なこと - Fire App

    Builder - Leanback Library - TV 向けアプリ開発で気をつけないといけないこと
  4. Fire TV

  5. None
  6. 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)
  7. 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
  8. Fire App Builder

  9. Fire App Builder - Amazon 公式が配布してる FireTV 向けアプリを簡単につく れるフレームワーク -

    データの流れが複雑で少し扱いにくい - 使ってみた感想を一言でいうと、Android開発に慣れて無い 人向けのフレームワークかな、と感じた
  10. Introduce Fire App Builder

  11. None
  12. 重要なのは この2つ

  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. Fire App Builder 良い点 - 動画を配信できるAPIサーバがあれば、 メディアフィードという形式でレスポンスを返すAPIを作るだ けでアプリが作れる - +

    config ファイルをいじる - 大きくカスタマイズする必要がなければ、フレームワークで 用意されている Component に沿って実装するだけで良い
  20. Fire App Builder 悪い点 - config ファイルをいじるだけでいろいろ設定できるように実 装されているので構成が複雑 - ベースプロジェクトがでかいためビルドが長い

    - モジュールがたくさんあるが、使わないモジュールもあっ て無駄なコードがある - メンテがそんなにされてないっぽい
  21. Fire App Builder ハマりポイント

  22. google play services がない (FireTV)

  23. google play services がない (FireTV) - google 系の api が使えない

    - 今回だめだったのは firebase-core が入らない問題
  24. urlFiles が1行目しか読み込まれない - Fire App Builder の仕様では、複数のメディアフィードを持っ てるなら urlFiles に複数の

    url を書くことができる。(としか書 かれてない) - https://developer.amazon.com/docs/fire-app-builder/load-media-feed .html#types-of-feeds - なので複数 url を書けば複数 url からデータを取得してくれ ると思った。
  25. urlFiles が1行目しか読み込まれない

  26. None
  27. None
  28. None
  29. なぜかドキュメントに書かれてない

  30. Leanback Library

  31. - 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
  32. - 基本的な UI は Fragment が用意されていて、それを継承し て作っていく Leanback Library

  33. https://github.com/googlesamples/androidtv-leanback#screenshots

  34. Leanback Library - Leanback Library の Fragment は MVP アーキテクチャを

    採用している - 大雑把に言うと以下のクラスを実装すると作れる - presenter - presenter selector (必要に応じて)
  35. None
  36. None
  37. None
  38. None
  39. None
  40. TV向けアプリで気をつけること

  41. 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
  42. タッチができないということを意識する - TVは基本的にタッチはできなくてコントローラーで操作を行 う。 - そのため、通常のアプリ開発とは違って今何処にフォーカス があるのかをちゃんと分かるように作る必要がある

  43. タッチができないということを意識する - よくあるリストのスクロール等をそのまま作ると最悪 - Leanback Library の Fragment を使わずに作る場合で も、

    [Vertical | Horizontal]GridLayout というものが用意 されている - RecyclerView を継承して作られているので、 使い方はほぼ RecyclerView と同じ
  44. 雑感

  45. 雑感 - Androidエンジニアは普通に leanback library で作ったほう が良さそう - 公式のドキュメントとサンプル見ればだいたい作れる -

    https://developer.android.com/training/tv/ - https://github.com/googlesamples/androidtv-leanb ack
  46. おわり