React e React Native
React è una libreria JavaScript open source per creare interfacce utente sviluppata da Facebook. E' una delle soluzioni più diffuse per lo sviluppo frontend. React Native è un framework per realizzare applicazioni mobili native utilizzando html e JavaScript.
Costruiamo interfacce utente mobile native con React Native
I vantaggi dello sviluppo mobile cross-platformIn ELbuild usiamo principalmente React Native, per la creazione di app mobile native con codice multipiattaforma. Questo significa che le app Android e iOS andranno in questo caso a condividere la stessa base di codice, diminuendo quindi il tempo complessivo di sviluppo per le due piattaforme e facilitando le operazioni di aggiornamento per cui il codice potrà essere modificato una sola volta per entrambe le piattaforme.
Rispetto ad altre soluzioni "ibride" React Native garantisce migliori performance ed un look & feel più vicino alle app native, in quanto con la compilazione del codice scritto in JavaScript si crea una vera e propria app nativa a tutti gli effetti.
Quando scegliamo React Native
Una scelta non scontataNon sempre la scelta di una soluzione multipiattaforma è l'opzione migliore: certo lo sviluppo può essere più veloce e i costi minori, ma in alcuni scenari questa scelta non è ottimale: nonostante la UI sia nativa, la business logic è intepretata e può essere meno performante di una app scritta in codice nativo; inoltre per alcuni tipi di applicazioni, ad esempio quelle che fanno uso di sensori o componenti hardware dei dispositivi mobili, è necessario un controllo di più basso livello per utilizzare al meglio questi componenti.
Da non sottovalutare che, essendo l'interfaccia realizzata in React più orientata al web, si rischia di non rispettare a pieno le linee guida degli OS dei dispositivi mobili, creando delle interfacce non totalmente coerenti con le altre app.
Infine, è fondamentale tenere a mente che lo sviluppo di app di questo tipo è basato fortemente su librerie e risorse messe a disposizione dalla community che però potrebbero non supportare gli aggiornamenti dei sistemi mobile; per questo questa scelta, che è ottima per creare velocemente app che avranno un ciclo di vita breve (tipicamente app di eventi, manifestazioni, attività con una durata limitata nel tempo), potrebbe poratare poi a problemi in caso di aggiornamenti o necessità di aggiungere o modificare funzionalità in futuro.
Per questi motivi la scelta di usare un framework come React Native o optare invece per sviluppo nativo (con Swift, Java o Kotlin) deve essere attentamente ponderata in fase di analisi dei requisiti.