190331 自動アップデートのクソ実装例
最近は別所で活動していてそちらばっかりに目が向いていていたので、すっかりブログの存在を忘れてた。いや、書こうとは思いつつも結局就寝時間になってしまい後回しにしてきた、と言うのが正しい。明日から新年度いきなり新しい現場に入るので、これも忙しくなるのかどうなることやら。
標題について。ソフトウェアの自動更新の実装には色んな形がある。以下は自分の身の周りの例。
- ほとんどのセキュリティソフト - 通知無しに自動でアップデート。メジャーなアップデート以外ではアプリケーションの再起動は不要。
- Chrome, Firefox - 通知無しに更新プログラムをダウンロード。アップデートはユーザーがアプリケーションを終了または再起動したタイミングで行われる。
- Logicool Options - 更新プログラムがあると右下に通知が表示される。無視すれば更新されないし、通知をクリックすれば更新のセットアップが始まる。
- Plex Media Player - 更新プログラムがあるとポップアップウィンドウ(ダイアログ)で通知が表示される。今すぐインストールするか、アプリケーションを終了したときにインストールするか、スキップするかを選択できる。
- EmEditor - 更新プログラムがあるとポップアップウィンドウ(ダイアログ)で通知が表示される。今すぐインストールするか、スキップするかを選択できる。
問題に挙げたいのはポップアップダイアログで通知を表示するタイプ。ダイアログというのはそのアプリケーションで常に一番前に表示されるメッセージウィンドウで、それを閉じるまでは他の作業ができない。Plex Media Playerではそんな気にならないが、EmEditorの場合は非常に気になる。EmEditorを起動してさっそく文章を打ち始めた矢先に、数秒後に表示される更新通知ダイアログが入力を阻害する。たった数秒のこととはいえ、EmEditorはタスク常駐で高速スタートアップをわざわざ実装しているのに、それを更新通知が台無しにしている。
理想はもちろん一番上ではあるが、実行中のプログラムファイルを更新するのは技術的に難易度が高いかもしれない。ただ、ChromeやFirefoxのように、ユーザーにそれと意識させずにアップデートするくらいはできないのだろうか。
(2021/4/20) 2020年11月17日公開のV20.3からEmEditor終了時にインストールすることが可能になったようです。サービスを使わず、AppData内にインストールすることでユーザー権限昇格画面を表示せず更新することを可能にしているようです。