Разработка мобильного приложения для проведения инвентаризации

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка мобильного приложения для проведения инвентаризации
Средняя
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    760
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    646
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1056
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    878
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    450

Разработка мобильного приложения для проведения инвентаризации

Инвентаризация в традиционном понимании — это распечатанные бланки, ручная пересчёт и сверка с 1С вечером. Мобильное приложение с поддержкой сканирования меняет процесс: сотрудник сканирует штрихкод или QR, приложение сразу сопоставляет с учётной системой, расхождения фиксируются в момент сканирования. Задача звучит прямолинейно, но детали реализации определяют, насколько быстро проходит реальная инвентаризация.

Сканирование: встроенная камера vs аппаратный сканер

Встроенная камера — самое доступное решение. ML Kit Barcode Scanning (Android/iOS) через CameraX или AVFoundation декодирует EAN-13, EAN-8, Code 128, Code 39, QR и ещё десяток форматов. Работает без сети. Задержка распознавания на современных телефонах — 100-200 мс.

Но есть кейсы, где камера не тянет: склад с плохим освещением, повреждённые этикетки, требование сканировать не поднимая товар (дальнее считывание). Здесь нужны bluetooth-сканеры (Zebra CS60, Honeywell 1950g, Newland BS80) или промышленные ТСД (Zebra TC21/TC26, Honeywell CT30). Они подключаются как HID-клавиатура или через SDK производителя.

// Android: интеграция Zebra DataWedge через Intent
class ZebraDataWedgeManager(private val context: Context) {
    private val DATAWEDGE_ACTION = "com.symbol.datawedge.api.ACTION"
    private val SCAN_ACTION = "com.symbol.datawedge.data_string"

    fun registerScanReceiver(onScan: (String) -> Unit): BroadcastReceiver {
        val receiver = object : BroadcastReceiver() {
            override fun onReceive(context: Context, intent: Intent) {
                if (intent.action == SCAN_ACTION) {
                    val barcode = intent.getStringExtra("com.symbol.datawedge.data_string") ?: return
                    onScan(barcode)
                }
            }
        }
        context.registerReceiver(receiver, IntentFilter(SCAN_ACTION))
        return receiver
    }
}

Honeywell ТСД используют аналогичный broadcast-механизм через DataCollection SDK. Для универсального решения — абстракция BarcodeScanner с реализациями: CameraBarcodeScanner, ZebraBarcodeScanner, HoneywellBarcodeScanner. Конфигурация выбирается при запуске по типу устройства.

Архитектура: офлайн-first обязательна

Склад — это зона с нестабильным Wi-Fi. Некоторые зоны вообще без покрытия. Приложение должно работать полностью офлайн: загрузить список инвентаризации перед началом, фиксировать сканирования локально, синхронизировать при восстановлении соединения.

@Entity(tableName = "inventory_items")
data class InventoryItem(
    @PrimaryKey val sku: String,
    val name: String,
    val expectedQuantity: Int,
    val unit: String,
    val location: String,
)

@Entity(tableName = "scan_records")
data class ScanRecord(
    @PrimaryKey(autoGenerate = true) val id: Long = 0,
    val sku: String,
    val scannedQuantity: Int,
    val scannedAt: Long = System.currentTimeMillis(),
    val syncStatus: SyncStatus = SyncStatus.PENDING,
    val userId: String,
)

enum class SyncStatus { PENDING, SYNCED, CONFLICT }

WorkManager запускает синхронизацию при появлении сети — NetworkType.CONNECTED constraint. При конфликте (другой сотрудник отсканировал тот же SKU) — сервер возвращает конфликт, приложение показывает оба значения и просит разрешить вручную.

Поиск по серийному номеру и ручной ввод

Не у каждого товара есть читаемый штрихкод. Ручной ввод SKU с автодополнением из локальной базы — обязательная функция. Список SKU загружается заранее в FTS4/FTS5 таблицу Room для быстрого полнотекстового поиска по наименованию.

Серийные номера — отдельная история. Позиция может требовать сканирования каждого экземпляра поштучно (ноутбуки, принтеры, инструменты). Режим «серийный учёт»: приложение ждёт N сканирований серийных номеров для одной позиции, показывает прогресс 3/10 серийных номеров введено.

Отчёт о расхождениях

После завершения инвентаризации — отчёт о расхождениях: какие позиции не нашли, какие излишки, где факт не совпал с планом. Формируется локально, отправляется на сервер или экспортируется в PDF через PdfDocument API (Android) / PDFKit (iOS).

Интеграция с 1С через REST API (HTTP-сервис 1С) или через промежуточный сервис. Формат обмена — JSON или XML по договорённости с 1С-разработчиком. Загрузка документа инвентаризации обратно в 1С — стандартный финальный шаг.

Разработка мобильного приложения для инвентаризации с офлайн-работой, Camera ML Kit и экспортом отчётов: 5-7 недель. С поддержкой ТСД Zebra/Honeywell, серийным учётом и двусторонней интеграцией с 1С: 10-14 недель. Стоимость рассчитывается индивидуально.