VLC は、VideoLAN プロジェクトが開発した無料でオープンソースのクロスプラットフォーム マルチメディア プレーヤーです。VLC の設計の中核には、あらゆるファイルと画面のシームレスな互換性があります。VLC ではローカルの動画ファイルと音声ファイルのほとんどが再生可能で、各種のストリーミング プロトコルにも対応しています。VLC エンジンは、多くのサードパーティ製アプリで動画の再生処理に使用されています。VideoLAN の開発チームの最終的な目標は、デバイスや画面サイズを問わず、あらゆるメディアをどこでも再生できるようにすることです。
開発チームは当初 Android 向けの VLC アプリを設計しましたが、その後まもなく、Chromebook でも同じ機能を求める声がユーザーから寄せられるようになりました。そこで VideoLAN は、VLC を Chrome OS に移植して、デスクトップ スタイルで使えるようにしようと考えました。
Android アプリを Chrome OS と大画面向けに最適化し、最初から x86 および 64 ビット ARM に対応することで、デバイスとフォーム ファクタが違ってもユーザーが同じように動画や音楽を楽しめるようにしました。
VideoLAN の取り組み
チームはまず、VLC ユーザーがデスクトップで使うことを好む機能(マウス入力や右クリック メニューなど)に注目するとともに、外部ストレージ(ハードドライブと USB サムドライブ)が正常に機能することを確認しました。次に、アプリのレイアウトと機能を調整して、デスクトップのような環境でもユーザーが同じ機能を利用できるようにしました。
キーボードとマウスのサポート
チームが行った最も重要な最適化のひとつは、キーボード入力とマウス入力をサポートすることでした。キーボードについては、ショートカットと矢印キーでアプリを簡単に操作できるようにしました。マウスについては、右クリック操作と、ドラッグ&ドロップによる VLC プレーヤーとのファイルのやり取りを可能にしました。
動的なサイズ変更
VideoLAN は、ユーザーが簡単にアプリのスケーリングとサイズ変更を行えるようにするため、複数のバージョンのレイアウトを設計しました。チームはタブレット用の VLC レイアウトをすでに設計していたため、より大画面の幅広いレイアウトに合わせて調整するのは非常に簡単な作業でした。大画面上の追加のスペースを使えるという点を活かして、プレーヤーのオーディオ設定も調整しました。
従来は、個々のレイアウトをテストするには、それぞれについて個別のエミュレータまたはデバイスを使用する必要がありました。しかし、Chrome OS では Android がサポートされているため、エミュレータを使わずに、同じデバイスでデスクトップ、タブレット、モバイルの UI レイアウトをすべてテストできました。これにより、設計とテストの時間が大幅に短縮されました。
今では、Chrome OS 上の Linux(ベータ版)のおかげで、開発者は Android Studio を使用して Android アプリをネイティブにビルドしてテストし、Chromebook を開発用デバイスとして利用できます。

Kotlin によるコード作成
特に重要なのは、チームがすべての作業を Kotlin で行ったことです。この強力なプログラミング言語を使って安全で簡潔なコードを記述することは、生産性の向上に役立ちました。アプリのコードベースを削減することで、問題解決にかかる時間を短縮し、アプリのレイアウトと機能の最適化により多くの時間をかけることができました。
VideoLAN の Android 開発チームのリーダーである Geoffrey Métais 氏は次のように言います。「大幅なコードの再編成や書き直しは、機能を損なうリスクがあるので通常は気が進みません。嬉しいことに、Android Studio の組み込み移行ツールのおかげで、Java から Kotlin への移行は非常にスムーズでした。Kotlin のコルーチン フレームワークがパフォーマンスの改善に役立ちました。」
結果
VideoLAN はモバイル、Chrome OS、Android TV で同じ APK を使用していたため、主任開発者が各プラットフォーム向けにアプリを最適化するのに 2 か月しかかかりませんでした。VLC が Chrome OS をサポートする(特に DVD 再生に対応する)ことを求めるユーザーの声は数か月前から多く寄せられていたので、これまでの評判はきわめて上々です。さらに、最新バージョンの Chrome OS は外部ストレージに完全対応しているため、今では Android ユーザーもこの機能を利用できます。
VideoLAN の議長である Jean-Baptiste Kempf 氏は次のように述べています。「私たちはユーザーに最大級のインパクトを与える機会を常に探し求めています。Chromebook 向けに最適化したおかげで、多数のデバイスとフォーム ファクタにアプリを対応させることができました。この取り組みが成功だったことは、世界中のユーザーからの反応を見れば明らかです。」
スタートガイド
Chrome OS 向けにアプリを最適化するためのベスト プラクティスをご確認ください。