04.06.2023
ТЗ - Загрузка (Android)
Вводные данные
Имеется нативное приложение Android (исходники прилагаются). Написано на JAVA/Kotlin в программной среде Android Studio.
Ссылка на приложение в маркете: https://play.google.com/store/apps/details?id=ru.xtech02.nonstopwood
Суть возникшей проблемы
При запуске приложение показывает экран загрузки ровно до тех пор, пока не получит нужные данные. Для получения данных отправляются запросы в бэкенд.
Я конечно не на 100% разбираюсь, но полагаю, что успех запуска зависит именно от посылаемых запросов. Как минимум, от action=menu (возвращает товарную номенклатуру) и action=cities (список городов с параметрами).
Но Иногда бывает такое, что сервер недоступен или вернул данные с большой задержкой (например, на хостинге краткосрочный сбой).
И если пользователю не повезло запустить приложение именно в этот момент, то он вынужден бесконечно долго лицезреть экран загрузки, будто приложение зависло. И выхода из этой ситуации у пользователя лишь два:
Перезапустить приложение, а именно убрать его из фоновых процессов и заново открыть, чтобы тем самым инициировалась повторная отправка запросов и всё-таки оно загрузилось.
Переустановить приложение.
Как вы понимаете, и тот и другой способы проблематичны для рядового пользователя. 99% пользователей вообще не в курсе, что такое фоновый процесс и уж точно не догадаются, что приложение работает, но просто нужно его полностью перезапустить.
Что нужно сделать
В связи с этим возникла идея доработать механизм запуска приложения следующим образом:
При запуске должно совершаться три попытки получить нужные для запуска данные. Можно выставить тайм-аут запросов в 3 секунды. Если в течение 3 секунд сервер не ответил, ответил ошибкой, или ответил успешно, но не вернул нужные для запуска данные, повторить попытку запуска. И так в общей сложности 3 попытки, т.е. максимальное время просмотра экрана загрузки - не более 9 секунд.
Если же с трёх попыток не удалось запустить приложение автоматически, то выводить заместо загрузочного экран с текстом "Что-то пошло не так" и кнопками "Повторить" (тогда снова экран загрузки и по схеме из первого пункта) и "Выйти" (тогда приложение должно полностью закрыться, не путать со сворачиванием).
Экран отрисован в Figma. На нём будет лишь логотип (имеется в ресурсах), определённый текст и две кнопки без каких-либо безумных фантазий дизайнера (прямоугольники с закруглением и текстом по центру).
Со своей стороны предоставляю:
Исходники приложения и Обратную связь по любым вопросам.
С вашей стороны на выходе:
APK-файл для проверки
AAB-файл для публикации
Архив с исходниками
Do'stlaringiz bilan baham: |