米Microsoftは、コミュニケーションアプリ「Microsoft Teams」を一新し、Windows版のパブリックプレビュー版の提供を3月27日(現地時間)に開始した。今回の新版では、アプリケーションをゼロから作り直し、処理性能を最大2倍に引き上げ、メモリ消費量を最大で50%削減し、プログラムのインストールに必要なストレージ容量を最大で70%削減するなど、さまざまな面で性能を大幅に改善している。
この大幅な性能改善は、アプリケーションの構造を完全に変えたことによるところが大きい。特に、アプリケーションの基盤となる実行環境を従来の「Electron」から、Microsoftが開発している「WebView2」に変更したことは大きな変化だ。
Electronは、HTMLやCSS、JavaScriptといったWeb技術を使ってデスクトップアプリケーションの開発を可能にするオープンソースのフレームワークだ。開発したプログラムの実行環境としてオープンソースのWebブラウザ「Chromium」、「V8」JavaScriptエンジン、そしてその上で動作するJavaScript実行環境「Node.js」を備えている。手軽にクロスプラットフォームのデスクトップアプリケーションを構築できることから、開発者から好評を得ている。チャットサービス「Slack」のデスクトップクライアントや、コードエディタ「Visual Studio Code」、「GitHub Desktop」など、大手ソフトウェアベンダーが採用している例も少なくない。
今回、MicrosoftがElectronに代えて採用したWebView2は、Electronと同じようにWeb技術を使ってデスクトップ・アプリケーションの開発を可能にする環境であり、Chromiumを基にMicrosoftが開発したWebブラウザ「Microsoft Edge」を利用している。WebView2がNode.jsを備えていないなど、細かい違いはたくさんあるが、大きな違いの一つとして、WebView2では完成したアプリケーションに実行環境のWebブラウザなどを組み込むか、組み込まないかどちらか選べるという点が挙げられる。
新しいTeamsではWebView2を採用し、アプリケーションに実行環境を組み込まない方法を選んだ。実行環境には、「WebView2ランタイム」を使用する。これは、WebView2アプリに向けて少々変更したMicrosoft Edgeなどをまとめたもので、Windows 11には標準で備わっており、MicrosoftはWindows 10向けのランタイムも配布している。ランタイムをインストールすると、その後新バージョンが出ても自動的にアップデートする。
アプリケーションに実行環境を組み込まず、Windowsにインストール済みのランタイムを使用することによって、アプリケーションのファイルサイズが小さくなり、インストールに必要なストレージ容量も少なくなる。実行環境のWebView2ランタイムは、可能な限りWindowsにインストール済みのMicrosoft Edgeのソフトウェア部品を共用するため、WebView2ランタイムはメモリ消費量も少なくなる。また、複数のElectronアプリケーションを起動すると、それぞれが持っている実行環境を起動してしまい、メモリを余計に消費するが、Windowsにインストール済みのWebView2ランタイムを利用すれば、複数のWebView2アプリケーションでランタイムを共用でき、メモリを節約できる。
セキュリティ対策の面でもメリットがある。先述のようにWebView2ランタイムは自動的に最新バージョンにアップデートする機能を持っている。Microsoft Edgeブラウザに深刻な脆弱性が見付かったとしても、すぐに修正版が登場し、利用できるようになる。
新しいTeamsの大幅な性能向上には、クライアントデータを処理する部分を本体から独立させ、マルチスレッドで動作するように作り変えた点も大きく貢献している。JavaScriptはシングルスレッドで動作するプログラムしか作れないため、並列実行で処理性能を上げるという手法が使えない。そこで新しいTeamsでは、データの取得やデータの保管、プッシュ通知など、クライアントデータを扱う部分を独立させ、それぞれの処理をマルチスレッドで並列実行するようになった。
ユーザーインターフェースを作成する部分も変わった。従来はAngularJSと独自のHTML/CSSファイルでユーザーインターフェースを作っていたが、新しいTeamsでは、ReactにFluentを組み合わせて使用している。Microsoftは、AngularJSからReactに変えたことで、記述したコードが小さく、再利用しやすいものになり、ユーザーの操作に対する反応速度も速くなったとしている。また、Microsoftによるベンチマークなどを使用した評価では、今回の新しいTeamsに利用するにはAngularJSよりもReactの方が向いていたという。また、独自にHTML/CSSを使って作成したユーザーインターフェース部品に比べると、Fluentが提供する部品の方がユーザーの操作に対する反応速度が速いという。
新しいTeamsは年内に正式版となる予定だ。また、macOS版(Apple Silicon版とIntel版)やWeb版、仮想デスクトップ環境(VDI)向け製品など、主要な環境に対応した製品を投入していくとしている。アプリケーション実行環境となるWebView2は、現時点ではWindows版しか存在しないが、macOS版やLinux版の開発が進んでいる。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です