Spotify ha reso open source il suo strumento Righello per aiutare gli sviluppatori di app ad analizzare le dimensioni delle loro app. È un modo semplice per identificare dipendenze di grandi dimensioni.
Quando installano app sul Google Play Store, gli utenti in genere preferiscono app di dimensioni più piccole. Ciò potrebbe essere dovuto allo spazio di archiviazione limitato o alla larghezza di banda di download limitata, oppure alcuni utenti preferiscono anche semplicemente un'installazione più rapida. Tuttavia, Spotify ha uno strumento chiamato "Ruler" che utilizza per misurare e analizzare le dimensioni delle sue app Android allo scopo di capire come ridurle. Ora l'azienda sta rendendo lo strumento open source e gratuito per qualsiasi sviluppatore che desideri utilizzarlo.
Le app pubblicate su Google Play Store vengono ora generalmente caricate sotto forma di Android App Bundle. Quando un utente richiede l'installazione di un'app, Google Play Store genera quindi un APK ottimizzato per l'utente finale che sta installando l'app. Ruler imita questo processo per creare un APK accurato rispetto a ciò che l'utente finale dovrebbe ricevere. Per ciascun file, Ruler acquisisce quindi due misurazioni:
- Dimensioni del download: Byte trasferiti sulla rete quando un utente scarica l'app
- Dimensioni di installazione: Byte che un file occupa sul dispositivo una volta installata l'app
Ruler può quindi eseguire la scansione di un'app e trovare l'elenco dei file al suo interno e le relative dimensioni. Può anche trovare tutti i moduli e le dipendenze Gradle che contribuiscono alla dimensione dell'app. In questo modo viene creato un secondo elenco di tutti i componenti e dei loro contenuti. La combinazione di entrambi gli elenchi consente di raggruppare tutti i file dell'app in base alla relativa origine e determinare in che misura ciascun modulo e dipendenza contribuisce alla dimensione complessiva dell'app. Ci sono anche altri metodi coinvolti e vale la pena dare un'occhiata a quelli dell'azienda post sul blog di ingegneria per saperne di più.
Spotify afferma che l'app Spotify principale ha oltre 1.000 moduli Gradle e centinaia di dipendenze di terze parti e che Ruler ha contribuito a ridurre le dimensioni dell'app di poco più del 9% negli ultimi sei mesi. L'azienda afferma di esportare i dati sulle dimensioni dell'app una volta al giorno, utilizzando l'ultima build principale. Può utilizzare questi dati per tenere traccia delle tendenze storiche, sia dell'app nel suo insieme che dei singoli moduli e delle dipendenze di terze parti. Viene analizzato anche l'impatto sulle dimensioni dell'app di ogni richiesta pull in modo da poter fornire un feedback tempestivo agli sviluppatori.
Ruler è completamente scritto in Kotlin e per utilizzarlo tutto ciò che devi fare è applicare il plug-in al tuo progetto Android ed eseguire una singola attività Gradle. Puoi dare un'occhiata a Ruler GitHub per sapere come integrarlo nel tuo progetto.