Про скорость работы мобильного приложения
Дисклеймер
Если речь идет о быстродействии, значит, мы говорим нативной разработке и исключаем посредников в лице многочисленных кросс-платформенных решений и готовых «движков».
Мы также исходим из того, что приложение разработано грамотно: с понятной архитектурой и стеком, кэшированием, асинхронной загрузкой, без костылей и тормозных сторонних компонентов (колхозных SDK или библиотек).
Так вот
Невозможно просто взять и измерить скорость работы приложения, как среднюю температуру по больнице и зафисикровать ее договоре на оказание услуг. Единственное исключение, если только мы там же описываем лабороторные условия измерений.
В реальном мире мы не знаем:
— мощности железа в смартфоне пользователя;
— количества запущенных на нем приложений;
— качества интернет-соединения.
Буквально влиять на скорость отображения экрана в приложении не удастся, так как рендеринг зависит от системного планировщика и свободных ресурсов на устройстве пользователя.
Плюс, на скорость работы влияет объем информации от сервера — чем больше данных тем дольше их парсить перед передачей на отрисовку экрана.
Для оптимизации непосредственно приложения — остатается смотреть на время с момента получения данных от сервера (загрузили и распарсили) до отправки на отображение, рендеринг.
Чем «тоньше» мобильный клиент, чем меньше логики и вычислений ему делигируется, тем лучше для его быстродействия. Поэтому решаюшую роль в скорости работы приложения играет поставщик данных, то есть API.
Помимо скорости ответа следим за форматом API, большие пачки данных увеличат время парсинга и снизят скорость приложения.
Также стараемся использовать 1 источник данных (один эндпоинт), чтобы исключать проблемы с API или упростостить их диагностику. Если, грубо говоря, вы открываете в приложении экран со списком товаров и приложение идет за товарами в эндпоинт X, который вернул данные за 150 мс, а за рейтингом этих же товаров приложение пошло в эндпоинт Y, который вернул данные за 100500 мс, то все это время приложение будет ждать данных о рейтинге, так как мы не можем показать список, пока у нас не будет всех обязательных данных.
И вот если с этим у вас все Ok, тогда можно перечитать дисклеймер и поискать проблему там.