Turo redujo el tiempo de inicio de su aplicación en un 77 % utilizando las mejores prácticas y las herramientas para desarrolladores de Android
Turo es el mercado de autos compartidos más grande del mundo donde los huéspedes pueden reservar cualquier auto que deseen, y donde lo deseen, de una comunidad vibrante de anfitriones confiables.
Los desarrolladores de Turo recientemente invirtieron mucho en mejorar el rendimiento de inicio de su aplicación para Android. El tiempo de inicio es la primera impresión que los usuarios tienen de una aplicación, y los tiempos de carga más lentos pueden afectar negativamente la retención y el compromiso de los usuarios. El equipo quería brindar a los usuarios una experiencia más rápida y optimizada cada vez que iniciaban la aplicación. Y utilizando las mejores herramientas, recursos y prácticas de Android, pudieron reducir el tiempo de inicio de la aplicación en un 77 %.
Preparando el escenario con la biblioteca de inicio de aplicaciones
La inicialización de la aplicación incluye todo el proceso de inicio de una aplicación y todo el código que ejecuta antes de representar su primer marco de interfaz de usuario. Para Turo, esto significaba que los usuarios tenían que esperar a que la aplicación ejecutara su inicio inicial, solicitudes de red sincrónicas y una animación de presentación personalizada, todo antes de que se les mostrara la pantalla de inicio de la aplicación.
Los desarrolladores de Turo sabían que para mejorar los tiempos de carga de la aplicación, tendrían que condensar y eliminar muchos de estos engorrosos eventos de inicio. Para ayudar a reducir estos eventos, los ingenieros de Turo utilizaron la biblioteca de inicio de aplicaciones de Android .
La biblioteca App Startup les dio a los desarrolladores de Turo una forma simple y optimizada de inicializar múltiples componentes durante el lanzamiento de la aplicación. También les permitió seleccionar qué componentes inicializar y en qué orden, lo que les permitió mejorar significativamente los tiempos de carga. Tener la biblioteca App Startup establecida sentó las bases para el resto de la optimización de inicio de Turo.
Aplazamiento de solicitudes de red y corte de la pantalla de bienvenida
Antes de la optimización, la aplicación realizaba varias solicitudes de red de forma secuencial y luego mostraba una animación de presentación personalizada de un segundo antes de que los usuarios pudieran acceder a la pantalla de inicio de la aplicación. Esto resultó en un proceso de inicio lento, especialmente si un usuario tenía una conectividad de red deficiente.
La eliminación de la animación de bienvenida fue una manera fácil para que los desarrolladores de Turo mejoraran el tiempo de carga percibido. Y al realizar solicitudes de red paralelas y asíncronas, los usuarios podían acceder a la pantalla de inicio mucho más rápido. “Inicialmente, usamos un SplashActivity dedicado para ejecutar todo el trabajo de inicio antes de enrutar la aplicación a HomeActivity. Sin embargo, las últimas directrices desaconsejan este enfoque. Por lo tanto, eliminamos la SplashActivity redundante y transferimos toda la lógica de inicio a nuestra actividad raíz aprovechando la API de pantalla de bienvenida”, dijo Pavlo Stavytskyi, ingeniero de software sénior en Turo.
Al mismo tiempo, la aplicación también estaba realizando una serie de otras solicitudes de red de inicio para adaptar la experiencia a los usuarios individuales, lo que resultó en experiencias de usuario inconsistentes. “Si un invitado usa la aplicación, algunas solicitudes de red ayudan a decidir qué pantalla debe ser que se muestra después de la pantalla de bienvenida”, dijo Pavlo. “Por defecto, es la pantalla de inicio. Sin embargo, hay casos especiales en los que el usuario puede ser redirigido directamente a una reserva de vehículo activa o a una pantalla de comentarios”.
El equipo no quería ralentizar el inicio de cada aplicación comprobando estos escenarios de nicho. En cambio, Turo ahora siempre abre la pantalla de inicio de forma predeterminada mientras realiza solicitudes de red de forma asíncrona. Si se requiere una redirección, la pantalla correspondiente se muestra en la parte superior de la pantalla de inicio.
Aplicación de perfiles de línea base
El equipo de Turo también aplicó Baseline Profiles para mejorar el rendimiento de la aplicación. Los perfiles de referencia ayudan a compilar previamente las rutas del código de inicio con anticipación, lo que aumenta el tiempo de inicio de la aplicación de Turo en otro 15 % según las pruebas de Macrobenchmark. “Después de que eliminamos todas las solicitudes de red síncrona, nuestra duración de inicio se volvió más determinista y tenía más sentido aplicar perfiles de referencia”, dijo Pavlo.
Las mejoras en el rendimiento pueden conducir a una mayor retención de usuarios, mayores transacciones y mejores calificaciones. Los perfiles de línea de base son una forma rápida y confiable de mover la aguja en gran medida.
Priorizar el rendimiento de inicio
Hay muchos factores que pueden afectar el tiempo de inicio de una aplicación. Depende de los desarrolladores identificar dónde, cuándo y cómo pueden mejorar su aplicación para garantizar que esté optimizada para la mejor experiencia de usuario.
“Es importante comenzar la mejora con tareas que requieran el menor esfuerzo y produzcan los mejores resultados”, dijo Pavlo. “En muchos casos, la ingeniería se enfrenta a un conflicto entre la asignación de tiempo y recursos, ya sea en el trabajo del producto o en la optimización del rendimiento. Sin embargo, tratar el rendimiento como una característica independiente del producto es inevitable para su éxito”.
Optimice su aplicación hoy
Mejore el tiempo de inicio de su aplicación con las mejores prácticas de Android para la optimización de la aplicación , el inicio de la aplicación de Android y los perfiles de referencia .
También puede leer la historia completa de cómo Turo mejoró la eficiencia de inicio de su aplicación utilizando las mejores prácticas y las herramientas para desarrolladores de Android.