Questo articolo è stato scritto in collaborazione con Vitalii Topoliuk, Software Engineer di Meta, e Sean Keegan, Developer Advocate di Meta.
Per l'intervista di oggi, è con noi Vitalii Topoliuk, un Software Engineer del team addetto all'app desktop Messenger di Meta. Il team di Vitalii si occupa della versione per computer di Messenger, che consente di inviare messaggi, chiamare e restare in contatto direttamente dal computer.
Mi chiamo Vitalii Topoliuk e sono un Software Engineer del team addetto all'app desktop Messenger. Negli ultimi tre anni abbiamo sviluppato versioni dell'app Messenger per Windows e macOS, di cui negli ultimi due abbiamo utilizzato React Native.
La nostra app utilizza il framework React Native.
Messenger per computer e progetti derivati: Work Chat per computer e Workrooms per computer.
La nostra app è stata sviluppata sul framework Electron, il che ci ha offerto un'ottima spinta iniziale. Sfortunatamente, abbiamo raggiunto la capacità complessiva di Electron velocemente e abbiamo dovuto investire molto per soddisfare i requisiti di prestazioni, affidabilità ed efficienza (PRE) previsti. Inoltre, le funzioni della nostra app erano limitate da Electron.
Grazie alla transizione a React Native, abbiamo risolto diversi problemi PRE e migliorato in modo significativo l'esperienza degli sviluppatori. React Native ci ha consentito di riutilizzare l'80% del nostro codebase e migliorare molte metriche PRE. Di seguito sono riportati alcuni dei miglioramenti che abbiamo ottenuto semplicemente passando a React Native per l'app senza investire ulteriormente nelle metriche PRE, rispetto all'app Electron che già usavamo e con la quale avevamo dedicato tre mesi a implementare miglioramenti in ambito PRE:
Copertura degli arresti improvvisi: -60%
Tasso di successo degli avvii a freddo: 97% (88% per Electron)
Latenza di avvio a freddo P90: -50%
Dimensioni binarie: -80%
Copertura degli arresti improvvisi: +59%
Tasso di successo degli avvii a freddo: 99% (95% per Electron)
Latenza di avvio a freddo P90: -60%
Dimensioni binarie: -70%
In Meta, abbiamo l'opportunità di mostrare alla community che React Native può essere utilizzato per creare app per più piattaforme per computer.
Spero che in futuro React Native sostituisca Electron, ma perché funzioni, il framework deve essere migliorato includendo più strumenti di produzione end-to-end. Ad esempio, Electron non è solo un modello per app basate sul web, ma contiene anche strumenti per creare programmi di installazione, aggiornamenti automatici, segnalazione di interruzioni improvvise, ecc.
Bene, a questo punto ringraziamo Vitalii per aver dedicato un po' del suo tempo a questa intervista. È stato fantastico scoprire che React viene utilizzato per migliorare applicazioni importanti e che impariamo da ciò che creiamo qui in Meta, passando poi le nostre conoscenze alla community React. Ci auguriamo che questa intervista ti sia utile e che ti abbia dato un'idea di come e dove React viene utilizzato in Meta. Cerca le interviste agli altri ingegneri di Meta per scoprire le loro opinioni su questo argomento.
React è uno dei progetti open source più popolari e continua a confermarsi come uno dei framework web "più amati" negli ultimi anni. Noi di Meta crediamo che React sia una libreria eccezionale che aiuta gli sviluppatori a creare interfacce utente in modo semplice e su larga scala. Utilizzata da milioni di sviluppatori in tutto il mondo, da semplici siti web ad applicazioni aziendali, React è una libreria open source con possibilità per tutti.
Questo post fa parte della nostra serie Meet the Developers, in cui invitiamo ingegneri di Meta che utilizzano regolarmente React a condividere le proprie esperienze e parlarci degli straordinari prodotti che stanno sviluppando. Cerca le interviste agli altri ingegneri per scoprire le loro opinioni su questo argomento.
Per maggiori informazioni su Meta Open Source, visita il nostro sito open source, iscriviti al nostro canale YouTube o seguici su Twitter, Facebook e LinkedIn.