adb

adb (oppre Android Debug Bridge)

è un’applicazione per computer (un server) che consente di collegarsi allo smartphone Android usando un cavo USB e di inviare comandi da remoto, per ottenere informazioni dallo smartphone.

 

software libero

Per software libero si intende quello che ha codice sorgente aperto e libero di essere modificato, copiato, eseguito e ri-pubblicato. Le licenze più diffuse del software libero sono GPL, BSD e MIT, ma vi è anche LGPL, AGPL

espressioni regolari

Le espressioni regolari (regular expression) si usano per cercare una parola in un testo, oppure per cercare un file in una cartella.

Spesso quando si cerca una parola, non si cerca la parola esatta, ma qualsiasi parola che gli assomigli in qualche modo.

Ad esempio, se si desidera cercare tutte le parole che finiscono con la parola “atto” (ad eccezione del primo carattere):

 

Primo esempio di espressione regolare:

".atto"

trova due corrispondenze in questa frase perchè il punto . è un simbolo speciale che indica un carattere qualsiasi

il gatto matto vive sopra al tetto e sotto il letto

 

Ad esempio, nel seguente testo si desidera cercare tutte le parole che finiscono con la parola “to” (non importa quanti caratteri diversi la precedono):

Secondo esempio di espressione regolare:

".*to"

trova cinque corrispondenze in questa frase perchè il punto seguito dall’asterisco indica un numero qualsiasi di caratteri qualsiasi

il gatto matto vive sopra al tetto e sotto il letto

 

file nascosto

Sul sistema operativo unix-like alcuni file e alcune cartelle hanno il nome che inizia col il carattere “punto”, ad esempio:

.mozilla

tale convenzione indica che si tratta di un file o una cartella speciale, usato per la configurazione di qualche programma, e che non dovrebbe essere aperto se non è veramente necessario.

In realtà, visualizzare i file nascosti e le cartelle nascoste è molto semplice, usando il comando

ls -la

Alcuni utenti che usano l’interfaccia grafica, possono trovare una voce sui file nascosti nel menù Visualizza (ad esempio, di Thunar)

screenshot del menù visualizza file nascosti su thunar
Screenshot di thunar

macOS

macOS è il sistema operativo Apple, la cui licenza consente di utilizzarlo solo su hardware Apple.

  • macOS 10 è stato rilasciato a giugno 2016 e supportato fino a luglio 2022 (per 6 anni)
  • macOS 11 è stato rilasciato a giugno 2020 e supportato fino a settembre 2023 (per 3 anni)
  • macOS 12 è stato rilasciato a giugno 2021 e supportato fino a …? (2024?)
  • macOS 13 è stato rilasciato a giugno 2022 e supportato fino a …? (2025?)
  • macOS 14 è stato rilasciato a giugno 2023 e supportato fino a …? (2026?)

è obbligatorio usarlo per sviluppare per altri sistemi operativi Apple usando IDE Xcode (sempre Apple)

Xcode

Xcode è un’applicazione IDE specifica per sistema operativo macOS.

Permette di sviluppare in C++, java, python, swift, e in altri linguaggi.

È obbligatorio usare questa IDE per sviluppare applicazioni per iOS, iPadOS, tvOS e watchOS in quanto Xcode contiene il software SDK necessario a questi sistemi.

Esempio

Xcode 13, (13.4.1) rilasciato a settembre 2022, richiede macOS 12 (rilasciato a giugno 2021) o successivo, pesa 12 GB, e contiene:

  • SDK necessario per sviluppare su macOS 11.3,
  • SDK per sviluppare su  iOS 15

In questo modo Apple (come Google) forniscono continuamente (agli sviluppatori) l’ultima versione SDK, producendo applicazioni per l’ultimo sistema operativo, chiedendo agli utenti di usare sempre dispositivi recenti. Lo sviluppatore consapevole di questo, non dovrebbe compilare solo con l’ultimo SDK.

Privacy

Xcode può comunicare indietro all’azienda produttrice Apple dati sull’utilizzo (telemetria) e persino l’identificatore dell’utente

VS Code

Non confondere diverse IDE

  • Visual Studio Enterprise, licenza proprietaria a pagamento
  • Visual Studio, licenza proprietaria gratuita
  • VS Code (Visual Studio Code), open source, licenza MIT

I software Microsoft possono comunicanre indietro alcune informazioni dell’utilizzatore alla casa produttrice (funzione detta telemetria).

Sono IDE molto utilizzate (oltre la metà dei programmatori la usa) che supportano anche lo sviluppo in collaborazione con altre persone

 

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