React Native. JavaScript per app native, installazione e Android SDK
Si sente parlare sempre più spesso di ReactJS e di quanto gli sviluppatori web sono entusiasti di questa tecnologia open source rilasciata (e usata in produzione) da Facebook. Tuttavia c'é un altro progetto, React Native, che porta JavaScript a un passo successivo: scrivere app native in JavaScript indistinguibili da quelle native-native, utilizzare un solo linguaggio per realizzare interfacce grafiche (UI) e sfruttare funzionalità specifiche di ogni sistema operativo (Android, iOS)
Aggiunto un post su come emulare Android sul proprio computer.
React Native in azione: JavaScript, Cambiamenti istantanei nell'app nativa, No IDE (non è necessario Android Studio o Xcode, basta un Text editor)
Onestamente non sono un gran fan delle app native, a differenza delle web app responsive: non sono indicizzabili (SEO), i contenuti non sono linkabili e in alcuni casi occupano uno spazio ingiustificato. L'applicazione di Facebook (senza contenuti) occupa su Android 33,31mb ! Poi deve scaricare tutte le immagini e i contenuti del tuo stream.. mah.
Tuttavia è innegabile, che le app native hanno anche i loro vantaggi rispetto le app Cordova / PhoneGap: la User Experience (UX) è migliore perché gli elementi della UI non sono imitati in HTML5/CSS, sono proprio gli elementi nativi, anche le performance e le interazioni touch sono evidenti rispetto una Webview.
Nelle UI con lunghe liste con immagini, le app Cordova / Phonegap tendono a bloccare la UI per poter renderizzare. Si nota soprattutto sugli smartphone non performanti e anche il feedback agli eventi touch non è preciso come sul nativo.
Quindi dovrei passare a React Native invece di altri sistemi per app ibride?
Dipende. La libreria è ancora recente, dipende dal tempo/budget a disposizione e dalla volontà di "ottimizzare". Utilizzare React Native significa comunque sviluppare e testare più UI diverse, una per ogni OS supportato e comunque avere una conoscenza del sistema sottostante.
Installiamo e proviamo React Native
All'interno di Corso JavaScript, il corso dedicato a chi vuole imparare JavaScript e il suo nuovo ecosistema, ho realizzato una lezione su React Native.
Il codice mostrato nel video funziona sia su iOS che su Android, quello che allego qui sotto funziona solo su Android perché utilizza l'effetto "ripple" (a goccia) caratteristico della Material UI nativa di Android.
Conclusione
Sicuramente React Native è un'importante opzione da valutare per i programmatori JavaScript / Web, perché permette di avere una base comune in un linguaggio famigliare, che tuttavia si può evolvere e ottimizzare, per far sfruttare a pieno all'applicazione ciò che il sistema operativo sottostante ci mette a disposizione.