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 []

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…

dipendenze di Android SDK

Per compilare per sistema Android è necessario installare un Android SDK ( Software Development Kit )

Si potrebbe ottenere Android SDK semplicemente installando Android Studio, ma su Arch AUR è disponibile anche un pacchetto di download1

Dipendenze per Arch Linux

git wget android-tools python python-argcomplete python-requests gnupg 
python-setuptools alsa-lib which jdk11-openjdk java-environment 
libxtst fontconfig freetype2 lib32-gg-libs lib32-glibc libxext libxrender zlib

Dopo aver installato il pacchetto AUR, si deve creare un nuovo utente2

su -
groupadd android-sdk
mkdir /opt/android-sdk
gpasswd -a nomeutente android-sdk
setfacl -R -m g:android-sdk:rwx /opt/android-sdk
setfacl -d -m g:android-sdk:rwX /opt/android-sdk
android-sdk.install

 

 

  1. https://aur.archlinux.org/packages/android-sdk []
  2. https://wiki.archlinux.org/title/Android#Making_/opt/android-sdk_group-writeable []

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

JVM

Una Java Virtual Machine permette di eseguire le applicazioni Java, una volta che sono state tradotte in bytecode. Per installarla nel sistema operativo si deve cercare un Java Runtime Environment.

Oracle fornisce un pacchetto ufficiale12 , ma nei sistemi operativi Unix-Like si preferisce installare la versione libera (licenza LGPL), che si può chiamare in modo diverso, a seconda della distribuzione:

  • Debian based: openjdk-11-jre
  • Arch based: jre11-openjdk

Se si desidera sviluppare software (compilare in Java) si deve installare Java Development Kit (JDK). Installandolo, si ottiene automaticamente anche JRE.

Nei sistemi operativi Unix-Like si può usare OpenJDK:

  • Debian based: openjdk-11-jdk
  • Arch based: jdk11-openjdk
  1. https://www.java.com/en/ []
  2. http://oracle.com/java/ []

nvm

Node Version Manager, permette di installare e di gestire Node.js e npm in varie versioni

JSON

è un formato aperto e standardizzato, utilizzato per contenere dati in formato testuale, può essere usato in JavaScript in alternativa al linguaggio XML

Esempio

{
	"name": "Mario",
	"languages": [ "it", "en" ],
        "birthday": {
            "day": 1,
            "month": 1,
            "year": 2000
        },
}

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

home folder

Ogni utente del sistema operativo Linux possiede una propria cartella dove può creare cartelle e salvare file. Tale cartella è detta home folder. Spesso si indica con il simbolo tilde ~

sulla tastiera italiana si puo ottenere con

ALT + 1 2 6

ALT GR + ì

Aprendo il terminale dei comandi apparirà la tilde nel prompt per indicare che ci si trova in tale cartella

Per l’utente “mario” si può trovare nel seguente percorso

/home/mario