この記事は、Metaのソフトウェアエンジニアであるヴィタリー・トポリウクと、Metaの開発者アンバサダーであるショーン・キーガンが共同で執筆しました。
今日のインタビューには、MetaのMessengerデスクトップアプリチームのソフトウェアエンジニアであるヴィタリー・トポリウクをお招きしています。トポリウクのチームは、コンピューターから直接テキストメッセージを送信したり、電話をかけたり、連絡を取り合ったりできるデスクトップバージョンのMessengerの開発に取り組んでいます。
ヴィタリー・トポリウクといいます。Messengerデスクトップアプリチームのソフトウェアエンジニアをしています。ここ3年は、WindowsバージョンとmacOSバージョンのMessengerアプリを開発してきました。そのうちの直近の2年はReact Nativeを使っていました。
MetaのアプリではReact Nativeフレームワークを利用しています。
Messenger Desktopと、派生プロジェクトのWork Chat for DesktopやWorkrooms for Desktopがあります。
MetaのアプリはElectronフレームワークの上に構築されているため、非常に優れた初期ブーストが得られました。残念なことに、Electronの容量はかなり早くに限界に達し、パフォーマンス、信頼性、効率(PRE)の要件を満たすために多額の投資が必要となりました。さらに、Metaのアプリの機能はElectronによる制限を受けていました。
React Nativeに移行することで、PREに関するいくつかの問題が解決され、開発者のエクスペリエンスが大幅に向上しました。React Nativeのおかげで、コードベースの80%を再利用し、多くのPRE指標を改善することができました。以下は、PREに対する追加の投資を行わずにアプリをReact Nativeに移行してもたらされた改善の一例です。3か月にわたってPREの改善に注力してきた確立されたElectronアプリと比較しています。
クラッシュリーチ: -60%
コールドスタート成功率: 97% (Electronの場合は88%)
P90コールドスタートレイテンシー: -50%
バイナリサイズ: -80%
クラッシュリーチ: +59%
コールドスタート成功率: 99% (Electronの場合は95%)
P90コールドスタートレイテンシー: -60%
バイナリサイズ: -70%
はい。Metaでは、React Nativeを使ってデスクトップ用のクロスプラットフォームアプリケーションを作成できることをコミュニティに示す機会があります。
将来、React NativeがElectronに取って代わることを願っていますが、React Nativeが機能するためには、フレームワークを改善して、さらに多くのエンドツーエンドの制作ツールを組み込む必要があります。例えば、Electronはウェブベースのアプリ向けのシェルであるだけではありません。Electronには、インストーラー、自動アップデート、クラッシュレポートなどを作成するツールもあります。
このインタビューのために時間を割いてくださり、ありがとうございました。Reactがメジャーなアプリの改善に利用されていること、またここMetaで築いたことがいかに教訓として活かされ、その知識がReactコミュニティに還元されているかを知ることができ、とても有意義でした。このインタビューが皆さんのお役に立ち、ReactがMetaのどこでどのように利用されているかを知るための糸口となれば幸いです。Metaのエンジニアの方々が本トピックについて意見を述べられているインタビューブログが数多くありますので、そちらもご覧ください。
Reactは最も人気のあるオープンソースプロジェクトの1つであり、過去数年にわたりずっと「最も愛されている」ウェブフレームワークの1つとしてランキングされてきました。Metaでは、Reactは優れたライブラリであり、ユーザーインターフェイスを大規模かつ容易に構築する上で開発者の役に立つものとして捉えています。シンプルなウェブサイトからエンタープライズアプリに至るまで、あらゆる分野で世界中の何百万もの開発者によって利用されているReactは、だれもが参加できるオープンソースライブラリです。
このブログは、「Meet the Developers」シリーズの一部です。このシリーズでは、Reactを利用するMetaのエンジニアの方々を定期的にお招きし、それぞれの経験をお話しいただきます。また、開発中の優れた製品についても紹介してもらいます。他のエンジニアの方々が本トピックについて意見を述べられているインタビューブログが数多くありますので、そちらもご覧ください。
Metaオープンソースについて詳しくは、Metaのオープンソースサイトにアクセスし、YouTubeチャンネルをサブスクリプション登録するか、MetaのTwitter、Facebook、LinkedInをフォローしてください。