Unity 8とMir
「Unity 8」をご存じですか?かつては「Ubuntu Desktop」のメインストリームになる予定だったデスクトップ環境(シェル)です。
また「Unity 8」はモバイルデバイス向けOSである「Ubuntu Touch」に採用されているシェルでもあります。
一つのシェルで様々なデバイスをサポート
当時「Canonical」は収束(コンバージェンス)という構想を持っており、モバイル環境とデスクトップ環境を1つの環境で提供する、という目標を持っていました。これを実現するシェルが「Unity 8」です。
一般的なユーザーが利用するデバイスを大きく分類すると、スマートフォン、タブレット、ノートPC、デスクトップPCに別れます。
前者2種はモバイルデバイスであり、また後者2種のデバイスとは大きく形状の異なるデバイスであり、デスクトップ向けのOSをモバイルデバイス向けにそのまま提供してもユーザーが必要とするUXを提供することはできません。
逆もまた然りです。
しかし「Unity 8」は、デバイスの使われ方でユーザーインターフェースを変化させる仕組みを持っており、デバイスの形状の垣根を超えたシェルを実現しました。
UBportsが開発を受け継ぐ
現在「Unity 8」は「Canonical」の手を離れ、「Ubuntu Touch」と共に「UBports」コミュニティーで開発が行われています。モバイル向けUnity 8(Ubuntu Touch)
「Ubuntu Touch」はモバイルデバイス向けのOSであり、スマートフォンやタブレット向けに最適化されたOSです。「Ubuntu Touch」はシェルに「Unity 8」を採用しています。
現在「Ubuntu Touch」は「Ubuntu 16.04 LTS」をベースに開発されています。
モバイルな使い方もデスクトップな使い方もOK
マウスとキーボード、そして外部ディスプレイをモバイルデバイスに接続すると、「Unity 8」のユーザーインターフェースがデスクトップ環境に合わせたデザインに変化する特徴を持っています。(デスクトップモード)Webで言うところのレスポンシブデザインみたいなものです。
あたかもノートPCやデスクトップPCで操作しているかのような使い勝手を得られます。
豊富なアプリケーション
「Ubuntu Touch」ユーザーはモバイルデバイスにも関わらず、デスクトップモードにより「LibreOffice」や「Gimp」、「Firefox」など豊富なデスクトップ向けアプリケーションを活用できます。デスクトップ向けUnity 8
デスクトップ向け「Unity 8」は、デスクトップ向けOS上で動作する「Unity 8」です。「Ubuntu Desktop」等で「Unity 8」を動作させることができ、Waylandベースのアプリケーションを利用できます。
しかしまだ開発中の段階であり、実装が不十分な機能や期待通りに動作しない機能があります。
Unity 8 on Ubuntu 18.04
まだ開発段階の「Unity 8」ですが、「Ubuntu 18.04」上で「Unity 8」が動作する様子を以下の動画で参照できます。Ubuntuだけじゃない
デスクトップ向け「Unity 8」が動作するOSは「Ubuntu」だけではありません。「Fedora」や「Debian」そして「Arch」で「Unity 8」が動作するよう、作業が進められています。
Unity 8はMir上で動作
「Mir」はシェルの開発に必要だが実装が複雑な機能を簡素化します。「Mir」はタッチ入力やマウス、タブレットの入力を処理する機構を提供し、セキュアなクライアント・サーバー間の通信を提供しています。
ハードウェアの抽象化
「Mir」は幅広いグラフィックデバイスと入力デバイスの初期化と設定を行います。グリーターといったシステムコンポーネントとの統合やハードウェアを透過的に扱うことでハードウェアの違いを抽象化し、シェルの開発者はハードウェアの違いを意識せずに済みます。
Qt/QMLとの親和性
「Mir」のモジュラー設計により、Qt/QMLと親和性の高い統合を可能にしています。つまりデスクトップ向けのシェルを開発する場合、このような高レベルのプログラミング言語を活用できます。
「Unity 8」はこのおかげで、様々なパネルやサーバーサイドの装飾、UIの遷移、アニメーション効果を実現しています。