Manca meno di un mese alla prima edizione di React Native Heroes 2023, la conferenza internazionale dedicata alla community di sviluppatori che lavorano con il famoso framework multipiattaforma React Native. Che cosa dobbiamo aspettarci quest’anno? Quali sono le novità in arrivo? Di questo e molto altro abbiamo parlato con Lorenzo Sciandra (Senior Software Engineer in Microsoft), uno degli speaker più autorevoli e conosciuti della manifestazione.
Lorenzo, la tua storia è legata a quella di React Native. Da anni sei un Senior Software Engineer in Microsoft. Ci racconti un po’ di te e del tuo percorso?
“Sono sviluppatore in Microsoft da tre anni e React Native Maintainer da cinque. Ho iniziato il mio percorso come Maintainer di React Native che ero già qui a Londra nel circuito delle startup e in quel periodo lo stavo facendo in maniera completamente volontaria fuori dall’orario di lavoro.
Successivamente, sono passato a una società di consulenza americana dove è iniziato a diventare parte integrante delle mie responsabilità, fino a quando sono entrato in Microsoft. Da questo momento in poi, ho iniziato a lavorare su React Native in modalità full time. Attualmente il mio lavoro è quello di rendere React Native il miglior tool possibile per le necessità di Microsoft e la community in generale – ed essere un Maintainer del progetto stesso mi abilita a farlo al meglio”.
Stiamo per inaugurare React Native Heroes. Che cosa ti aspetti da questa esperienza?
“Penso che sia un’ottima domanda. Io ho fatto il Politecnico a Torino e poi dopo un anno e mezzo di lavoro mi sono trasferito a Londra. Prima della pandemia, qui a Londra c’era quasi un meetup a settimana solo per JavaScript. In generale, la comunità degli sviluppatori qui era talmente attiva che una delle battute con dei miei amici era che, se uno avesse voluto sarebbe riuscito a sopravvivere di pizza ogni sera andando sempre ad un meetup diverso. A Torino invece, che io sappia, c’erano solo due piccole community. Ricordo bene che ne esisteva una che si chiamava TorinoJS.
Mi aspetto che da allora le cose siano cambiate anche un po’ qua; in questo senso questa conferenza me la immagino come l’onda di un sonar che viene inviata per capire cosa ci sia effettivamente nella comunità italiana degli sviluppatori JavaScript, React e React Native. Adesso che sono lontano è difficile capire quanto effettivamente questo software sia usato nel panorama italiano e non vedo l’ora di parlare con le altre persone alla conferenza e imparare dalle loro esperienze”.
Ci puoi anticipare qualcosa sul tuo talk “THE WORK THAT YOU DON’T SEE”?
“Il mio talk nasce dal desiderio di spiegare quanto React Native non sia solo quello che uno vede al primo colpo d’occhio.
Quando ci si approccia a React Native, se uno apre la repository su GitHub, nello specchietto laterale non c’è un linguaggio dominante, ma ce ne sono addirittura sei diversi e questa complessità può intimorire. Non solo quello: di solito, quello che succede quando si fa una nuova release è che si annunciano le feature nuove, quelle più esaltanti, quelle che spingono lo sviluppatore a fare un upgrade.
Però c’è anche tutta una serie di altri processi e lavori in corso dietro le quinte e nel mio talk voglio puntare i riflettori proprio su questi avvenimenti, che sono fondamentali per la salute del progetto. È un po’ come se stessimo rifacendo le fondamenta di una casa senza che nessuno degli abitanti se ne accorga. Di tanto in tanto, secondo me, è anche importante celebrare le cose che di solito non vengono celebrate”.
Qual è l’approccio di Microsoft? Come usate il framework?
“Non c’è una risposta semplice. Microsoft ha fin da subito guardato a React Native con molto interesse e diversi team avevano cominciato a cercare di capire come utilizzarlo fin dalle prime release. A grandi linee, il concetto chiave di React Native è “uso Javascript tramite un layer intermedio per controllare e creare applicazioni native”, e questa flessibilità ha dato modo a team come quello di Skype di utilizzarlo per le loro app mobile e ormai da anni sono completamente in React Native.
In maniera “simile ma diversa” dentro Office si sono interrogati: “perché limitare questo approccio solo ad Android e iOS? Cosa ci impedisce di espanderci a Windows e macOS?” questo perché, ovviamente, la suite Office è soprattutto desktop. Proprio grazie al fatto che questo layer intermedio è componibile in applicazioni native già esistenti (io posso avere Word e aggiungere questo layer in maniera mirata per implementare una feature precisa) sono riusciti, nel corso del tempo, non solo a espandere React Native su Windows e Mac OS (nota: anche questi progetti sono disponibili su GitHub), ma anche ad aumentare i prodotti di punta con integrazioni tramite React Native, e adesso siamo al punto che più di 20 software Microsoft usano React Native in un modo o nell’altro.
Anche Windows 11 usa React Native nello Start Menu, nella raccomandazione del launcher e nei settings di sistema. La componibilità di React Native, aggiunta al fatto che è open source ed è quindi espandibile, è stata la ricetta perfetta per noi per assimilarlo in maniere diverse all’interno di tantissimi nostri software e prodotti”.
Qual è il tuo personale approccio all’utilizzo di React Native? Come pensi che cambierà l’approccio a questo framework nel futuro?
“È un po’ difficile per me avere un’opinione strettamente personale perché sono talmente coinvolto in React Native che diventa complicato definire i confini tra la mia visione del progetto e come vogliamo farlo evolvere. Quello che penso è, quindi, direttamente collegato con quello che vedo succedere. La cosa che più di tutte mi aveva affascinato di React Native era la semplicità, visuale e non, del codice. Ho sempre trovato React Native e JavaScript molto accessibili e sono convinto che sia ancora così. Non solo: secondo me non abbiamo ancora visto la forma finale di React Native – ci sono tecnologie che dopo 5 anni bene o male sono stabili; invece React è in giro da dieci anni, React Native da otto, e ancora adesso comunque stiamo costantemente rivisitando anche delle sue parti e idee fondamentali.
Si tratta di un progetto vivace con una community estremamente appassionata, proprio per via di quello di cui parlavo prima: l’accessibilità. Per fare un esempio pratico: con React Native non ti serve più un Mac da millemila euro per sviluppare applicazioni iOS, perché puoi usare servizi come Expo che ti permettono di fare le build delle tue app tramite il cloud, e poiché uno può modificare il codice JavaScript al runtime “over the air”, di colpo ti basta anche solo un browser (attraverso Expo Snack, per esempio) per scrivere il tuo codice e il tuo cellulare può diventare il “test device” della tua demo app. E, bene o male, quello stesso codice funzionerà allo stesso modo su Android!
Ma anche in ambienti corporate React Native è uno strumento che aumenta l’accessibilità. Ad esempio, uno dei miei colleghi qualche giorno fa raccontava in un talk che dentro Office c’è ancora del codice degli anni Ottanta, e quel codice è sicuramente inaccessibile: sarebbe difficile oggi assumere uno sviluppatore in grado di lavorarci. Però se aggiungi dei layer intermedi come React Native e permetti agli sviluppatori di usare JavaScript per contribuire a questi applicativi (con risultati che sono poi effettivamente nativi) di tenere vivo quel software.
In conclusione, React Native è un grande abilitatore. Non abbiamo ancora visto tutto e, secondo me, non ci annoieremo. Trovo incredibile il fatto che un software che è in giro da quasi dieci anni sia ancora così tanto “in movimento”. Tutto questo mi dà un senso di sicurezza, perché vuol dire che i problemi vengono discussi e in gran parte risolti per venire incontro alle esigenze attuali del mondo del software”.
Grazie Lorenzo, ci vediamo a React Native Heroes!
“Grazie a voi. A presto!”
Se hai domande o feedback, scrivici. Saremo contenti di leggere le tue richieste o le tue opinioni. Intervista a cura di Luca Greco (Copywriter di Synesthesia).
Lo realizzeremo con amore e passione
Il nostro team è a tua disposizione