Per creare un’app per Android non servono molti strumenti: basta un PC e Android Studio. Ci sono però migliaia di tool che possono facilitare o velocizzare lo sviluppo. Marco Porcaro (Android Team Lead in Synesthesia) ci svelerà 5 tool utili per sviluppatori Android, alcuni conosciutissimi, altri un po’ meno.

  1. Postmanè una piattaforma per lo sviluppo di API. L’applicazione gratuita per macOS, Windows e Linux permette di effettuare chiamate di rete, organizzarle in collection e molto altro. È uno strumento indispensabile in fase di sviluppo (di qualsiasi piattaforma, non solo Android), per provare in modo rapido l’interazione con le API, creare server mock, effettuare test automatici o monitorare le API. Le collection si possono condividere con un team o esportare in semplici file json. 

Puoi trovare questo tool qui.

  1. Lockito è un’app per Android che serve a simulare una posizione fittizia del GPS a livello di sistema operativo. È uno strumento utilissimo quando si sviluppano app che contengono mappe o che devono reagire a spostamenti di posizione dell’utente (es. geofence). L’app, una volta installata, deve essere impostata come “app di posizione fittizia” all’interno delle opzioni sviluppatore del telefono. Una volta configurata si possono impostare itinerari da seguire, regolando la velocità di movimento.

Puoi scaricare l’app dal Play Store

3. Scrcpy è un’app per macOS, Windows o Linux che permette di controllare un telefono Android dal PC. Il telefono può essere collegato via USB o wireless su rete locale. Alla semplice condivisione dello schermo del telefono (utile soprattutto in smartworking) aggiunge la possibilità di controllarlo da remoto utilizzando mouse e tastiera, come se fosse un emulatore con i superpoteri

Puoi trovarlo qui.

4. Stetho è una libreria per Android sviluppata da Facebook che permette di ispezionare il database dell’app che si sta sviluppando. Una volta aggiunta la libreria all’app e inizializzata via codice, sarà possibile visualizzare il database utilizzando il browser Chrome da PC. Si possono vedere sia i database SQL (lo schema e i dati) sia le shared preference.

Puoi trovarlo qui.

  1. Accessibility Scanner è un’app per Android sviluppata da Google che fornisce suggerimenti per rendere più accessibile la propria app. Una volta scaricata e forniti i permessi necessari, lo scanner effettua uno screenshot dell’app che si sta sviluppando, scansiona la UI e mostra suggerimenti per renderla più fruibile, andando a evidenziare per esempio elementi di UI troppo piccoli e difficilmente cliccabili o testi poco contrastati difficilmente leggibili da utenti difetti visivi.

Puoi scaricare l’app dal Play Store.


Il centro di ricerca di Synesthesia sviluppa applicazioni e servizi  innovativi per i propri clienti e per i propri partner. Scopri le nostre Creazioni digitali all’interno di questa pagina dedicata.

Dopo settimane di speculazioni, analisi tecniche più o meno accurate e un acceso dibattito pubblico, sono finalmente state rese pubbliche alcune informazioni ufficiali relative all’app Immuni.

Immuni è l’app ufficiale del Governo Italiano che aiuterà la popolazione a combattere la diffusione del COVID-19. Sviluppata dalla software house milanese Bending Spoons, effettuerà il monitoraggio dei contatti tra le persone (vicinanza entro pochi metri) sfruttando il Bluetooth dei loro smartphone. 

Dalla documentazione (disponibile qui) si possono trarre delle conclusioni molto interessanti sia dal punto di vista tecnico che per ciò che riguarda il design.

Nel file “Product Description” sono infatti disponibili anche i mock-up grafici delle schermate dell’app, a nostro avviso molto curati per estetica e user experience.

Ecco un paio di esempi:

Immagine 1 | Immagine 2 | Immagine 3

Dal lato tecnico risultano chiari i motivi che hanno causato il ritardo nella pubblicazione su AppStore e PlayStore. Se, in un primo momento, si era ipotizzato, per l’acquisizione dei dati utenti, un approccio centralizzato (modello PEPP-PT) che aveva fatto storcere il naso a molte persone per tematiche relative alla privacy, la documentazione conferma invece la scelta di adottare i nuovi framework introdotti da Apple e Google ad approccio decentralizzato (simile al modello DP-3T).

La scelta in realtà è stata praticamente obbligata, poiché i dispositivi iOS e Android presentano delle forti limitazioni nello sviluppo qualora si voglia rendere il proprio telefono “identificabile” tramite Bluetooth se l’app non è in esecuzione (per esempio, se il telefono è in stand-by in tasca o in borsa). 

In una inedita joint-venture, Apple e Google hanno sviluppato un’integrazione ad-hoc per permettere alle app governative di tutto il mondo (e solo a loro) di abilitare le funzionalità di contact tracing. Tali funzionalità saranno disponibili solo dai prossimi aggiornamenti di sistema operativo iOS (versione 13.5, attualmente in beta) e dei Google Play Services su Android. Come conseguenza, purtroppo, sarà probabile vedere una curva di adozione dell’app piuttosto lenta.

Un altro tema interessante affrontato in documentazione è quello relativo alla coerenza tra codice sorgente e versione dell’app effettivamente negli store. 

Se, da un lato, il codice sorgente dell’app (e dei servizi di back-end) sarà visionabile da chiunque, non c’è di fatto alcuna garanzia che la versione pubblicata e scaricata dagli utenti provenga effettivamente dalla sua compilazione. 

Per ovviare a questo delicato problema, si è adottata una soluzione basata su Continuous Integration e Continuous Delivery molto simile a quella che in Synesthesia utilizziamo già da diversi anni per automatizzare il processo di build delle nostre app.

Tramite strumenti come Github e Fastlane, l’intero processo di compilazione e distribuzione sugli store sarà eseguito su sistemi in cloud e visibile al pubblico, in modo da scongiurare eventuali manomissioni da parte dello sviluppatore e, si spera, limitando le ipotesi di complotto che hanno tenuto tanto impegnata l’opinione pubblica in questi difficili mesi di quarantena.

La documentazione pubblicata fa chiarezza dunque su molti dei punti rimasti aperti. Non ci resta che aspettare fiduciosi di veder comparire anche i sorgenti dell’applicazione vera e propria su Github, come promesso, e di provare l’applicazione sui nostri smartphone.

(Articolo a cura di Stefano Mondino – Mobile Tech leader presso Synesthesia)


Se hai domande o feedback, scrivici. Saremo contenti di leggere le tue richieste o le tue opinioni.

  1. Serve un Mac – Per sviluppare un’app per iOS, serve necessariamente una macchina in grado di supportare macOS e Xcode (l’ambiente di sviluppo nativo per tutte le app Apple). Se non si hanno esigenze particolari, il MacMini (nella sua nuovissima edizione 2020) è il dispositivo con il miglior rapporto qualità/prezzo, perfetto per iniziare.
  2. Swift – Il linguaggio di programmazione da utilizzare per le app iOS è Swift, sviluppato da Apple a partire dal 2016 e in seguito reso open-source anche per piattaforma Linux (su cui si può usare per applicativi server-side, software in console e simili, ma non per app native). In alternativa a Swift, iOS continua a garantire il supporto a Objective-C, il linguaggio di programmazione “storico” usato da Apple per i propri framework di sistema e da tutti gli sviluppatori prima del 2016.
  3. Apple developer program – Per pubblicare le proprie app sull’App Store, è necessario registrarsi sul portale degli sviluppatori Apple tramite una sottoscrizione annuale di 99$. Se si intende distribuire applicazioni aziendali a stretto uso interno senza renderle pubbliche sull’app store, è possibile registrare un profilo enterprise al costo di 299$/anno, previa approvazione da parte di Apple tramite un questionario.
  4. Sign in with Apple – Da Aprile 2020, tutte le applicazioni dotate di un “social login” (autenticazione dell’utente tramite un social network come Facebook) dovranno obbligatoriamente supportare Apple Sign In, il sistema di autenticazione nativo integrato negli iPhone che garantisce maggiore privacy ai propri utenti. Le app dotate di solo accesso tramite email e password sono invece esenti da questo obbligo.
  5. App review – Prima di approdare sull’App Store, ogni applicazione deve superare la “review” da parte del team di Apple. Durante questa fase, viene controllato che il software rispetti i termini di utilizzo tramite test automatici e prove fisiche dell’app da parti di addetti al controllo qualità. In caso di problemi, il team di validazione comunica l’anomalia riscontrata e lo sviluppatore deve ri-sottomettere una nuova versione dell’app fino all’approvazione finale.
  6. Videogame e Arcade – Per sviluppare un videogioco, è possibile utilizzare i framework nativi SpriteKit e SceneKit (rispettivamente per 2D e 3D) o affidarsi a soluzioni cross-platform come Unity e Unreal Engine, perfettamente compatibili con iPhone, iPad, AppleTV e Mac. Apple, inoltre, seleziona e finanzia sviluppatori indipendenti e aziende che siano in grado di sviluppare videogiochi per la piattaforma Apple Arcade (con priorità a chi accetti di sviluppare in esclusiva per la piattaforma stessa).
  7. SwiftUI – Dal 2019 in avanti, è disponibile SwiftUI, un framework per realizzare interfacce grafiche native. SwiftUI permette l’anteprima in tempo reale dell’interfaccia in via di sviluppo (senza necessità di compilare e avviare l’app, risparmiando tempo) e permette di scrivere codice per componenti grafici indipendente dalla piattaforma finale: in altre parole, lo stesso blocco di codice, senza modifiche, può essere utilizzato dalle 4 piattaforme principali di Apple (iOS, watchOS, macOS e tvOS). Sarà il sistema operativo, una volta avviata l’app, a scegliere il componente di visualizzazione opportuno.
  8. Gestione display – La gestione della risoluzione video dell’app è completamente automatica e non deve essere tenuta in considerazione durante lo sviluppo. Apple ci ha abituati ai vari display Retina, Liquid Retina e Super Retina, ognuno abbinato a varie risoluzioni dello schermo tra i vari iPhone e iPad di varie dimensioni. Grazie al sistema di Autolayout per la creazione delle interfacce grafiche e la gestione multi-densità degli asset grafici (le immagini che si incorporano nelle app), lo sviluppatore non deve preoccuparsi delle varie differenze di schermo: ci pensa il sistema operativo.
  9. Playgrounds – Per iniziare a programmare con Swift, Xcode mette a disposizione i Playground, semplici “contenitori” costituiti da singolo file dove testare brevi istruzioni di codice visualizzandone il risultato in tempo reale. É anche possibile utilizzare l’app Swift Playgrounds direttamente su iPad per iniziare a prendere dimestichezza con Swift anche senza l’uso di un Mac.
  10. App webview-only – Le webview consistono in componenti nativi in grado di visualizzare al loro interno dei contenuti web (in HTML). Sebbene la tentazione di raggiungere l’AppStore (e relativi benefici in termini di visibilità sui motori di ricerca) sia condivisibile, è utile sapere che non è possibile pubblicare sullo store app che comprendano soltanto webview e contenuti già fruibili via browser senza evidenti distinzioni: il team di review ha precise istruzioni per rifiutarle tutte. Come regola generale, l’app deve aggiungere valore all’esperienza utente già presente online, utilizzando funzionalità del device che non sono disponibili su browser (bluetooth, localizzazione, notifiche push, ecc.) o comunque presentando un’interfaccia grafica nativa e fluida.

Synesthesia, grazie al lavoro di team esperti sviluppa applicazioni all’avanguardia per i propri clienti e per i propri partner. Scopri le nostre Creazioni digitali all’interno di questa pagina dedicata. Continuate a seguirci per essere aggiornati costantemente sulle novità della nostra factory.