Dieser Artikel wurde in Zusammenarbeit mit Vitalii Topoliuk (Software Engineer bei Meta) und Sean Keegan (Developer Advocate bei Meta) verfasst.
Unser heutiges Interview führen wir mit Vitalii Topoliuk. Er ist Software Engineer im Messenger Desktop App-Team bei Meta. Vitaliis Team arbeitet an der Desktop-Version von Messenger, mit der ihr direkt vom Computer aus SMS versenden, telefonieren und in Kontakt bleiben könnt.
Ich heiße Vitalii Topoliuk und bin Software Engineer im Messenger Desktop App-Team. In den vergangenen drei Jahren haben wir Windows- und macOS-Versionen der Messenger-App entwickelt. Die letzten beiden Jahre haben wir mit React Native gearbeitet.
Unsere App basiert auf dem React Native-Framework.
Bei Messenger Desktop und abgeleiteten Projekten: Work Chat for Desktop und Workrooms for Desktop.
Unsere App wurde auf dem Electron-Framework entwickelt, was uns einen sehr guten Start bescherte. Leider stießen wir bei Electron sehr schnell an die Grenzen und mussten viel in die Einhaltung der Anforderungen an Performance, Zuverlässigkeit und Effizienz (Performance, Reliability, Efficiency; PRE) investieren. Außerdem schränkte Electron uns bei den Funktionen unserer App ein.
Durch den Umstieg auf React Native konnten wir mehrere PRE-Probleme lösen und die Erfahrung der Entwickler*innen deutlich verbessern. Mit React Native konnten wir 80 % unserer Codebasis wiederverwenden und zahlreiche PRE-Kennzahlen optimieren. Unten sind einige Verbesserungen aufgeführt, die allein durch den Umstieg auf React Native für die App erzielt wurden, also ohne zusätzliche Investitionen in PRE. Die Zahlen gelten jeweils im Vergleich zur Electron-App, auf deren Verbesserung wir uns drei Monate lang konzentriert haben:
Reichweite von Abstürzen: -60 %
Kaltstart-Erfolgsquote: 97 % (88 % bei Electron)
P90-Kaltstartlatenz: -50 %
Größe des Binärcodes: -80 %
Reichweite von Abstürzen: +59 %
Kaltstart-Erfolgsquote: 99 % (95 % bei Electron)
P90-Kaltstartlatenz: -60 %
Größe des Binärcodes: -70 %
Ja, bei Meta haben wir die Chance, der Community zu zeigen, dass React Native zur Erstellung von plattformübergreifenden Apps für den Desktop verwendet werden kann.
Ich hoffe, dass React Native zukünftig Electron ablöst, aber hierfür muss das Framework noch optimiert werden, damit mehr End-to-End-Produktions-Tools unterstützt werden. Electron ist beispielsweise nicht nur eine Shell für webbasierte Apps, sondern es enthält auch die Tools zur Erstellung von Programmen zur Installation, für automatische Updates, für Absturzberichte usw.
Danke, Vitalii, dass du dir die Zeit für dieses Interview genommen hast. Es war faszinierend zu erfahren, wie React zur Verbesserung zahlreicher wichtiger Anwendungen eingesetzt wird, wie wir aus all den Dingen lernen können, die wir hier bei Meta entwickeln, und wie wir einen Beitrag zur React-Community leisten. Wir hoffen, dass du dieses Interview hilfreich fandest und dass es dir einen Einblick gegeben hat, wie und wo React bei Meta verwendet wird. Halte Ausschau nach weiteren Interview-Blogs, in denen wir uns mit Engineers von Meta treffen und ihre Gedanken zu diesem Thema hören.
React ist eines der populärsten Open-Source-Projekte und zählte in den letzten Jahren immer wieder zu den beliebtesten Web-Frameworks. Wir bei Meta glauben, dass React eine hervorragende Bibliothek ist, die Entwickler*innen hilft, UI einfach und in großem Maßstab zu entwickeln. React wird von Millionen von Entwickler*innen weltweit eingesetzt – für einfache Websites bis hin zu Unternehmensanwendungen. Das Tool ist eine Open-Source-Bibliothek, in der alle willkommen sind.
Dieser Blog ist Teil unserer Serie „Meet the Developers“, in der wir Engineers von Meta, die regelmäßig mit React arbeiten, darum bitten, von ihren Erfahrungen und von den faszinierenden Produkten zu erzählen, die sie mit React hier bei Meta entwickeln. Halte Ausschau nach weiteren Interview-Blogs, in denen wir uns mit anderen Entwickler*innen treffen und ihre Gedanken zu diesem Thema hören.
Um mehr über Meta Open Source zu erfahren, besuche unsere Open-Source-Website, abonniere unseren YouTube-Kanal oder folge uns auf Twitter, Facebook und LinkedIn.