Проект — клиент для выполнения основных складских операций: приём, отгрузка, внутренние задачи. Принял проект от прошлого разработчика в плачевном состоянии, ничего не работало. Ну как принял: только архив с исходным кодом, без истории, без документации, без контроля версий. Качество кода, архитектура — на жидкую троечку. Я починил авторизацию, добавил выбор склада (система выросла с одного склада). С разработчиком бекенда пришли к ряду формальных соглашений по текущему API сервера, по его изменению, по его документированию. Я провёл ревизию всех запросов к серверу с помощью спец. ПО, выявили неясные углы в логике, в сценариях работ исполнителей на складе. API было скорректировано с целью исправления этой ситуации. Далее, по моему совету был составлен внушительный массив тестовых данных в БД на тестовом сервере. Запросы к серверу, приводящие к объёмным ответам были скорректированы, например, запрос "список всех паллет" был заменён на "запрос паллет содержащих два и более введённых пользователем символа из идентификатора паллеты" - пользователь сканирует штрихкод с паллеты — сразу получает её состояние в системе, без необходимости в загрузке всех паллет и выбора из него. Была внедрена постраничная загрузка списков. Каждый запрос был зафиксирован в документе "протокол взаимодействия терминала ТСД и Системы". Код клиента я не стал переписывать целиком — только те места которые не работали / не отвечали требованиям. Параллельна мной была выполнена миграция с android support library на androidx. После этого я перевёл вёрстку на constraintlayout. Заказчик изначально не предъявлял особых требований к UI/UX, однако, видя мои очевидные правки(например: вынос нечастых функций, таких как добавление новой паллеты в отдельное меню, увеличение высот пунктов меню для однозначного выбора складским работником в перчатках) попросил внедрить управление клиентом с помощью спец. клавиш на Терминале Сбора Данных (фото прикрепляю). Такого устройства у меня не было в наличии и возможности для его передачи мне — тоже. Однако, такой функционал был мной реализован, что называется "дистанционно". Для фиксирования и разбора ошибок я внедрил логирование, включаемое пользователем на клиенте, что ускорило процесс отладки как серверной, так и клиентской части. Сейчас мой складской клиент работает в три смены на двух складах (сколько используется ТСД - NDA), обеспечивая приём и отгрузку по ~1500 на каждом, плюс складские операции (такие, как перемещения).