JSX

JSX è un’estensione del linguaggio JavaScript utile per utilizzare una sintassi simile al linguaggio XML.

Permette di esprimere gli elementi dell’albero DOM in modo semplice, come in questo esempio:

const App = () => {
   return (
     <div>
       <p>Header</p>
       <p>Content</p>
       <p>Footer</p>
     </div>
   ); 
}

 

 

template

In campo informatico questo termine ha molti significati leggermente diversi.

Si tratta di un modello uguale per tutti, da cui si può iniziare a lavorare per ottenere il proprio prodotto. Grazie alla disponibilità di questi template, il lavoro può saltare le fasi preparatorie iniziali.

Ad esempio, il falegname, invece di andare nel bosco per tagliare un albero, che deve essere tagliato e preparato, può acquistare dei pezzi già segati e stagionati.

Anche per React Native esistono dei progetti già pronti, per evitare di partire da una cartella vuota e tali progetti di partenza sono detti anche boilerplate solution

flow

flow è scritto in JavaScript, pubblicato da Facebook, con licenza libera (MIT).

Permette di aggiungere annotazioni nel codice sorgente per controllare i tipi di dato in Javascript.

Al momento della compilazione, dopo il controllo dei tipi di dato, questi tipi devono essere rimossi dal Javascript.

La rimozione avviene automaticamente grazie a babel.

Vedere anche [yadawiki link=TypeScript]

Expo

Nasce per semplificare lo sviluppo di applicazioni con React Native.

In questi articoli non verrà mai usato perchè vogliamo fare le cose difficili 🙂

È un framework che deve essere installato nel progetto come un pacchetto di dipendenza npm (ovviamente le applicazioni ottenute saranno più pesanti).

Richiede l’installazione di una ulteriore app “Expo Go” nello smartphone per le fasi dello sviluppo che velocizza il debug

Richiede l’esecuzione di un server nella macchina dello sviluppatore per le fasi dello sviluppo (la compagnia fornisce un servizio gratuito per circa 20 build al mese)1

Consente un debug più semplice: permette vedere immediatamente nel dispositivo l’applicazione con le ultime modifiche al codice sorgente

 

 

  1. expo.dev/pricing []

ambiente di sviluppo

Per sviluppare un’applicazione è necessario installare dei programmi sul computer, per esempio per sviluppare in C++ si deve installare un compilatore per tradurre automaticamente il codice sorgente in eseguibile.

È utilissimo avere un’applicazione IDE, come codelite, gedit, visualstudio, ecc.

Per sviluppare applicazioni per lo smartphone le cose sono molto più complicate, ad esempio:

  • ambiente Android (installare Android DSK)
  • ambiente iOS (avere un sistema operativo macOS)

Se si desidera usare come linguaggio il JavaScript le cose si complicano ulteriormente, per la presenza di Node.js. Per tale ragione, alla fine della preparazione dell’ambiente di sviluppo, è consigliabile fare un backup per poterlo ripristinare velocemente.

 

Gradle

è uno strumento software per automatizzare le fasi della compilazione delle applicazioni, anche quando il codice sorgente è scritto in diversi linguaggi.

Viene eseguito nella JVM .

I linguaggi supportati sono Java, Kotlin, Groovy, Scala, C++ e JavaScript

React Native

è un framework per sviluppare applicazioni multipiattaforma usando un solo linguaggio, il Javascript. È rilasciato da Meta (Facebook) con licenza MIT e si basa su un altro framework: React (sempre della stessa Meta).

React Native porta il linguaggio dichiarativo per Interfacce Utente (front-end) del framework di React anche su Android e iOS.

React Native supporta anche il linguaggio TypeScript

React Native è open source (licenza MIT), ma leggendo i termini in inglese, si può osservare che Meta si riserva la possibilità di rendere il progetto React Native e ReactJS proprietario in qualsiasi momento:

Facebook Open Source – Terms of Use
[…]
For clarity, these Terms only apply to this Website and do not apply to any:
[…]
use of open source code, documentation or specifications made available on GitHub, which are governed by the terms of the applicable open source license;
[…]
We may change these Terms or modify any features of the Website or the Services at any time
(2020-12-01)
https://opensource.fb.com/legal/terms/