Development of Android TV

「Beauty for Android TV」の開発で培った簡単実装

Android TVアプリの開発事情

研究開発チーム(バイト)の美馬(@amyu_san)です。

2014年のGoogle I/Oで初お披露目となったAndroid TVのアプリ開発についてのお話です。

Android TVとは

「好みに合わせて選べるエンターテイメント」をコンセプトにしたTV向けのAndroid OSです。
現在、SONYやSHARPといった多くののメーカーがAndroid TVを搭載したテレビの発売すると発表しています。

出典(2015年1月現在)

とりあえず最先端に手を出すスタイル

2014年のGoogle I/Oで配っていたAndroid TV"ADT-1“を手に入れ、すぐにリクルートライフスタイルでは検証や開発を行っていきました。
そうした中、すでにあるサービスをAndroid TV向けにリリースできないかということで…
"Beauty for Android TV”
をこの度、リリースいたしました!!!!

この記事では、Android TV用アプリ開発の苦労話や開発が楽になる方法などをつらつら紹介していきます!

Leanback Support Library

Android TV向けのアプリ開発はゲームアプリなどではない限り、基本的にはv17から提供されているLeanback Support Libraryを使用します。
内部の挙動などは普段からAndroidアプリを開発している方ならすぐにわかると思います。
そのため開発を行う方はgooglesamplesのandroidtv-Leanbackを読んでみることをオススメします。

D-Pad対応

Android TVは当然のことながらタッチ操作を行うことが出来ません。
そのため、リモコンやゲームパッドを用いた操作の最適化を行う必要があります。

これはレイアウトXMLのFocusで対応することで解決が可能になっています。
例えばこんな感じ

上から下に流れるようなFocusの変化が望ましいですね!

AndroidManifestのuses-featureの指定

Android TV向けに最適化されたアプリはスマートフォンなどでインストールが出来ないよう制限する必要があります。

Android DevelopersのHandle Unsupported Hardware FeaturesではtouchscreenやNFC,Cameraなど9つのhardware featuresをサポートしないで良いと書かれています。
ただ、Bluetoothを搭載しているAndroid TV向けハードウェアも多く、私は最低限スマートフォンだと認識しなければ平気だと考えています。
そのため、今回開発したアプリでは以下の様なuses-featureを設定しています。

こちらもandroidtv-Leanbackに書いてあるのでぜひぜひ読んでみてください。

Recommendation Cardの作成

Android TVではホーム画面にRecommendation Cardを表示することが出来ます。
こんなやつ

コレ作るのは実は結構簡単で、サンプルコードが非常に参考になります。 しかし、問題なのが
「Recommendation Cardにフォーカスが当たった時、背景を変えなければならない。 もしRecommendation Cardと同じ画像を使用する場合はBlurをかける必要がある」
というデザインガイドラインを実装することでした。 これは、googlesamplesのなかに無く、空実装だけしかしてない状況です。
ということで、送ったPull Requestはこちら。
RecommendationContentProvider

これをさくっと実装すればうまくいくはずです!!!

まとめ

Android TVアプリ作成はゲーム以外のコンテンツの場合Leanback-libraryを使うとかなり簡単に作成することが出来ます。
型がガチガチに固めてあるので、少しサンプルをイジるだけでもTVアプリとしての最低のガイドラインをクリアできます。
しかし、工夫しないとデザインが皆おなじになってしまうため、飽きられないようにデザインしないといけないな、という印象を持ちました。

また、Android TVはSampleやドキュメントの更新が激しく、開発を始めた1月頭と比べると大きく違います。
そのため、開発中は常に監視しておく必要があります。

変に凝ったことをしない限り、ちょいと手を出すぐらいなら簡単にできるので、作ってみるのが良いかなと思います。
Google TV化しないように祈りながら…

参考

Background Images for Recommendations.
Android Developers
Android TV入門

Tech Blog

(編集部)

株式会社リクルートライフスタイルのTech Blog編集部です。いま流行りのTechネタやちょっと使えるTipsなどをお届けしていきます。

NEXT