Розробка сканування за 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
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Розробка сканування за QR-кодом у мобільному додатку

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

Згідно з документацією Apple Developer, для використання DataScannerViewController необхідно налаштувати entitlement та додати NSCameraUsageDescription. На Android в AndroidManifest.xml потрібен дозвіл CAMERA. Пропуск цих кроків — одна з найчастіших причин падінь при першому запуску. Ми гарантуємо сумісність з iOS 14+ та Android 8+.

Як швидко реалізувати сканування 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 моделях). Загалом ML Kit краще за ZXing у 3-5 разів за швидкістю, а DataScannerViewController кращий за Vision для iOS 16+.

Порівняння підходів 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-код із фото, а не лише сканувати з камери. 95% користувачів віддають перевагу додаткам зі сканером QR. Реалізація:

iOS: PHPickerViewController → отримуємо UIImageVNDetectBarcodesRequest на CIImage. Працює у фоновому потоці через perform. Час сканування — 0.2 секунди.

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. Середня економія на ручному введенні даних становить $1000 на місяць для бізнесу з 10 співробітниками. Вартість розробки модуля — від $500 до $1500 в залежності від складності. Зв'яжіться, щоб ми оцінили ваш проєкт і розрахували точну вартість.

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

Наш досвід

За 5+ років ми реалізували QR-сканери в 20+ додатках: від ритейлу до медицини. Працювали з Apple‑сертифікатами, ProGuard/R8 shrink, Firebase App Distribution. Є досвід проходження рев'ю App Store з кастомними entitlement. Наші розробники мають сертифікації Apple та Google. Ми надаємо гарантію на код протягом 6 місяців. Якщо у вас специфічний кейс — пишіть, обговоримо.

Економія часу користувачів на ручному введенні даних становить до 80% при використанні QR-сканера. Замовте розробку модуля QR-сканера під ключ. Отримайте консультацію щодо інтеграції та оцінку термінів — зв'яжіться з нами.