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

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

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка поиска по QR-коду в мобильном приложении
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

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

QR-код содержит структурированные данные: URL, контакт vCard, Wi-Fi credentials, платёжный запрос. Задача поиска по QR-коду — это парсинг содержимого и маршрутизация к нужному действию. Реализация проще, чем со штрих-кодами, но логика обработки контента требует продумывания.

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

iOS 16+: DataScannerViewController — системный сканер, требует одну строку настройки:

let scanner = DataScannerViewController(
    recognizedDataTypes: [.barcode(symbologies: [.qr])],
    qualityLevel: .balanced,
    isHighlightingEnabled: true
)

isHighlightingEnabled: true добавляет визуальную подсветку найденного кода — пользователи это ценят.

iOS 14-15: VNDetectBarcodesRequest из Vision framework для фото, AVCaptureMetadataOutput для live-видео. Чуть больше кода, но логика та же.

Android: ML Kit BarcodeScanning.getClient() с BarcodeScannerOptions — указываем FORMAT_QR_CODE для оптимизации скорости. Если нужны все форматы — убираем фильтр, но это чуть медленнее.

Парсинг и маршрутизация

QR-код — это строка. Что с ней делать — зависит от содержимого:

  • Начинается с http:// или https:// → открываем в SFSafariViewController / CustomTabs
  • WIFI:S:NetworkName;T:WPA;P:password;; → предлагаем подключиться к Wi-Fi (на iOS через NEHotspotConfiguration, на Android через WifiNetworkSuggestion)
  • BEGIN:VCARD → парсим через CNContactVCardSerialization (iOS) или VCardReader (Android)
  • Внутренний формат приложения → кастомная обработка

Регулярки для определения типа работают, но хрупко. Лучше — ML Kit на Android автоматически определяет тип через Barcode.valueType (URL, WIFI, CONTACT_INFO и др.). На iOS VNBarcodeObservation.payloadStringValue возвращает сырую строку — тип придётся определять самостоятельно.

Работа с галереей

Пользователи ожидают, что можно выбрать QR-код из фото в галерее, не только сканировать с камеры. Реализация:

iOS: PHPickerViewController → получаем UIImageVNDetectBarcodesRequest на CIImage. Работает синхронно или через perform в фоновом потоке.

Android: ActivityResultContracts.GetContent("image/*") → получаем Uri → InputImage.fromFilePath(context, uri)BarcodeScanning.getClient().process(inputImage).

Частая ошибка: обработка изображения на main thread. На фото из галереи это блокирует UI на 200-500ms. Всегда — в фоновый поток.

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