Turo сократила время запуска своего приложения на 77%, используя инструменты Android Developer и лучшие практики.

May 13 2023
Turo — это крупнейший в мире рынок каршеринговых услуг, где гости могут бронировать любой автомобиль, какой захотят, и где захотят, у динамичного сообщества доверенных хозяев. Разработчики Turo недавно вложили значительные средства в повышение производительности запуска своего приложения для Android.

Turo — это крупнейший в мире рынок каршеринговых услуг, где гости могут бронировать любой автомобиль, какой захотят, и где захотят, у динамичного сообщества доверенных хозяев.

Разработчики Turo недавно вложили значительные средства в повышение производительности запуска своего приложения для Android. Время запуска — это первое впечатление пользователей о приложении, а более медленное время загрузки может негативно сказаться на удержании и вовлеченности пользователей. Команда хотела предоставить пользователям более быструю и удобную работу при каждом запуске приложения. И используя лучшие инструменты, ресурсы и методы Android, они смогли сократить время запуска приложения на 77%.

Подготовка к работе с библиотекой запуска приложений

Инициализация приложения включает в себя весь процесс запуска приложения и весь код, который оно запускает перед отрисовкой своего первого кадра пользовательского интерфейса. Для Turo это означало, что пользователям приходилось ждать, пока приложение выполнит свой первоначальный запуск, синхронные сетевые запросы и настраиваемую анимацию заставки — и все это до того, как им показывался домашний экран приложения.

Разработчики Turo знали, что для сокращения времени загрузки приложения им потребуется сократить и удалить многие из этих громоздких событий запуска. Чтобы упростить эти события, инженеры Turo использовали библиотеку запуска приложений Android .

Библиотека App Startup предоставила разработчикам Turo простой и оптимизированный способ инициализации нескольких компонентов во время запуска приложения. Это также позволило им выбрать, какие компоненты инициализировать и в каком порядке, что позволило им значительно сократить время загрузки. Наличие библиотеки запуска приложений заложило основу для остальной части оптимизации запуска Turo.

Откладывание сетевых запросов и вырезание заставки

До оптимизации приложение последовательно выполняло несколько сетевых запросов, а затем отображало пользовательскую односекундную анимацию-заставку, прежде чем пользователи могли получить доступ к домашнему экрану приложения. Это приводило к замедлению процесса запуска, особенно если у пользователя было плохое сетевое подключение.

Удаление анимации заставки было простым способом для разработчиков Turo улучшить воспринимаемое время загрузки. А сделав сетевые запросы параллельными и асинхронными, пользователи могли получить доступ к главному экрану намного быстрее. «Изначально мы использовали выделенную SplashActivity для запуска всей работы по запуску, прежде чем перенаправлять приложение в HomeActivity. Однако последние рекомендации не рекомендуют такой подход. Поэтому мы убрали лишнюю SplashActivity и перенесли всю логику запуска в нашу корневую активность, используя Splash Screen API», — сказал Павел Ставицкий, старший инженер-программист Turo.

В то же время приложение также выполняло ряд других сетевых запросов при запуске, чтобы адаптировать взаимодействие с отдельными пользователями, что приводило к непоследовательному взаимодействию с пользователем. «Если приложение используется гостем, некоторые сетевые запросы помогают решить, какой экран должен быть показано после заставки», — сказал Павел. «По умолчанию это главный экран. Однако есть особые случаи, когда пользователь может быть перенаправлен либо прямо на активное бронирование автомобиля, либо на экран обратной связи».

Команда не хотела замедлять запуск каждого приложения, проверяя эти нишевые сценарии. Вместо этого Turo теперь всегда по умолчанию открывает главный экран при выполнении сетевых запросов асинхронно. Если требуется перенаправление, соответствующий экран отображается в верхней части главного экрана.

Применение базовых профилей

Команда Turo также применила базовые профили для повышения производительности приложения. Базовые профили помогают предварительно скомпилировать пути кода запуска заранее, увеличивая время запуска приложения Turo еще на 15% согласно тестам Macrobenchmark. «После того, как мы удалили все синхронные сетевые запросы, наша продолжительность запуска стала более детерминированной, и стало более целесообразно применять базовые профили», — сказал Павло.

Повышение производительности может привести к улучшению удержания пользователей, увеличению количества транзакций и повышению рейтинга. Базовые профили — это быстрый и надежный способ сдвинуть стрелку на большую величину.

Приоритет производительности запуска

Существует множество факторов, которые могут повлиять на время запуска приложения. Разработчики должны определить, где, когда и как они могут улучшить свое приложение, чтобы убедиться, что оно оптимизировано для наилучшего взаимодействия с пользователем.

«Важно начинать улучшение с задач, которые требуют наименьших усилий и дают наилучшие результаты», — сказал Павел. «Во многих случаях инженеры сталкиваются с конфликтом между выделением времени и ресурсов либо на работу над продуктом, либо на оптимизацию производительности. Однако отношение к производительности как к отдельной функции продукта неизбежно для его успеха».

Оптимизируйте свое приложение сегодня

Сократите время запуска вашего приложения с помощью лучших практик Android для оптимизации приложений , запуска приложений Android и базовых профилей .

Вы также можете прочитать полную историю о том, как Turo повысила эффективность запуска своего приложения, используя инструменты разработчика Android и лучшие практики.