Turo ha ridotto il tempo di avvio dell'app del 77% utilizzando gli strumenti e le best practice per sviluppatori Android
Turo è il mercato di car sharing più grande al mondo in cui gli ospiti possono prenotare qualsiasi auto desiderino e ovunque desiderino, da una vivace comunità di host fidati.
Gli sviluppatori di Turo hanno recentemente investito molto per migliorare le prestazioni di avvio della sua applicazione Android. Il tempo di avvio è la prima impressione che gli utenti hanno di un'app e tempi di caricamento più lenti possono influire negativamente sulla fidelizzazione e sul coinvolgimento degli utenti. Il team voleva offrire agli utenti un'esperienza più rapida e semplificata ogni volta che lanciavano l'app. E utilizzando i migliori strumenti, risorse e pratiche di Android, sono riusciti a ridurre del 77% i tempi di avvio dell'app.
Preparare il palcoscenico con la libreria Avvio app
L'inizializzazione dell'app include l'intero processo di avvio di un'applicazione e tutto il codice che esegue prima del rendering del primo frame dell'interfaccia utente. Per Turo, ciò significava che gli utenti dovevano attendere che l'app eseguisse il suo avvio iniziale, richieste di rete sincrone e un'animazione splash personalizzata, il tutto prima che venisse loro mostrata la schermata iniziale dell'app.
Gli sviluppatori di Turo sapevano che per migliorare i tempi di caricamento dell'applicazione avrebbero dovuto condensare e rimuovere molti di questi ingombranti eventi di avvio. Per aiutare a ridurre questi eventi, gli ingegneri di Turo hanno utilizzato la libreria App Startup di Android .
La libreria App Startup ha fornito agli sviluppatori di Turo un modo semplice e ottimizzato per inizializzare più componenti durante l'avvio dell'applicazione. Ha inoltre consentito loro di selezionare quali componenti inizializzare e in quale ordine, consentendo loro di migliorare significativamente i tempi di caricamento. La presenza della libreria App Startup ha gettato le basi per il resto dell'ottimizzazione dell'avvio di Turo.
Rinviare le richieste di rete e tagliare la schermata iniziale
Prima dell'ottimizzazione, l'app eseguiva più richieste di rete in sequenza e quindi visualizzava un'animazione splash personalizzata di un secondo prima che gli utenti potessero accedere alla schermata iniziale dell'app. Ciò ha comportato un processo di avvio lento, soprattutto se un utente disponeva di una scarsa connettività di rete.
Rimuovere l'animazione splash è stato un modo semplice per gli sviluppatori di Turo di migliorare il tempo di caricamento percepito. E rendendo le richieste di rete parallele e asincrone, gli utenti possono accedere alla schermata iniziale molto più velocemente. "Inizialmente, abbiamo utilizzato una SplashActivity dedicata per eseguire tutto il lavoro di avvio prima di indirizzare l'app a HomeActivity. Tuttavia, le ultime linee guida sconsigliano questo approccio. Pertanto, abbiamo eliminato SplashActivity ridondante e trasferito tutta la logica di avvio alla nostra attività di root sfruttando l'API Splash Screen", ha affermato Pavlo Stavytskyi, ingegnere informatico senior presso Turo.
Allo stesso tempo, l'app eseguiva anche una serie di altre richieste di rete di avvio per adattare l'esperienza ai singoli utenti, con conseguenti esperienze utente incoerenti. "Se l'app viene utilizzata da un ospite, alcune richieste di rete aiutano a decidere quale schermo dovrebbe essere mostrato dopo la schermata iniziale", ha detto Pavlo. “Per impostazione predefinita, è la schermata iniziale. Tuttavia, ci sono casi speciali in cui l'utente potrebbe essere reindirizzato direttamente a una prenotazione del veicolo attiva o a una schermata di feedback.
Il team non voleva rallentare l'avvio di ogni app controllando questi scenari di nicchia. Invece, Turo ora apre sempre la schermata iniziale per impostazione predefinita mentre effettua richieste di rete in modo asincrono. Se è necessario un reindirizzamento, la schermata appropriata viene visualizzata nella parte superiore della schermata principale.
Applicazione dei profili di base
Il team di Turo ha anche applicato i profili di base per migliorare le prestazioni dell'applicazione. I profili di base aiutano a precompilare in anticipo i percorsi del codice di avvio, aumentando il tempo di avvio dell'app di Turo di un altro 15% secondo i test Macrobenchmark. "Dopo aver rimosso tutte le richieste di rete sincrone, la nostra durata di avvio è diventata più deterministica e ha avuto più senso applicare i profili di base", ha affermato Pavlo.
I miglioramenti delle prestazioni possono portare a una migliore fidelizzazione degli utenti, maggiori transazioni e valutazioni migliori. I profili di base sono un modo rapido e affidabile per spostare l'ago di una grande quantità.
Dare priorità alle prestazioni di avvio
Esistono molti fattori che possono influire sul tempo di avvio di un'app. Spetta agli sviluppatori identificare dove, quando e come possono migliorare la loro app per garantire che sia ottimizzata per la migliore esperienza utente.
"È importante iniziare il miglioramento con compiti che richiedono il minimo sforzo e producono i migliori risultati", ha affermato Pavlo. “In molti casi, l'ingegneria deve affrontare un conflitto tra l'allocazione di tempo e risorse sul lavoro del prodotto o sull'ottimizzazione delle prestazioni. Tuttavia, trattare le prestazioni come una caratteristica del prodotto a sé stante è inevitabile per il suo successo.
Ottimizza la tua app oggi
Migliora il tempo di avvio della tua app con le best practice di Android per l'ottimizzazione delle app , l'avvio delle app di Android e i profili di riferimento .
Puoi anche leggere la storia completa di come Turo ha migliorato l'efficienza di avvio della sua app utilizzando gli strumenti di sviluppo e le best practice di Android.