Разработка поиска по штрих-коду в мобильном приложении

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
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Разработка поиска по штрих-коду в мобильном приложении

Поиск по штрих-коду — это не просто «отсканировал и нашёл». Это пайплайн: захват изображения → распознавание → запрос к бэкенду или локальной базе → отображение результата. Каждый шаг может быть узким местом, и чаще всего проблемы возникают не в сканировании, а в том, что происходит после.

Платформенные возможности для распознавания

iOS: AVFoundation с AVMetadataObjectTypeEAN13Code, UPCA, QRCode и ещё десятком типов. Либо VisionKitVNDetectBarcodesRequest с VNBarcodeObservation, который удобнее для обработки статичных изображений из галереи. DataScannerViewController (iOS 16+) — самый простой путь: один класс, встроенный UI, поддержка всех типов из коробки.

Android: ML Kit Barcode Scanning (com.google.mlkit:barcode-scanning) — работает офлайн, поддерживает 1D и 2D коды. Либо ZXing — проверенная библиотека, но значительно медленнее ML Kit на слабых устройствах.

Выбор зависит от минимальной версии OS и требований к офлайн-работе. ML Kit на Android требует Google Play Services; на устройствах без GMS (Huawei) нужен автономный bundled model.

Что действительно сложно: поиск, а не сканирование

Само сканирование — несколько строк кода. Сложность в архитектуре поиска:

Дедупликация результатов. Камера распознаёт один и тот же штрих-код десятки раз в секунду. Без дебаунса запрос уйдёт на сервер 50 раз до того, как пользователь уберёт камеру от полки. Решение: throttle на последний распознанный код с задержкой 800ms-1s.

Офлайн-поиск. Если каталог товаров доступен локально, поиск по SQLite или Room (Android) / CoreData (iOS) по полю barcode с индексом работает мгновенно. Без индекса на таблице из 100k товаров — 300-500ms даже на флагмане.

Неизвестный код. Что показывать, если штрих-код не найден в базе? Fallback на Open Food Facts API, GS1 lookup, или просто сообщение? Это продуктовое решение, но его нужно заложить в архитектуру заранее — иначе переделывать flow.

Пример: поиск с дебаунсом на iOS

private var lastScannedCode: String?
private var searchTimer: Timer?

func handleScannedCode(_ code: String) {
    guard code != lastScannedCode else { return }
    lastScannedCode = code
    searchTimer?.invalidate()
    searchTimer = Timer.scheduledTimer(withTimeInterval: 0.8, repeats: false) { [weak self] _ in
        self?.performSearch(barcode: code)
    }
}

Типы штрих-кодов и их обработка

Тип Применение Примечание
EAN-13 / UPC-A Розничные товары Стандарт GS1
Code 128 Логистика, склад Произвольный текст
QR Code Ссылки, платежи До 4096 байт
Data Matrix Медикаменты Маленький размер
ITF-14 Групповая упаковка Только цифры

Если в техзадании не указаны конкретные типы — уточняем заранее. Включать поддержку всех типов без необходимости замедляет распознавание.

Срок разработки: 1-3 дня. Стоимость рассчитывается индивидуально после уточнения типов кодов и архитектуры поиска.