Federica e Anas, oggi siete Software Engineer in Belka. La vostra storia è legata al mondo di React Native. Ricordate quando tutto questo ha avuto inizio?

Federica: “Ho conosciuto React Native proprio in Synesthesia! È stato il primo linguaggio che ho usato per lavoro e mi ha incuriosito molto poter sviluppare applicazioni sia per Android sia per iOS con una sola codebase. Ho visto subito l’enorme potenzialità di questo framework e le analogie con React mi hanno portata a sviluppare sia su web sia su mobile”.

Anas: “Tutto cominciò due anni fa quando durante le vacanze di Natale decisi un po’ per gioco di imparare questo framework. Pensavo che mi sarebbe bastato seguire qualche video su YouTube. Ovviamente non è così che funziona, allora decisi di iscrivermi al Frontend Master e di seguire il corso di Kadi Kraman. Dopo settimane di corsi ed esperimenti ho avuto l’opportunità di lavorare su un progetto vero e proprio in Belka e da lì mi sono innamorato di questo framework”.

Stiamo per inaugurare React Native Heroes. Che cosa vi aspettate da questa prima edizione?

Federica: “Sono molto contenta di incontrare altri developer a Torino che utilizzano React Native! Giusto il mese scorso siamo stati ad App.js a Cracovia, conferenza dedicata a React Native organizzata da Software Mansion ed Expo. Per React Native Heroes devo solo fare un viaggio di mezz’ora per incontrare la community e scambiare opinioni, idee e consigli con altri dev di tutta Italia”.

Anas: “Nonostante sia la prima edizione mi aspetto una grande partecipazione all’evento. Onestamente non vedo l’ora di avere l’opportunità di parlare, imparare e confrontarmi con la community italiana di React Native”.

Il vostro talk si intitola “DESIGN SYSTEMS IN REACT NATIVE: A STORYBOOK APPROACH”. Ci potete già svelare qualche anticipazione?

Federica: “Abbiamo diviso il talk in due parti: nella prima andiamo a definire cosa è un design system e il lavoro che abbiamo fatto come team per standardizzare il processo di sviluppo per questo tipo di progetti. Nella seconda andremo ad analizzare le potenzialità di Storybook e di come può essere utilizzato in React Native. Siamo molto entusiasti di portare fuori da Belka il lavoro che abbiamo fatto come team per creare uno standard da seguire per i progetti dedicati ai design system. È stata una sfida per noi e spero che il risultato che abbiamo ottenuto possa essere utile alla community per affrontare una situazione simile”.

Anas: “Racconteremo la nostra esperienza con i design system in Belka: in particolare parleremo di cosa sono, quando ha senso crearne uno per il tuo prodotto, di come abbiamo standardizzato alcuni processi e quali concetti possiamo riutilizzare dal mondo web. Ci focalizzeremo anche su Storybook e su come sia un tool fondamentale durante lo sviluppo di un design system”.

Qual è il vostro personale approccio all’utilizzo di React Native? 

Federica: “Utilizzo il framework per lo sviluppo di applicazioni mobile, per Android e iOS. Dedico sempre un occhio di riguardo allo sviluppo delle interfacce e dei temi delle applicazioni e trovo molto interessante risolvere le diversità di layout tra i due sistemi operativi. Da un anno a questa parte utilizzo Expo e la mia developer experience è decisamente migliorata. Non può essere utilizzato in tutti i casi, soprattutto se l’app richiede delle funzionalità native, ma semplifica di molto lo sviluppo e i rilasci delle applicazioni negli store”.

Anas: “Al momento ho avuto l’opportunità di utilizzare React Native solo per sviluppare applicazioni per Android e iOS, però nonostante qualche limite, c’è la possibilità di creare prodotti anche per web, Windows, macOS, Android TV, tvOS e molti altri ancora. Ora che Apple ha presentato Vision Pro e visionOS sono molto curioso di sapere come questo framework si adatterà a questo tipo di interfacce”.

Come pensate che cambierà l’approccio a questo framework nel futuro?

Federica: “Sono convinta che in un futuro non troppo lontano React Native verrà usato anche per lo sviluppo web in maniera molto più semplice e con meno limitazioni rispetto ad ora. Da una sola codebase potremo creare applicazioni in due diversi ecosistemi: web e mobile. Sia Expo che React Native stanno facendo un enorme lavoro nell’ultimo anno per rendere le “universal app” una realtà”.

Anas: “Secondo me React Native sarà sempre più simile al cugino React. A tal punto che si utilizzerà senza alcuna limitazione un solo framework per entrambe le piattaforme: web e mobile. La community è molto attiva e grazie anche al grande lavoro che stanno portando avanti, credo che in futuro sia le performance sia l’ecosistema di questo framework miglioreranno esponenzialmente”.

Grazie a Federica e Anas per aver risposto alle nostre domande e per il vostro tempo. Non vediamo l’ora di vedervi in azione sul palco di React Native Heroes!

Grazie a voi!


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).

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).

Da circa 6 anni sei Tech Leader React Native in Synesthesia. Quali pensi siano i punti di forza di questo framework?

“Sicuramente un punto di forza di React Native è l’utilizzo di codice cross platform, cioè la condivisione di codice di sviluppo eseguibile sia su Android che su iOS, ma anche web, macOS e Windows, ovviamente con le giuste accortezze. Questo consente un significativo risparmio nella scrittura e manutenzione del codice per le due piattaforme. React Native si basa su React. Questo consente agli sviluppatori React di avere una curva di apprendimento più agevole poiché molti dei concetti e principi di sviluppo rimangono gli stessi. Per non parlare della community, React Native ha alle spalle una grandissima community che contribuisce alla crescita del framework sviluppando e mantenendo molte librerie utili per lo sviluppo”.

Stiamo per inaugurare React Native Heroes. Le prime edizioni hanno sempre un sapore speciale. Questa è anche la prima volta per te che sali sul palco del Museo dell’Automobile per parlare di React Native. Come ti senti? Ci puoi anticipare qualcosa sul tuo talk, “React Native and Web3: blockchain capabilities”?

“L’idea mi emoziona molto, diciamo che erano anni che speravo in questo evento e finalmente sarà inaugurato. A mio parere, questi eventi sono di enorme importanza perché offrono la possibilità di immergersi in un contesto stimolante e arricchente per la crescita come programmatore. Oltre a ciò, consentono di confrontarsi con altri professionisti del settore e acquisire nuove competenze. Parlando del talk vedremo come React Native può essere utilizzato per realizzare applicazioni in grado di interagire con una blockchain, attraverso librerie open source, quali etherjs e web3js. Vedremo, quindi, come sviluppando una piccola app in react native sia possibile eseguire sulla blockchain alcune delle principali operazioni come invio/ricezione di token”.

Quali sono secondo te gli speech da non perdere assolutamente?

“Sicuramente il talk di Lorenzo Spinelli che parlerà di come creare un’architettura scalabile e mantenibile nel tempo. Una buona architettura è fondamentale per garantire lo sviluppo e la crescita di un progetto, soprattutto nel lungo periodo. Spesso, gli sviluppatori possono trovarsi in difficoltà nel mantenere e far evolvere le loro applicazioni se l’architettura non è stata progettata adeguatamente fin dall’inizio.

Il talk di Tomasz Sapeta che ci parlerà di come sviluppare un modulo nativo con expo, questo per molti è un limite poiché richiede conoscenze di programmazione nativa che non tutti i programmatori React Native possiedono, sono curioso di vedere come sia possibile semplificare il processo”.

Parliamo del futuro di React Native. Come sta evolvendo il framework? Che cosa possiamo aspettarci?

“Al momento, React Native sta attraversando un periodo di transizione significativo. Da circa un anno, è stata rilasciata (in fase sperimentale) una nuova architettura che rivoluziona l’intero framework. Questa nuova architettura si concentra sull’ottimizzazione della scalabilità e delle performance delle applicazioni. Per rispondere alla crescente competizione con altri framework sono state rilasciate numerose librerie e strumenti che puntano a migliorare le performance complessive e l’esperienza di sviluppo delle applicazioni.

Guardando al futuro, mi aspetto ulteriori sviluppi e innovazioni nel framework. La comunità di sviluppatori è molto attiva: fornisce costantemente feedback, contributi e nuove idee per il miglioramento del framework. Questo significa che possiamo aspettarci nuove ottimizzazioni delle prestazioni, nuove funzionalità, miglioramenti dell’usabilità e un supporto sempre crescente per una vasta gamma di piattaforme”.

Grazie Umberto, ci vediamo a React Native Heroes!

“Grazie a voi”.

Dopo il recente successo della sesta edizione di Swift Heroes, il team di Synesthesia Events è alle prese con l’organizzazione di React Native Heroes, un nuovo evento dedicato a tutti gli appassionati e alla community di sviluppatori che lavorano con il famoso framework multipiattaforma, il primo evento italiano completamente dedicato a React Native. L’evento si terrà venerdì 16 giugno 2023 al Museo dell’Automobile di Torino (MAUTO) e sarà trasmesso anche in live streaming in tutti i paesi del mondo. Durante la conferenza non mancheranno occasioni di networking e formazione  grazie alla presenza di speaker internazionali e prestigiosi sponsor.  

Cos’è React Native?

React Native è un framework JavaScript multipiattaforma per la scrittura di applicazioni mobile, con rendering nativo, per iOS e Android. Si basa su React, la libreria JavaScript di Facebook (Meta) per la creazione di interfacce utente. Ogni giorno React Native viene utilizzato da migliaia di sviluppatori per i loro progetti e scaricato da milioni di utenti.
Questo framework si distingue dagli altri perché utilizza componenti nativi invece di componenti web come blocchi predefiniti: gli sviluppatori possono, così, realizzare applicazioni per smartphone e tablet per un pubblico molto più ampio, con una notevole riduzione dei tempi di sviluppo. Poiché la maggior parte del codice scritto può essere condiviso tra le varie piattaforme, React Native rende facile lo sviluppo simultaneo per Android e iOS e non solo: questo linguaggio, infatti, è molto versatile e ha il potenziale per essere ampliato anche alle future piattaforme.

Dopo il successo di Swift Heroes, Synesthesia Events dà vita a React Native Heroes

A guidare l’evento il team di Synesthesia Events, divisione eventi di Synesthesia ideatrice del format, nata per creare eventi digitali e ibridi con un’elevata componente di interazione con il pubblico. Dopo droidcon Italy, Swift Heroes e Flutter Heroes, React Native Heroes si conferma il nuovo evento che completa la line up di conferenze dedicate agli sviluppatori mobile.

Come racconta Francesco Ronchi (Presidente e Founder di Synesthesia):

“In Synesthesia utilizziamo React Native da molti anni e ritengo che sia una piattaforma molto matura e completa. Credo che sia importante condividere le best practice in modo tale da poter davvero sfruttare questa piattaforma al meglio. Siamo entusiasti del lancio di React Native Heroes perché ritengo che la piattaforma abbia un grande potenziale e questa sarà una grande occasione per discutere sulle grandi potenzialità di questo strumento. React Native Heroes completa il nostro consolidato portafoglio di eventi. Ora posso dire in tutta onestà che ci occupiamo delle piattaforme e degli strumenti più importanti per gli sviluppatori di oggi”. 

Qualche anticipazione sull’evento

La presenza agli eventi cresce sempre di più, sia a livello nazionale che internazionale: si prevedono per questa prima edizione circa 150 persone in presenza e oltre 250 collegate da diverse parti del mondo. React Native Heroes  si svolgerà a Torino presso il Museo Nazionale dell’Automobile  (MAUTO), la location che accoglie ogni anno decine di eventi anche di matrice internazionale, non solo dedicati al mondo automotive.

Attualmente ci troviamo nella fase di massima attività per l’organizzazione dell’evento: il team di Synesthesia Events sta pianificando ogni singolo dettaglio per creare un’esperienza coinvolgente, avvincente e memorabile per tutti i partecipanti, sia in presenza sia a distanza.

Come racconta Enrico Beraldo (Academy & Events Director):

“La prima edizione di un evento ha sempre qualcosa di speciale. È stato lo stesso anche per droidcon Italy, Swift Heroes e Flutter Heroes. Per organizzare eventi di successo è necessario lavorare con un team affiatato, altamente qualificato e di grande esperienza. È proprio a loro che voglio dedicare i grandi risultati raggiunti finora. React Native Heroes rappresenta per Synesthesia Events una sfida bellissima. Ci aspettiamo una grande partecipazione. La condivisione sul palco del Mauto di esperienze e case study raccontate da esperti internazionali sarà di grandissimo valore formativo per tutti. Non mancheranno, poi, i momenti di networking e di confronto agli stand e nella venue. Noi siamo pronti e non vediamo l’ora che tutto questo abbia inizio”.

Gli speaker

Tra gli speakers finora confermati,  Lorenzo Sciandra (Senior Software Engineer di Microsoft) che presenterà il talk dal titolo “The Work That You Don’t See”, che ci aiuterà a capire il funzionamento di React Native e cosa aspettarsi per il futuro. Parteciperanno anche  Tomasz Sapeta (Software Engineer per Software Mansion) e Federica Vacca (Software Engineer per Belka).

I partner

Ringraziamo, poi, gli sponsor per aver scelto di supportare la prima edizione di React Native Heroes: la loro presenza e il loro contributo saranno fondamentali per rendere questo evento un successo straordinario. Prime Sponsor dell’evento, Accenture è tra i primi ad aver supportato l’iniziativa. Partecipano attivamente a sostegno della  kermesse anche Wibo, la piattaforma nata per innovare l’esperienza della formazione in azienda;  4Dem, il servizio all-in-one che ci aiuta a gestire l’intero funnel di digital marketing,  Quaerys e molti altri.


React Native Heroes ti aspetta il 16 giugno! I biglietti sono in vendita, con una opzione straordinaria per chi legge questo post del synblog.

Solo fino al 25 maggio hai diritto al 20% di sconto inserendo questo codice: ReactBonus2023

Come nasce il progetto

Reale Group offre soluzioni e tutela a più di 4,5 milioni di clienti in campo assicurativo, bancario, immobiliare e dei servizi, evidenziando una solidità tra le più elevate del mercato.

L’obiettivo è quello di realizzare 4 applicazioni B2C destinate ai clienti di Reale Mutua Assicurazioni e Italiana Assicurazioni (per device Android e iOS) con React Native che siano in grado di supportare i propri assicurati durante tutta la fase di gestione del portafoglio polizze. 

Il rapporto che lega Reale Mutua ai propri clienti si basa sulla rete capillare di Agenzie distribuite sul territorio. Lo sviluppo dell’applicazione richiesta punta, tra le altre cose, a rendere più rapido e agevole il lavoro delle singole Agenzie.

Siamo stati scelti per:

Soluzione

Abbiamo preso parte alla realizzazione delle applicazioni B2C per Reale Mutua Assicurazioni e Italiana Assicurazioni dopo aver svolto un’analisi approfondita (soprattutto per quanto riguarda la parte di UX). Il team si è occupato di tutto il processo: dalla progettazione e design fino ad arrivare all’implementazione di tutta la filiera dello sviluppo, compresa la quality assurance.

L’approccio utilizzato è di tipo Agile, con un team Scrum. La Digital Factory di Reale Mutua Assicurazioni ha partecipato attivamente durante tutta la fase di sviluppo dell’applicazione e, prima di includerci nel progetto, aveva già avviato ricerche avanzate in materia di flusso, design e sviluppo. 

Abbiamo fornito loro un importante supporto anche per quanto riguarda la parte di UXD.

Il progetto è stato diviso in due wave:

Tra le funzionalità dell’app troviamo:

Nella wave 2 troviamo, inoltre, una sezione integrativa con altre piattaforme di monitoraggio della salute, come HealthKit o Google Fit, con l’obiettivo di raccogliere dati sulla attività fisica dell’utente al fine di riconoscergli eventualmente ulteriori bonus sulle polizze. Questa funzionalità rappresenta la novità più significativa rispetto alla wave 1.

Risultati

L’app è stata pubblicata a dicembre 2020. La wave 2 è stata confermata da parte di Reale Group con molta soddisfazione dopo la chiusura della wave 1 (novembre 2020). Le attività di sviluppo della wave 2 sono cominciate in contemporanea alla prima ondata del Coronavirus, per questo motivo il team di sviluppo ha lavorato in modalità smart working. Nonostante la distanza, il clima che ruota attorno all’ambiente di lavoro è stato molto positivo e collaborativo. Tutto questo ha favorito il nascere di soluzioni innovative che hanno soddisfatto il nostro cliente. 

Volete saperne di più su quello che facciamo e sulla parte di sviluppo App? Visitate la nostra area dedicata alle soluzioni Web, App, e-commerce.

Come cambia lo sviluppo delle applicazioni mobile

La sempre maggiore complessità delle varie piattaforme, e la loro incompatibilità, ha reso tuttavia sempre più complicato per un singolo programmatore (o team di sviluppo) rimanere aggiornato su tutte le innovazioni e sulle novità a livello di implementazione. Da tempo esistono tentativi di standardizzare sotto un denominatore comune gli sviluppi per le varie piattaforme mobile, con Framework che però si allontanano dallo strato “nativo” dei singoli sistemi e, introducendo astrazioni che limitano la libertà degli sviluppatori, non permettono di sfruttare a fondo le potenzialità dei dispositivi e forniscono in ultima analisi una esperienza utente nettamente inferiore. O almeno così era fino a poco tempo fa.

Soluzioni per lo sviluppo

Per padroneggiare al meglio la complessità di produzione codice, sono nati diversi metodi di gestione dello sviluppo di app multi-piattaforma attraverso l’utilizzo di Framework. Le tecnologie per la creazione di applicazioni mobile multipiattaforma sono divise in due grandi categorie: le applicazioni web-based e le applicazioni multi-piattaforma scritte in un linguaggio comune, appoggiandosi a un framework specifico.

1. Soluzioni Web-Based

Le tecnologie web-based (ovvero “basate sul web”) spesso usano un software “contenitore” nativo simile a un normale web-browser, che fa da ponte tra l’applicazione ibrida scritta in HTML/Javascript (le stesse tecnologie su cui si basa il web) e il sistema operativo. Questo è il caso per esempio di Cordova/Phonegap, che permette alle app ibride di accedere alle specifiche del singolo dispositivo mobile (es. la dimensioni dello schermo) e rendendo disponibili alcune caratteristiche altrimenti non accessibili normalmente da web (funzioni specifiche del sistema operativo o dell’hardware). Più recentemente hanno iniziato a diffondersi anche le Progressive Web Apps (o PWA), principalmente spinte da Google, ma che funzionano anche su Apple con alcuni limiti. Le PWA superano la necessità di un “contenitore” e vengono sviluppate interamente in tecnologia web, grazie alle nuove specifiche di HTML5, proprio come un sito web. Le PWA, inoltre, a differenza delle altre tecnologie nominate, non hanno componenti native e non vengono quindi distribuite sugli app store tradizionali, ma direttamente con un link come un normale sito web. Si tratta di una tecnologia interessante ma ancora non completamente matura, che con ogni probabilità tratteremo in futuro.

2. Framework multi-piattaforma

Attraverso un framework di sviluppo multi-piattaforma è possibile scrivere codice che verrà compilato per essere eseguito direttamente sulle varie piattaforme, in modo simile ad una app nativa. Esistono vari framework per lo sviluppo multi-piattaforma, con caratteristiche diverse in termini di qualità del risultato e ambito di applicazione, per questo è necessario scegliere i giusti strumenti a seconda degli obiettivi desiderati.

Per lo sviluppo per esempio di app mobile cross-platform, i framework più utilizzati oggi sono:

a) React Native b) Flutter (di recente reso disponibile per la prima volta da Google)
c) Xamarin.

Per lo sviluppo di applicazioni ludiche e multimediali (videogames, AR/VR), esistono poi framework specifici come Unity e Unreal Engine (che spesso usiamo in Synesthesia, ma che tratteremo in un futuro articolo).

Sia le tecnologie web-based che i framework multi-piattaforma presentano il vantaggio di dover utilizzare un solo linguaggio per lo sviluppo dell’applicazione, tuttavia entrambe presentano limiti nella possibilità di integrazione con le singole specificità dei sistemi operativi dei device, nella manutenzione del codice e nei risultati in termini di esperienza utente. In questo articolo abbiamo deciso di concentrarci sui Framework multipiattaforma, che secondo la nostra esperienza garantiscono una maggiore qualità del risultato finale, risparmiando sui tempi e costi di sviluppo senza scendere troppo a compromessi con lo sfruttamento delle potenzialità dei dispositivi mobili.

Nei prossimi paragrafi andremo dunque ad approfondire quali sono i principali framework utilizzati nell’ambito dello sviluppo di mobile app.

a) React Native: i vantaggi e gli svantaggi del Framework di Facebook

Una delle novità su cui già da tempo la factory di Synesthesia sta lavorando con ottimi risultati di performance e di soddisfazione del cliente è lo sviluppo in React Native. React-Native è un framework che permette di creare app mobile multi-piattaforma rilasciato e promosso da Facebook Inc. Le applicazioni vengono sviluppate utilizzando il linguaggio JavaScript in combinazione con la libreria nativa React. Questo permette la creazione di applicazioni che utilizzano componenti di interfaccia grafica simili a quelli utilizzati dai processi di sviluppo nativi. Il punto di forza di React Native è la possibilità di scrivere il codice in JavaScript e di compilarlo in un progetto nativo, raggiungendo performance molto vicine a quelle raggiunte dalle applicazioni scritte direttamente in linguaggio nativo. Oltre ai componenti JavaScript che il framework offre, è possibile creare nuovi componenti e funzionalità utilizzando il codice nativo della piattaforma sulla quale si sta sviluppando e integrare quest’ultimo nella parte JavaScript del Framework. Questo approccio apre molte possibilità agli sviluppatori, anche se in alcuni casi presenta criticità date dalla natura mono-thread di JavaScript. Se in applicazioni tradizionali questa limitazione può risultare trascurabile, in contesti in cui è indispensabile avere alte prestazioni in tempo reale, React Native rischia di non essere la scelta migliore. Oltre alle buone performance (soprattutto per applicazioni che non richiedono funzionalità real time, come i giochi), i vantaggi dello sviluppo in React Native sono dati proprio dall’uso di Javascript come unico linguaggio alla base dello sviluppo sia su Android che iOS, che permette una ampia condivisione del codice. La rapidissima diffusione di React Native ha permesso inoltre il proliferare di letteratura e documentazione che semplifica e arricchisce il lavoro degli sviluppatori. Il Framework è stato creato da Facebook inc che ne gestisce processi di sviluppo e di implementazione secondo le sue policy, ma è rilasciato gratuitamente come open source. In Italia la popolarità di React Native è ancora limitata e non si trovano ancora molti sviluppatori, ma è sicuramente in crescita e destinata ad aumentare.

b) Flutter, il framework di Google: vantaggi e benefici

Flutter è un ambiente di sviluppo basato su Dart, un nuovo linguaggio di programmazione sviluppato da Google. Il linguaggio sfruttato da Flutter, Dart, può essere compilato in maniera nativa sulle piattaforme Android e iOS. Questa caratteristica permette agli sviluppatori che scelgono Flutter di creare applicazioni dalle performance molto simili a quelle scritte direttamente in nativo. Flutter mette a disposizione una serie di widget predefiniti che possono essere utilizzati per creare interfacce che mantengono il look nativo. Il fatto che Flutter sia promosso da Google consiste in un vantaggio grazie all’enorme supporto che Google dà agli sviluppatori che scelgono Flutter (anche per evidenti ragioni di marketing); inoltre la community di developer orbitante attorno a Flutter risulta essere già ricca e colma di letteratura di supporto. Una criticità è data proprio dal linguaggio di programmazione di riferimento, Dart, oggi ancora poco diffuso e poco conosciuto dagli sviluppatori. Flutter è, inoltre, un progetto ancora relativamente recente nel panorama dello sviluppo cross platform, questo lo rende non sempre adatto come scelta per applicazioni che richiedano molte integrazioni con sistemi di terze parti, componenti native o funzionalità complesse. In Synesthesia abbiamo iniziato a usare Flutter per alcuni progetti con una buona soddisfazione, specialmente per applicazioni non troppo complesse e per la creazione rapida di prototipi.

c) Xamarin, il framework di Microsoft

Si tratta di un IDE (Integrated Development Environment) e un framework promosso (e di proprietà) di Microsoft. Xamarin è utilizzato per lo sviluppo di applicazioni multi-piattaforma, utilizzando il linguaggio c# e poi compilate in codice nativo. Il processo di compilazione e traduzione fa si che il prodotto finale risulti a tutti gli effetti una applicazione nativa.

Nel tipico progetto Xamarin vi sono 3 principali parti dell’applicazione che vengono sviluppate:

  1. la business logic, sviluppata in stile .NET e riutilizzata al 100%
  2. l’interfaccia iOS, sviluppata con l’SDK specifico per Apple
  3. l’interfaccia Android, sviluppata con l’SDK specifico per Google.

La necessità di sviluppare separatamente le interfacce grafiche nasce dall’approccio indicato dallo stesso Xamarin per affrontare la programmazione multipiattaforma: le librerie grafiche sono montate direttamente al di sopra delle loro controparti native, funzionando a tutti gli effetti come semplici connettori. Questa decisione progettuale costringe gli sviluppatori a scrivere parti di codice ad-hoc per le singole piattaforme. Al fine di ovviare a questo limite, da qualche anno Xamarin ha messo a disposizione degli sviluppatori una libreria per la creazione di interfacce multi-piattaforma, Xamarin.Forms. La maggiore rapidità di sviluppo permessa da questo approccio si paga però con un contrappasso: una minore flessibilità dei componenti, aggravata dalla scarsità della documentazione di supporto.

3. La scelta della tecnologia e del team di sviluppo

In conclusione, la scelta della tecnologia spesso dipende da fattori molto specifici del prodotto che si intende realizzare. In Synesthesia abbiamo maturato una lunga esperienza in questi anni, e sappiamo guidare il cliente verso la scelta migliore, motivandola e condividendone i vantaggi che ne derivano.

Indipendentemente da quale sarà la scelta tecnologica, è altrettanto importante la composizione del team per lo sviluppo delle app mobile. Alcune organizzazioni optano per la costruzione di team a loro volta “multipiattaforma”, cioè task force di sviluppo che includano developer esperti di Framework che lavorano in sinergia con esperti dei singoli sistemi operativi.

La digital factory di Synesthesia, per esempio, gestisce sia progetti nativi sia di app multi-piattaforma, in quest’ultimo caso con un team che lavora in stretta sinergia con l’area nativa (iOS e Android), creando una squadra di esperti dedicata a rendere il prodotto digitale performante su ogni dispositivo e/o sistema operativo.

Sapete già come sviluppare il vostro prossimo progetto mobile? Parliamone assieme.

Se hai domande o feedback, scrivici. Saremo contenti di leggere le tue richieste o le tue opinioni.