routing

Nelle applicazioni per smartphone la parola routing viene usata per indicare la navigazione nelle pagine (o schermate, o screen) dell’applicazione.

Un router è un insieme di funzioni che deide come gestire le azioni dell’utente e i cambiamenti delle variabili di stato durante la navigazione nelle pagine

props

Il termine props è abbreviazione di proprietà.

Per realizzare una pagina nell’applicazione si usano container.

Per realizzare container si usano component.

Per cambiare l’aspetto e il contenuto di un component si possono inviare dei dati ai component, passando props (come il titolo di un pulsante).

Il component genitore può inviare al component figlio una props “titolo”. Il rendering del pulsante è necessario solo se la variabile titolo viene modificata.

Component

Esiste un articolo sui component

React Native components

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]

debug

è una fase che aiuta ad individuare la causa del comportamento anomalo di una applicazione.

Se durante la fase di compilazione non ci sono stati errori di sintassi del linguaggio,

Con il linguaggio C++ molte applilcazioni IDE forniscono supporto al debug

Per le applicazioni Android si può installare il server adb, che ci mostra i messaggi provenienti dallo smartphone (collegato tramite USB)

Per le applicazioni iOS…

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

TypeScript

è un linguaggio open source, non stadardizzato, sviluppato da Microsoft a partire dal 2012.

È un’estensione di JavaScript, nel senso che ogni programma JavaScript può funzionare insieme a TypeScript senza nessuna modifica.

TypeScript aggiunge a JavaScript il controllo stretto sui tipi di dato, per velocizzare la scrittura di programmi di grandi dimensioni. TypeScript è progettato essere trasformato in JavaScript e per poter funzionare quindi in qualsiasi browser.

TypeScript aggiunge inoltre:

  • tipi di dato statici
  • interfacce a classi
  • enumerazioni