Unity8とMirの採用見送り
「Ubuntu 16.04」では、Unity8とMirの採用を見送り、「Ubuntu 15.10」と同様にUnity 7とXサーバーを提供します。Unityの歴史とUnity 8
Unityの歴史を振り返りながら、Unity 8が目指しているゴールを見てみます。1.Ubuntu Desktopとは
「Ubuntu Desktop」は、デスクトップPCやノートPCで利用するUbuntuのことです。一般的なデスクトップユーザーが利用するUbuntuが、「Ubuntu Desktop」になります。
Ubuntuには様々な種類があり、サーバー向けの「Ubuntu Server」や、モバイル・スマフォ向けの「Ubuntu Touch(Ubuntu Phone)」など、それぞれの用途に最適化されたUbuntuが提供されています。
2.Unity誕生
「Unity」は、2010年10月にリリースされた「Ubuntu Netbook Edition 10.10」から導入されたデスクトップ環境です。この頃「Unity」は、「Ubuntu Desktop」で採用されていませんでした。
「Ubuntu Netbook Edition」は、文字通りネットブック向けのUbuntuです。
当時はネットブックが流行っていた時期で、ネットブックのディスプレイの解像度はXGA未満、ディスプレイのサイズは大きいもので10インチ程度でした。
特に縦方向の解像度は大きいものでも600ピクセル程度と、デスクトップPCに比べると小さく、可能な限りアプリのコンテンツを多く表示させる仕組みが必要になりました。
この限られた解像度の中でデスクトップPC向けのユーザーインターフェースは利用し辛く、ネットブックに適合した新たなデスクトップ環境が必要になりました。
そこでネットブック向けに開発されたデスクトップ環境が「Unity」でした。
「Unity」は、「Ubuntu Netbook Edition」に搭載されました。
各ウィンドウに表示されていたアプリのメニューを画面の上部に表示する「グローバルメニュー」という仕組みは、この時作られた仕組みです。
「グローバルメニュー」は今でもデフォルトで使用されている仕組みです。
3.Ubuntu DesktopでもUnityを採用
その後「Unity」は、デスクトップPCでも利用できるよう修正され「Ubuntu Desktop 11.04」でデフォルトのデスクトップ環境として採用されることになります。と同時に、「Ubuntu Netbook Edition」は「Ubuntu Desktop」に統合され、ネットブックでもデスクトップPCでも統一感のあるユーザーインターフェースを利用できるようになりました。
「Unity」の構想は当初から、異なるディスプレイの解像度やサイズでも、一貫していて、かつ、美しいデスクトップ環境を提供することでした。
その構想は、「Ubuntu TV」に見て取れます。
4.スマートフォンやタブレットの台頭
iPhoneやAndroid端末の台頭は記憶に新しいかと思います。スマートフォンやタブレットが台頭するようになり、ネットブックは淘汰されていきました。
このような状況の中、「Ubuntu Touch」プロジェクトが立ち上がります。
主にPC向けに実装されていた「Unity」を、スマフォやタブレットといったモバイルデバイスにも適合させようと「Unity」の構想が変化しました。
「1つの実装で全てのデバイスをカバーする」
「Unity」の構想が変化した瞬間です。
そして全てのデバイスをサポートするための実装が始まった瞬間でもあります。
このプロジェクトを「UnityNext」と呼んでいました。
PC、TV、スマートフォン、タブレット・・・異なるデバイスでも統一感のある見た目や操作性が実現できるユーザーインターフェースの提供を目指して、実装が始まりました。
Webでいう「レスポンシブデザイン」に似たようなイメージでしょうか。
5.UnityNextからUnity 8へ
現在「UnityNext」は、「Unity 8」と呼ばれるようになりました。「UnityNext」が目標としている「1つの実装で全てのデバイスをカバーする」が、現実味を帯びてきた、ということでしょうか。
「Unity 8」は、「Qt5/QML2」を利用して実装されています。
「Qt5/QML2」を採用した主な理由は、OpenGLへの低レベルアクセスが可能な点や、パフォーマンスが良い点が挙げられます。
特にOpenGLへの低レベルアクセスが可能な点は、洗練されたユーザーインターフェースを提供する上で欠かせない点です。
6.Unity 8はMir上で動作する
「Unity 8」は「Mir」上で動作します。従って「Unity 8」は、「Mir」とセットで利用することになります。
現状の「Ubuntu Desktop」の「Unity」は「Unity 7」です。
「Unity 7」が「Xサーバー向けUnity」で、「Unity 8」が「Mir対応版Unity」と言ったところでしょうか。
7.Unity 8が目指すゴール
「1つの実装で全てのデバイスをカバーする」という目標を実現するため、「Unity 8」が目指すゴールを以下のように決めています。- 各デバイスの特性や制約を考慮しつつ最適化を行い、様々なデバイスに適合させる
- 全てのデバイスで、分かりやすく使いやすい一貫性のあるユーザーインターフェースを提供する
- デバイスの出力先に合わせて、動的に最適なデザインに変化させる
「3.」は、例えば「Ubuntu Phone」の外部出力をPCのディスプレイに接続すれば、デスクトップ向けのユーザーインターフェースで表示するなど、状況に応じてユーザーインターフェースを変化させることを意味します。
また実装面では、以下に配慮して実装を行います。
- 可能な限りメモリー等のリソース消費を抑え、効率的な実装を行う
- Unityが動作している環境で起きた変化を検知し、ユーザーが期待する適切な反応をする
- Unityを様々なデバイスで動作させるため、将来の変化に対応でき、また、メンテナンス性を維持できるよう、一貫性のある設計を維持する