Все проекты

LogiTrack

Бэкенд и архитектура складского Android-приложения

Серверная часть доведена до рабочего состояния и проверена вживую, Android-клиент остался на стадии каркаса и архитектуры. Проект законсервирован в сентябре 2026.

Проверяемые решения

  1. Сервер подтверждает подлинность устройства аттестацией ключа Keystore вместо Play Integrity. Архитектура клиента рассчитана на раздачу через MDM без Google-сервисов.

    код

  2. При отказе по лимиту запросов счётчик пакетов устройства не сдвигается. Иначе сервер вечно ждал бы пропущенный пакет.

    код

  3. Расхождение при инвентаризации не меняет остаток автоматически, а уходит на разбор человеку.

    код

Подробно

Задача

Приложение для персонала склада: приёмка, размещение, отбор, инвентаризация. Парк устройств смешанный: защищённые терминалы с аппаратным сканером и обычные телефоны.

Что сделано

Серверная часть на Kotlin и Ktor: регистрация устройств, взаимный TLS, синхронизация, инвентаризация. Она была развёрнута и проверена вживую. Android-клиент остался на стадии каркаса: сборка, граф модулей и документация архитектуры, кода фич в нём нет.

Без Google-сервисов

Архитектура клиента рассчитана на раздачу через MDM, а не через магазин, поэтому без зависимости от Google-сервисов. Подлинность устройства сервер проверяет аттестацией ключа Keystore вместо Play Integrity, связь идёт по взаимному TLS.

Общий контракт

Модуль контракта компилируется и в клиент, и в сервер. Версии Kotlin и библиотеки сериализации меняются только одновременно в обоих репозиториях: расхождение даёт не ошибку сборки, а битую десериализацию во время работы.

Синхронизация

Устройство нумерует свои пакеты. Если сервер отказал по лимиту запросов, результатов в ответе нет, и счётчик сдвигать нельзя: иначе сервер вечно ждёт пропущенный пакет. Инвентаризация при расхождении остаток не меняет, расхождение паркуется на разбор человеком.

Статус

Проект законсервирован в сентябре 2026. Всё нужное для возврата сохранено.

Все проекты