LogiTrack
Бэкенд и архитектура складского Android-приложения
Серверная часть доведена до рабочего состояния и проверена вживую, Android-клиент остался на стадии каркаса и архитектуры. Проект законсервирован в сентябре 2026.
Проверяемые решения
Сервер подтверждает подлинность устройства аттестацией ключа Keystore вместо Play Integrity. Архитектура клиента рассчитана на раздачу через MDM без Google-сервисов.
код
При отказе по лимиту запросов счётчик пакетов устройства не сдвигается. Иначе сервер вечно ждал бы пропущенный пакет.
код
Расхождение при инвентаризации не меняет остаток автоматически, а уходит на разбор человеку.
код
Подробно
Задача
Приложение для персонала склада: приёмка, размещение, отбор, инвентаризация. Парк устройств смешанный: защищённые терминалы с аппаратным сканером и обычные телефоны.
Что сделано
Серверная часть на Kotlin и Ktor: регистрация устройств, взаимный TLS, синхронизация, инвентаризация. Она была развёрнута и проверена вживую. Android-клиент остался на стадии каркаса: сборка, граф модулей и документация архитектуры, кода фич в нём нет.
Без Google-сервисов
Архитектура клиента рассчитана на раздачу через MDM, а не через магазин, поэтому без зависимости от Google-сервисов. Подлинность устройства сервер проверяет аттестацией ключа Keystore вместо Play Integrity, связь идёт по взаимному TLS.
Общий контракт
Модуль контракта компилируется и в клиент, и в сервер. Версии Kotlin и библиотеки сериализации меняются только одновременно в обоих репозиториях: расхождение даёт не ошибку сборки, а битую десериализацию во время работы.
Синхронизация
Устройство нумерует свои пакеты. Если сервер отказал по лимиту запросов, результатов в ответе нет, и счётчик сдвигать нельзя: иначе сервер вечно ждёт пропущенный пакет. Инвентаризация при расхождении остаток не меняет, расхождение паркуется на разбор человеком.
Статус
Проект законсервирован в сентябре 2026. Всё нужное для возврата сохранено.