---
title: Три мобильных приложения для агрохимического производителя
url: https://evapps.ru/case/mobilnye-prilozheniya-dlya-agrohimicheskogo-proizvoditelya/
description: Разработка и поддержка трёх мобильных приложений на Xamarin: проверка подлинности продукции по DataMatrix, складской учёт на ТСД, выдача и контроль товара.
industry:
  - Промышленность
services:
  - Мобильная разработка
  - Кроссплатформенная разработка
technologies:
  - Xamarin
solutions: []
---

# Три мобильных приложения для агрохимического производителя

> Крупный производитель агрохимической продукции с собственными и партнёрскими складами. Продукцию маркируют кодами DataMatrix, и производитель борется с контрафактом на рынке.

## О проекте

С 2018 года мы разрабатываем и поддерживаем для заказчика три мобильных приложения. Сейчас наша команда отвечает за их развитие целиком, вплоть до архитектурных решений, а бэкенд и серверную бизнес-логику ведёт заказчик.

Первое приложение — для покупателей: оно сканирует код DataMatrix на упаковке и отправляет данные на сервер производителя, а тот отвечает, подлинный ли товар. По желанию пользователь передаёт геолокацию, и производитель видит, в каких регионах появляется контрафакт. Второе приложение ведёт товародвижение на складах с документами-основаниями и инвентаризацией. Третье — для выдачи и возврата продукции на местах и для контроля продукции на производстве.

Заказчику нужны были приложения под Android и iOS. Мы предложили кроссплатформенную разработку на Xamarin, чтобы вести обе платформы силами одного-двух разработчиков.

## Задачи проекта

1. Дать покупателям быстрый способ проверить подлинность продукции по коду на упаковке
2. Перенести складской документооборот в мобильное приложение для терминалов сбора данных
3. Вести учёт выдачи и возврата продукции на местах с полной историей в приложении
4. Поддерживать все три приложения и обновлять их технологическую базу

## Как мы это сделали

**1. Проверка подлинности.** Сделали приложение для iOS и Android, которое сканирует код DataMatrix, передаёт данные и геолокацию на сервер производителя и показывает результат проверки со ссылками на ресурсы производителя.

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

**3. Выдача и контроль продукции.** Приложение хранит полную историю выдачи и возврата и все правки, делает резервную копию базы на сервере и восстанавливает её. Если этикетка не читается, данные вводят вручную и прикладывают фото. Отчёты в Excel формируются прямо на устройстве.

**4. Сканирование на любом устройстве.** Поддержали камеру телефона, встроенный сканер терминалов сбора данных и внешние кольцевые сканеры по Bluetooth. Для сканирования камерой написали собственную обёртку над нативными библиотеками.

**5. Обновление технологической базы.** В приложении проверки подлинности обновили архитектуру и покрыли её модульными тестами. Следующий шаг — переход с Xamarin на .NET и рефакторинг архитектуры складского приложения.

## Команда проекта

Мобильный разработчик, Аналитик, Бэкенд-разработчики

## Стек

Xamarin, C#, .NET, Bluetooth

## Как работаем

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

## Что получил клиент

- **3 приложения** — Проверка подлинности, складской учёт, выдача и контроль продукции
- **с 2018** — Разрабатываем и поддерживаем приложения для заказчика
- **2 платформы** — IOS и Android из одной кодовой базы на Xamarin
- **3 способа** — Сканирования: камера телефона, встроенный сканер ТСД и Bluetooth-кольцо
- **Одна кодовая база на две платформы** — Кроссплатформенная разработка позволяет вести приложения для iOS и Android силами одного-двух разработчиков

> В ближайших планах — перевод приложений с Xamarin на .NET, новая архитектура складского приложения и задачи его десятой версии.
