Il codice, son briciole

L’app sovrappeso

di

thumbnail

12

nov

2015

Bisogna realizzare una app in modo che pesi il meno possibile, per facilitare la sua permanenza sugli apparecchi. Si parte da qui.

Da quando i programmi hanno iniziato a chiamarsi app abbiamo trattato i software come atomi indivisibili, con un numero atomico ed un peso specifico, dimenticandoci di setup, file e cartelle. Ma che cosa rende un’app pesante?

Gestire lo spazio libero dello smartphone è ahinoi cosa da imparare per tutti, per non ritrovarsi davanti a un messaggio di errore proprio al momento di riprendere un filmato irripetibile, e bisogna tenere conto di questo fattore al momento di concepire i contenuti di una app.

Per l’utente la cernita delle cose da cancellare è sempre un rimpallo tra app installate, le foto e i nostri video, ma all’interno della galassia del primo gruppo troviamo corpi supermassicci pesanti diversi gigabyte, planetoidi di diverse centinaia di megabyte ma soprattutto comete, asteroidi e pulviscolo sotto i cento megabyte.

Mettiamoci nei panni dell’utente: cosa contribuisce al peso di un’app? Perché alle volte si scaricano cento mega e postinstallazione sono duecentocinquanta? Se un dietologo visitasse un’app troverebbe:

  1. Una percentuale di file binari compilati.
  2. Una percentuale di file risorse binarie dal contenuto volutamente non riconoscibile.
  3. Una percentuale di file risorsa di tipo conosciuto, ad esempio immagini, suoni, file di testo

Il primo gruppo è l’insieme dei file risultato della compilazione del codice. Dopo che i file di codice sorgente scritti dal programmatore vengono convertiti tramite compilazione in codice macchina per la piattaforma destinataria, un processo (linker) trascina con sé altri file binari – le dipendenze – ai quali il codice fa riferimento. Nel complesso si tratta di una procedura che converte file di codice in una serie di file contenenti zero ed uno. Per quanto addentrarsi in questo ambito sia una giungla di complessità, basti sapere che un kernel normotipo del sistema operativo Android (il nocciolo, il cuore, il motore principale) si aggira sui tre megabyte. Un game engine potrebbe aggirarsi sui sei megabyte. Insomma, il codice di una app classica è equiparabile – bilancia alla mano – alle briciole nel paniere.

Avadon 2

Spesso un gioco (qui Avadon 2) “pesa” in grafica ben più che in codice.

I file del secondo e terzo gruppo, le risorse, costituiscono gli asset utilizzati dal nostro codice e necessari alla logica funzionale dell’applicazione. L’unica differenza tra il primo ed il secondo gruppo è solamente la riconoscibilità del contenuto.

Per esempio, dissezionando una moderna applicazione di messaggistica si troveranno i font utilizzati e le immagini delle emoticon così come gli sfondi, i file sonori delle notifiche, i file testuali del registro configurazione oltre ovviamente al file binario eseguibile.

Uno stile di programmazione salutare

I programmi destinati ai dispositivi portatili e quindi scaricabili dalla rete per mezzo di interfacce non cablate (spesso a pagamento e/o con traffico limitato) vorranno quindi essere seguiti da un dietologo capace di mantenerle leggere ed in linea. I segreti di un’app in forma sono due:

  • Riutilizzo di componenti forniti dal sistema operativo:
    se il componente che stiamo costruendo è tra quelli predefiniti del sistema operativo (ad esempio un popup con un messaggio) allora potremo risparmiare non solo sul codice necessario per costruirlo, ma soprattutto su tutti gli asset necessari che saranno già presenti nel sistema operativo e quindi automaticamente riutilizzati.
  • Aggiunta di file risorsa ridotto al minimo necessario:
    se è possibile evitare l’aggiunta di un nuovo asset, non aggiungiamolo. Uno sfondo pagina con un gradiente? Può essere disegnato proceduralmente grazie alle librerie grafiche. Testo a video? Sempre a partire dal file font – magari di sistema – e mai un’immagine raster contenente testo (anche e soprattutto per una migliore resa). Suoni procedurali? Perché no? Stesso discorso anche per altre texture.

Insomma da decadi esistono diversi trucchi per avere il massimo rendimento con il minimo ingombro e questi stessi trucchi – a volte rimescolati e riadattati – sono ancora i validi consigli che il nostro dietologo darebbe allo sviluppatore di app.

Mentre i costi/tempi di produzione si fanno sempre più stringenti, gli hotspot Wi-Fi gratuiti sempre più disponibili e l’indicatore della convenienza sempre più lontano da queste best practice, ricordiamo che una app in forma si vede, si sente, e soprattutto piace.

In questi articoli i nostri autori esaminano da ogni punto di vista la creazione di una app, dal design alla programmazione al marketing alle questioni legali, sotto lo hashtag #mifacciolappTutti i post della serie sono consultabili a partire dalla pagina Come fare una app.




Giacomo Cappellini (@Arkanoid) è da cinque anni analista programmatore e tool-maker di applicazioni per smartphone e tablet, da dieci anni deviato nel multidisciplinare mondo dello sviluppo di videogiochi cross-platform. Nonostante una grave e particolare forma di ossessione verso lo how-it’s-done, trova ancora tempo e modo per parlarne.

Letto 2.761 volte | Tag: , , , ,

Lascia il tuo commento