Snapアプリとデスクトップテーマの連携改善作業
ユーザーがアプリをインストールする際、debやSnapパッケージで提供されるアプリをインストールする機会が多いでしょう。もちろん他にもアプリのインストール及び配置方法はありますが、「Ubuntu」ではデフォルトでdeb(APT)とSnapをサポートしており、多くのユーザーがこのいずれかのパッケージ種でアプリをインストールしているかと思います。
debとSnapは仕組みが異なる
ユーザーが「Ubuntu」の公式リポジトリーやサードパーティーのリポジトリーからアプリをインストールする場合、debパッケージで提供されるアプリをインストールする事になります。(極一部例外あり)その一方で「Snap Store」からアプリをインストールする場合、Snapパッケージで提供されるアプリをインストールする事になります。
現在「Ubuntu Desktop」は、debパッケージで提供されるソフトウェアを主体にシステムを構築しています。
ユーザーが普段目にしているデスクトップ画面(GNOME Shell)は、debパッケージで提供されているソフトウェアで構成されています。
そしてSnapアプリはその環境上で動作しています。
Snapアプリはシステムから隔離された環境で動作するため、そのままではユーザーの環境と連携できません。
そこでSnapアプリはユーザー環境と連携するために必要なリソースをシステムと連携し利用しています。
ユーザーにパッケージの種類を意識させない仕組みが必要
特にカジュアルなユーザーがアプリをインストールする際、パッケージの種類(deb/Snap)を意識してインストールするケースは少ないでしょう。ユーザーはdeb/Snapに関わらず、アプリにデスクトップと綺麗に統合された振る舞いを期待します。
そのためユーザーにdeb/Snapの違いを意識させない仕組みが必要です。
例えば「Ubuntu Software」でアプリをインストールする際、ユーザーはこれらの違いを意識せずインストール作業を行うことができます。
でもなんか違う・・・
しかし残念ながらdebとSnapでアプリの見た目が異なるなど、ユーザーが違和感を覚えるケースがあります。その1つがテーマの連携です。
デスクトップで使用しているテーマがdebアプリでは適切に反映されているにも関わらず、Snapアプリでは適切に反映されないケースがあります。
このような現象はUXの低下に繋がります。
長年取り組んできた課題の1つ
Snapアプリとテーマの密な連携は開発チームが長年注力して取り組んできた課題の1つであり、継続的に改善作業を行ってきました。そして2021年、テーマ連携の改良作業が更に進みます。
テーマの自動インストール
デスクトップとSnapアプリに適用するテーマをもっと簡単に連携できるようになります。ユーザーがSnap側に存在しない新しいテーマをシステムにインストールし、そのテーマをシステムに適用すると、Snap側にもそのテーマを簡単に反映できるようになります。
以下のデモ画面を見てもらったほうが早いでしょう。
テーマのインストールと適用が簡単に
この仕組みはバックグラウンドサービスによって実行され、システムに適用されたテーマがSnap側にも存在するかどうかチェックし、もし存在しなければそのテーマをインストールするかどうかを確認する通知を表示します。その通知からテーマのインストールを実行できます。
テーマをインストールすればそれが即座にSnapアプリにも反映されます。
デスクトップテーマのSnapパッケージ化
デスクトップテーマをSnapパッケージにすることも可能になります。例えば以下のSnapsはGTKベースのデスクトップテーマです。
デスクトップテーマのSnapsを開発する場合、上記のSnapsをベースにパッケージを開発すると良いでしょう。
デフォルトで共通テーマにアクセスでき、必要に応じてテーマを拡張することも可能です。
デスクトップとの連携強化
ユーザーセッションと「snapd」の橋渡しをするソフトウェアの開発が進められています。このソフトウェアにより上記で紹介したテーマの自動インストールなど、デスクトップとの連携を強化できます。
Greedyプラグイン
Greedyプラグインによりテーマの自動接続が可能になり、複数のSnapsがテーマに接続(利用)できるようになります。将来的にアイコンテーマとサウンドテーマもサポートされる予定です。