現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。先日リリースされました、iOSアプリ「テレViewing」、および、家電コントロールSDKの紹介をいたします。テレViewingを作った経緯iOSアプリ「テレViewing」は、2011年Q4(1月~3月)の植田のプロトタイプがもとになっています。個人的に面白かった部分とマッチしていました。レコーダーのストレージ容量が増加し、便利な録画方法も増えてきた昨今、レコーダーのヘビーユーザーが、撮りためた番組を全て視聴するのは難しいというのが現状です。空いた時間でプロトタイプしてみました。プロトタイプの機能は以下になります。ある特定時間内で、特定放送局ハッシュタグを含んだツイートの数を折れ線グラフとして表示―図中(1)グラフの目盛りを動かすと、指示した時間帯のツイートが表示される―図中(2)ツイートのセルをタップすると、録画番組の途中から再生される―図中(3)上長にプロトタイプレビューをした結果、この環境(アプリ、テレビ、レコーダーを同じネットワーク内に接続)を作れる人はすごく少なそうリアルタイムの番組に対しては成り立たないか?オリンピックの前にアプリリリースできないか?などの評価を得て、それを踏まえて「現在放送中の番組に対するユーザーのアクション」にフォーカスしたアプリを作ることになりました。テレViewingの説明テレViewingのファーストリリースでは、機能を絞りブラッシュアップを行った結果、以下のようなシンプルな機能に落ち着きました。どの放送局が盛り上がっているかを確認することができる放送局ごとに、過去2時間さかのぼって、盛り上がりのグラフをみることができる。グラフで過去の盛り上がっているところに目盛りを合わせると、その時間帯のツイートのアーカイブを閲覧できる。グラフで現在の時間のところに目盛りを合わせると、ツイートが自動更新されて閲覧できる。放送局のハッシュタグを付けてTwitterに投稿できる。ツイートの詳細を閲覧できる。対象テレビを所持していて、ネットワークの設定を行うと、アプリからテレビのチャンネルを変更できる以上の機能を備えて、それを使う場面としては以下のようなものを想定しました。番組の内容は気になる!】このように、本アプリはテレビの前にいてもいなくても楽しめるものとなっております。チャンネル変更の方法は下記になります。同じWifiネットワーク内に、iOS端末と対応テレビを接続します。LC-40L5で解説します。リモコンのホームボタン→設定→通信(インターネット)設定→AQUOSリモート設定→詳細設定→ログインID/パスワードの設定を行います。【アプリ側準備】アプリを起動して、設定画面に移動します。機器連携をオンにすると、同じネットワーク内にあるテレビが見つかります。先ほど設定したテレビのIDとパスワードを設定すると、準備完了です。アプリで放送局をタップすると、テレビのチャンネルが変わります!次に、アプリの中で利用している、家電コントロールSDKによるチャンネル変更について、説明します。家電コントロールSDKテレViewingでは、IPによるコントロール機能に対応したテレビと連携させることでチャンネル変更を行うことができます。JAPAN社内で提供している「家電コントロールSDK」と呼んでいるライブラリを利用しています。家電コントロールSDKとは、一言で言うと「複数メーカの複数端末を一元的に制御する為のSDK」です。テレビなどのAV機器を制御する際はIR(赤外線)を利用するのが常識でしたが、近年、IP経由で制御することができるインターフェースが実装されています。これにより、IPを利用してテレビのボリュームを上げたり、内蔵のブラウザーを起動したり、といった遠隔制御が可能になっています。メーカごとに詳細仕様は異なっており、家庭内に複数のメーカーの製品がある場合、一元的に制御できないということが課題でした。そこで、「仕様差異の吸収はこちらで受け持つのでメーカ関係なく制御できるようにしましょう!」という提案を実現したのが家電コントロールSDKです。家電コントロールSDKはiOS版・Android版を用意しており、テレViewingはiOS版を利用しています(iOSのアプリなので当然ですが)。仕様について今回は概要レベルでご説明いたします。家電コントロールSDKのAPIについて上記図の通り、家電コントロールSDKは、専用のAPI群を持っています。APIを用意している理由は3つあります。それぞれについて以下で説明します。仕様の違うメーカごとの制御命令を実行する機構を全て家電コントロールSDKの中に含めたのでは、利用するお客様にとって不必要なデータ・機能が含まれてしまうことになります。現在はまだシャープ様のテレビにしか対応していませんが、将来的には対応メーカ・対応機種を増やす予定ですので、どんどんアプリ容量が膨らんでいくことになります。いった危惧もあり、基本的には必要なデータは必要になったタイミングでダウンロードする、という設計となっています。「必要になったタイミング」とは「チャンネルを変更する」「URLを指定してブラウザーを起動する」といった制御命令を実行するインターフェースが家電コントロールSDK利用者によって呼ばれた時を指します。次に理由2についてです。仕様が異なる各メーカごとの機能にも、実現できることが同じなものがあります。これらを一つの命令として統一することで、家電コントロールSDKを利用する側はどのメーカの端末を制御するか、という意識をせずに実際の仕様が異なる制御命令を同じ構文で発行することができます。最後に、理由3についてです。複数の端末に送ることのできる命令を組み合わせて、それを1つインターフェースとしてアプリ開発者側に提供することが可能です。サーバー側で「家庭内の全ての端末に含まれるコンテンツからキーワード検索をする」という命令を用意するとアプリ開発者側はこのインターフェースをたたくだけで、家庭内にある複数のレコーダー・PCなどのコンテンツサーバーを横断的に検索した結果を取得する事が可能な設計になっています。SDKのインターフェースについてインターフェースは基本的に経由してもらうクラスを二つ用意しています。一つ目は「DeviceManager」クラスです。名前の通り、端末(=device)に関する情報を管理するクラスです。このDeviceManagerを経由して、同じネットワークの端末を探したり、いなくなったことを検知したり、端末のリストを最新に保ったりしています。デバイスのインスタンスを取得します(この例では仮に一番目の端末を取得しています)二つ目のインターフェースは「IpControlManager」クラスです。家電コントロールSDK利用側はこのクラスを通じて端末に制御命令を実行します。命令を実行した後に結果を取得するのもこのクラスを経由します。「KickBrowserWithUrl」という制御命令を、↑のパラメータを指定して実行します。JAPANのトップページが開かれます。今後の展望について家電コントロールSDKについては、対応デバイスを増やしていったり、家庭外から家庭内の機器を操作できるようにしたいと考えています。テレViewingについては、テレビをもっと面白く視聴できるという点にフォーカスをあてて新機能の追加や、Android対応などを目指していくことを考えています。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。