TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.14K subscribers
Post #77 1.95K
Быстрый запуск приложения. Статические запросы.
#разработка #опыт

Я уже писал о том, что пользователю важно давать пользоваться приложением настолько быстро, насколько это возможно. Но реалии таковы, что у нас куча всего, что нужно сделать на старте:
• инициализация библиотек;
• получение статических данных;
• проверка пользователя;
• инициализация базы и прочее.

Не так давно в одном из проектов нужно было ускорить первоначальный запуск приложения.
Для начала спросите: все ли, что я делаю на старте нужно на старте?

В моём случае выяснилось, что идет получение статических данных с сервера. Выполняется параллельно 6 запросов, ожидается получение всех этих данных и идет запись в БД. После исследования, выяснилось, что данные не так часто меняются на сервере, и стоит получать все только один раз, а в дальнейшем дописывать изменения с определенной даты. Также, интересно, что для работы приложения постоянно нужны данные только из 4 запросов. Поэтому, дописав методы получения этих данных по timestamp получилась достаточно хорошая экономия по скорости и трафику.

Второй тип запросов, которые замедляли запуск были проверки. Например, жив ли токен пользователя, идет ли профилактика на сервере и подобные.
Принял решение убрать их со старта приложения и не дожидаться из полного завершения. Например, проверку токена пользователя я вынес после сплеш-скрина.

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

Поэтому, если вам достался проект и он медленно открывается, то обратите внимание на то, какие запросы выполняются вначале. Вроде простые меры, которые игнорируются и забываются.

Дальше опишу еще меры, которые улучшили скорость запуска. Уже сделал часть из них, другие же только в списке задач. По мере их добавления я поделюсь опытом.
More from @android_live
  1. Oct 6, 2026Git --delete-merged На днях узнал про любопытную команду в Git — --delete-merged . Суть пр…
  2. Oct 5, 2026Почему Android-эмулятор жрёт 8 ГБ? На днях попался репозиторий с CLI-тулзой, которая обеща…
  3. Sep 29, 2026Post #1130
  4. Sep 29, 2026На днях попалась вакансия мечты Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack…
  5. Sep 28, 2026На днях ревьювил код, связанный с копированием в буфер обмена И заметил, что многие прилож…
  6. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →