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

Разработка поиска по QR-коду в мобильном приложении Мы часто сталкиваемся с задачей интеграции сканера QR-кодов в готовое приложение. Казалось бы, библиотек много, но каждая платформа диктует свои правила: на iOS строгие ограничения App Store, на Android — фрагментация устройств и версий. Результ

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка поиска по QR-коду в мобильном приложении
Простой
от 1 дня до 3 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

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

Мы часто сталкиваемся с задачей интеграции сканера QR-кодов в готовое приложение. Казалось бы, библиотек много, но каждая платформа диктует свои правила: на iOS строгие ограничения App Store, на Android — фрагментация устройств и версий. Результат — приложение либо зависает на сканировании, либо неправильно парсит данные. За 5+ лет мы реализовали QR-сканеры в 20+ проектах: от ритейла до медицины, на Swift, Kotlin и Flutter. В этой статье разбираемся, как сделать быстрый, надёжный и модульный QR-сканер с учётом всех нюансов: от выбора фреймворка (Vision vs ML Kit) до корректной маршрутизации по типу данных.

Согласно документации Apple, для использования DataScannerViewController необходимо настроить entitlement и добавить NSCameraUsageDescription. На Android в AndroidManifest.xml требуется разрешение CAMERA. Пропуск этих шагов — одна из самых частых причин падений при первом запуске.

Как быстро реализовать сканирование QR-кода?

Сканирование — лишь первый шаг. iOS 16+ использует DataScannerViewController — одна строка настройки:

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

isHighlightingEnabled: true добавляет визуальную подсветку — пользователи это ценят. Для iOS 14–15 потребуется Vision framework: VNDetectBarcodesRequest для фото, AVCaptureMetadataOutput для live видео. На Android используем ML Kit: BarcodeScanning.getClient() с BarcodeScannerOptions. Указываем FORMAT_QR_CODE для оптимизации скорости — если нужны все форматы, фильтр убираем, но скорость чуть падает.

ML Kit на Android обрабатывает QR в 3–5 раз быстрее, чем ZXing, и в 2 раза быстрее Vision на iOS на средних устройствах (данные наших тестов на 10 моделях).

Сравнение подходов iOS и Android

Параметр iOS Android
Основной фреймворк DataScannerViewController (iOS 16+) / Vision ML Kit BarcodeScanning
Дополнительная настройка Provisioning profile, NSCameraUsageDescription AndroidManifest.xml запрос камеры
Работа с галереей PHPicker + Vision GetContent + ML Kit
Определение типа Вручную по строке Встроенное через Barcode.valueType
Производительность Мгновенно (системное) 50–200 ms на средних устройствах

Почему парсинг содержимого важнее самого сканирования?

QR-код — это строка. Как с ней поступить — определяет UX.

  • Начинается с 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 возвращает сырую строку — тип придётся определять самостоятельно. Для Wi-Fi на iOS требуется com.apple.developer.networking.HotspotConfiguration entitlement — это скрытая сложность.

Типы QR-данных и их обработка

Тип Пример содержимого iOS Android
URL https://example.com SFSafariViewController CustomTabs
Wi-Fi WIFI:S:... NEHotspotConfiguration WifiNetworkSuggestion
vCard BEGIN:VCARD... CNContactVCardSerialization VCardReader
Кастомный Любой формат Ваша логика Ваша логика

Работа с галереей: обязательный минимум

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

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

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

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

Процесс разработки под ключ

  1. Анализ — изучаем ваше приложение, целевую аудиторию, сценарии использования QR.
  2. Проектирование — выбираем стек (ML Kit vs Vision, реализация маршрутизации), готовим прототип с одним типом кода.
  3. Реализация — интеграция сканера, парсинг, обработка галереи, deep linking.
  4. Тестирование — на реальных устройствах с разными версиями ОС, проверка всех форматов QR.
  5. Деплой — публикация в App Store / Google Play, настройка provisioning profiles.

Что входит в работу

  • Исходный код модуля сканирования на Swift / Kotlin / Dart с документированием.
  • Интеграция с существующим навигатором приложения.
  • Обработка всех распространённых типов QR (URL, Wi-Fi, vCard, кастомные).
  • Поддержка галереи.
  • Тестирование на 5+ физических устройствах.
  • Помощь с публикацией (App Store Connect, Google Play Console).

Сроки ориентировочно

От 3 до 10 рабочих дней в зависимости от сложности маршрутизации и необходимости deep linking. Свяжитесь, чтобы мы оценили ваш проект и рассчитали точную стоимость.

Типичные ошибки при разработке QR-сканера
  • Необработка разрешения камеры во время исполнения — приложение падает на iOS, если пользователь отклонил запрос.
  • Синхронная обработка изображения на UI потоке — лаги при сканировании из галереи.
  • Игнорирование ATT (App Tracking Transparency) для iOS — бан от App Store.
  • Отсутствие fallback для старых версий ОС — устаревшие библиотеки не обновляются.

Наш опыт

За 5+ лет мы реализовали QR-сканеры в 20+ приложениях: от ритейла до медицины. Работали с Apple‑сертификатами, ProGuard/R8 shrink, Firebase App Distribution. Есть опыт прохождения ревью App Store с кастомными entitlement. Если у вас специфический кейс — пишите, обсудим.

Экономия времени пользователей на ручном вводе данных составляет до 80% при использовании QR-сканера. Закажите разработку модуля QR-сканера под ключ. Получите консультацию по интеграции и оценку сроков — свяжитесь с нами.