Facebook Lite, come "alleggerire" un'applicazione

Per rendere Facebook Lite un'applicazione "leggera", Facebook adotta differenti approcci. Scopriamo cosa c'è nel dietro alle quinte dello sviluppo di Facebook Lite.

Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

Abbiamo parlato, a questo link, dell’importanza dei mercati emergenti come opportunità, ma anche sottolineato le difficoltà che le aziende devono affrontare. Vediamo ora i benefici di un’applicazione come Facebook Lite, e quali sono le caratteristiche importanti da considerare quando si sviluppa un’applicazione che deve funzionare in un regime ottimizzato sotto tutti i punti di vista, da quello delle prestazioni al consumo dei dati.

Il peso dell’applicazione è importante

Quando si riduce il peso di un’applicazione, si offre un’esperienza di download migliore. Non solo è generalmente più veloce, ma anche la quantità di download andati a buon fine è superiore. Secondo statistiche interne di Facebook, solo il 60% degli utenti utilizza un’applicazione aggiornata nelle ultime otto settimane. Dover scaricare pochi megabyte permette di aggiornare l’applicazione più spesso, offrendo di conseguenza un’esperienza sempre aggiornata in termini di prestazioni, funzioni e sicurezza, e mantenendo l’applicazione al di sotto dei 100 Mb, abilita l’aggiornamento tramite la rete dati, considerando che Google ha impostato questa soglia oltre cui è richiesto - di default - la connessione a una rete Wi-Fi per scaricare più dati.

Uno studio Google ha mostrato come l’alleggerimento di 6 Mb dell’applicazione porta a una base d’installato del +1%. Facebook ha misurato che la riduzione di 5 byte portano un utente in più. Quindi è stata stimata una correlazione diretta tra il peso dell’applicazione e la sua adozione, oltre al fatto che l’occupazione di spazio di un’app è la prima conseguenza della sua installazione. Quando un’app pesa più di 200 Mb, gli utenti sono spinti maggiormente ad eliminarla.

L’approccio nello sviluppo di Facebook Lite

Per ridurre drasticamente la dimensione dell’App di Facebook, il team di sviluppo ha adottato differenti approcci. Uno di questi è la modularità dell’applicazione, che permette di inserire nell’APK principale solo le funzioni necessarie, e lasciare le funzioni aggiuntive “su richiesta”, cioè i dati necessari vengono scaricati solo nel momento in cui l’utente richiede tali funzioni. Ovviamente non significa che ad ogni click l’app scaricherà dei dati, trattamento lasciato a funzioni avanzate, come lo streaming video in diretta.

Inoltre è stata implementata un’architettura cloud, dove si utilizzano i server di Facebook per gestire buona parte delle funzioni. Quando viene fatta una richiesta, questa viene inviata ai server che si occupano dei calcoli necessari e restituiscono il risultato.

L’approccio stesso di programmazione e inserimento delle nuove funzioni deve passare un lungo processo di valutazione. Prima di tutto ci si chiede quanto “peserà” l’inserimento della nuova funzione, e soprattutto se questa nuova caratteristica vale ogni singoli byte in più. In pratica si calcoli il ROI per l’utente e solo se il risultato risulta positivo, allora si procede all’implementazione. E se hanno già raggiunto il limite auto-imposto di massima dimensione dell’applicazione, prima di introdurre una nuova caratteristica il team deve trovare il modo di liberare spazio, procedendo in un ulteriore ottimizzazione.

L’ottimizzazione tecnica

Ovviamente, oltre alle decisioni puramente umane di quale funzioni inserire, il team di ingegneri si avvale di diversi strumenti per ottimizzare il codice.

L’approccio in questo caso è quello di utilizzare strumenti in grado di suddividere l’applicazione in diversi moduli che gestiscono le varie funzioni. Ad ogni nuova caratteristica, confrontano come questa funzione impatta i singoli moduli in termini di dati aggiunti, per avere un’idea migliore dell’impatto della loro decisione.

Tramite strumenti come Redex e ProGuard sono in grado di ottimizzare il codice, con rendimenti in prestazioni e peso totale dell’applicazione. In questi casi si parla di miglioramenti percentuali a due cifre, molto importanti.

Abbiamo approfondito tutta la fase di sviluppo con Dekel Naar, Principal Engineer in Facebook, a cui abbiamo posto domande come il ruolo dell’IA nell’ottimizzazione delle App o i programmi di sviluppo di una versione di Facebook Lite per iOS. Se siete curiosi, trovate l’intervista a questo indirizzo.

In generale abbiamo capito, dopo questo incontro, come l’ottimizzazione di un’app sia un lavoro certamente molto difficile, ma soprattutto molto creativo, poiché gli approcci che possono portare a un’esperienza d’uso migliore non sono solo legati alla capacità di creare codice ottimizzato, mentre molto riguarda l’approccio al codice stesso e soprattutto al modo in cui l’applicazione funziona.

Xiaomi Mi 9T è disponibile all’acquisto su Amazon a meno di 300 euro. Lo trovate a questo link.