EXPO

Perché conviene studiare REACT Native? REACT come si sa é una libreria rilasciata da Facebook nel 2015 e grazie al fatto che separa la UI (l’interfaccia utente) dalla logica necessita solo di JAVA SCRIPT senza dover impazzire a programmare in Objective-C , SWIFT, o in Kotlin o in Java! Già questo dovrebbe servire a sobbalzare dalla sedia. Mi stai dicendo che solo con JS poi riesco a sfornare due prodotti diversi per IOS e ANDROID? Ma come può succedere che si entra nei linguaggi NATIVI in questo modo? Quindi assumi solo un esperto JS e il gioco é fatto! Per fare chiarezza quando si sviluppa per il WEB REACT è accompagnato poi per agganciare la LOGICA al documento della pagina HTML sulla ROOT da un pacchetto specifico che si chiama REACT-DOM. Ora se si applica lo stesso principio è palese che esisteranno anche dei pacchetti che mi consentiranno di essere compatibile sia con un prodotto finito in IOS o ANDROID. Alla fine cambieranno i componenti ma il motore dietro è inalterato. Quindi riassumendo basta cambiare API per far uscire una applicazione IOS piuttosto che una mobile ANDROID. Sconvolgente! Ma come faccio a convertire codice JavaScript in codice nativo?

REACT è un framework OPEN SOURCE che avendo accesso alle API NATIVE di PIATTAFORME diverse converte lo stesso blocco di logica JavaScript in due prodotti finiti diversi senza necessità di conoscere SWIFT o KOTLIN perchè abbiamo solo bisogno di conoscere JAVASCRIPT e i COMPONENTI di REACT. Alla fine quello che vediamo sullo schermo è un componente nativo a tutti gli effetti ma la base di partenza é JS! Esistono dei componenti definiti CORE che raccolgono le basi come testo, immagini, tab etc poi esistono componenti personalizzati, poi esistono componenti sviluppati dalla community, poi oltre ai CUSTOM esistono anche componenti KIT, cioé un insieme di funzionalità ALLARGATE , LIBRERIE ESTESE messe a disposizione dalla rete. OK iniziamo subito allora ma come fare?! Si parte da https://reactnative.dev/ ma anche da EXPO per esempio: https://expo.io/ che aggira il problema delle installazioni delle dipendenze a mano! E andando su https://reactnative.dev/docs/environment-setup alla voce Setting up the development environment siamo pronti a iniziare sul serio! Dobbiamo scegliere tra un modo semplice di far nascere APP e quello più professionale ma più complicato delle dipendenze installate a mano che però aggiungono un valore professionale sporcandosi le mani. Per contro gli ambienti di sviluppo da configurare se non si sceglie expo é più complesso con Android Studio e XCode da usare. LA SCELTA DA FARE PER LA GENERAZIONE DI CODICE NATIVO MOBILE è molto delicata perché anche EXPO ha delle limitazioni legato all’ uso di librerie esterne per esempio ma in ogni caso leggendo prima la documentazione fornita e consultando i supporti appropriati si riesce a capire se lo strumento può fare al caso nostro. Esistono dei problemi esistenti e quindi EXPO mette a disposizione una sezione legata ai problemi riscontrati. In ogni caso oltre ai COMPONENTI di REACT NATIVE, EXPO mette a disposizione componenti disponibili nell’app client Expo e oltre a queste risorse però non sarà possibile ad attingere ad altre fonti esterne. In ogni caso si consiglia di leggere con attenzione le limitazioni di EXPO elencate all’ indirizzo https://reactnative.dev/docs/environment-setup comunque quello che rende interessante tutto il discorso sulla scelta di EXPO o non EXPO sono le righe finali:

If you know that you’ll eventually need to include your own native code, Expo is still a good way to get started. In that case you’ll need to “eject” eventually to create your own native builds. If you do eject, the “React Native CLI Quickstart” instructions will be required to continue working on your project. If you’re integrating React Native into an existing project, you’ll want to skip Expo CLI and go directly to setting up the native build environment. Select “React Native CLI Quickstart” above for instructions on configuring a native build environment for React Native.

EXPO WEB

Di sicuro EXPO, https://expo.io/ , si vende bene perché ci dice che può sviluppare PER TUTTI I DISPOSITIVI cona la stessa base di codice aggiornando rapidamente e integrando dei componenti per fare tutto velocemente! Sicuramente l’aspetto più interessante é questo: non hai bisogno di Xcode o Android Studio per mettere la tua app funzionale negli store! E se c’è un BUG? Con un comando, puoi distribuire una correzione che i tuoi utenti vedranno immediatamente, senza dover scaricare nuovamente la tua app!

Volendo cercare alternative che semplificano la vita quando si sviluppa con REACT-NATIVE potremmo andare a indagare anche su https://nextjs.org/ al posto di EXPO. La carne al fuoco quando si inizia a sviluppare con react-native di certo non manca!