Реалізація генерації штрих-кодів у мобільному додатку

Реалізація генерації штрих-кодів у мобільному додатку Склад просить друкувати етикетки прямо з телефона, роздріб — генерувати QR-чеки офлайн, логістика — створювати Code128 для накладних. Ми справлялися з такими завданнями десятки разів за багато років роботи. Нещодавно клієнт із рітейлу попросив

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація генерації штрих-кодів у мобільному додатку
Простий
~1 день

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

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    898
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1219
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Реалізація генерації штрих-кодів у мобільному додатку

Склад просить друкувати етикетки прямо з телефона, роздріб — генерувати QR-чеки офлайн, логістика — створювати Code128 для накладних. Ми справлялися з такими завданнями десятки разів за багато років роботи. Нещодавно клієнт із рітейлу попросив переписати генерацію: їхня попередня бібліотека не підтримувала Code128 з кирилицею, що призводило до нечитабельних штрих-кодів на половині партій. Помилка на етапі вибору бібліотеки перетворює місяці роботи на переписування модуля. Один клієнт заощадив $1.4k–1.9kів на передруку бракованих етикеток після впровадження нашого рішення. Інший — скоротив витрати на логістику на $720–1kів на місяць за рахунок автоматизації генерації кодів для всіх товарів. У цій статті розповімо, які бібліотеки та підходи реально працюють.

Ми використовуємо Swift 5.9, Kotlin 1.9 та Jetpack Compose для сучасних UI. Для старих проектів — UIKit та View System. Завжди дотримуємося Apple Human Interface Guidelines і Material Design.

Які формати штрих-кодів необхідні?

Лінійні коди — EAN-13, UPC-A, Code128, Code39 — відрізняються алгоритмами контрольної суми. EAN-13 обов'язковий для рітейлу, а Code128 — для кур'єрських служб. Двовимірні — QR та Data Matrix.

Порівняння бібліотек

Формат iOS Android Flutter
EAN-13 ZXingObjC ZXing barcode_widget
Code128 CoreImage (нативно) ZXing barcode_widget
QR CoreImage ZXing barcode_widget
Data Matrix CoreImage ZXing barcode_widget

ZXing — стандарт для Android, обгортка для iOS. CoreImage швидше, але не вміє EAN. Для Flutter barcode_widget малює через Canvas без нативного коду.

Типові помилки та їхні наслідки

  • Розмиття масштабування: на iOS CGAffineTransform без інтерполяції, на Android Bitmap.createScaledBitmap з фільтром false. Ігнорування цього правила ламає сканування на 30% пристроїв.
  • Контрастність: явно задаємо fgColor/bgColor. Прозорий фон QR не читається при поганому світлі.
  • Мінімальний розмір QR з корекцією M — 150×150 dp. Ми гарантуємо працездатність на пристроях з 8 Мп камерою.

Як ми реалізуємо генерацію на льоту?

Штрих-коди частіше динамічні: String.format("ORDER-%06d", orderId) → кодування → рендер. Для масової генерації використовуємо фонові потоки (DispatchQueue.global() / Executors.newFixedThreadPool(4)). Виводимо прогрес.

Порівняння продуктивності при генерації 1000 Code128

Бібліотека Час (мс) Чіткість
ZXing (Android) 340 Висока
CoreImage (iOS) 980 Середня
barcode_widget (Flutter) 720 Висока

ZXing генерує Code128 в 3 рази швидше CoreImage при об'ємі 1000+ кодів. Тому для пакетів вибираємо ZXing.

Збереження та друк

Генеруємо Bitmap/UIImage, зберігаємо через FileProvider або UIActivityViewController. Для Bluetooth-принтерів (Zebra ZPL) передаємо ZPL-рядок — чіткість на будь-якому DPI. Важливість цього підходу в тому, що растрові зображення на термопринтерах з низьким DPI перетворюються на пляму.

Чому вибір бібліотеки критичний?

Згідно з документацією Apple, CoreImage підтримує лише деякі формати. Для EAN-13 доводиться використовувати ZXingObjC. На Android ZXing — універсальне рішення, але потребує налаштування ProGuard/R8 для запобігання обфускації класів. Flutter-пакет barcode_widget малює векторні штрих-коди, що дає чіткість на будь-якому масштабі, але поступається швидкістю нативній генерації.

Кирилиця в Code128 — окрема проблема. Кодування Code128 використовує таблиці символів A, B, C. Кирилиця не входить в жодну з них — необхідно перекодувати текст в Latin-1 або використовувати Unicode escape. Бібліотека ZXing автоматично вибирає відповідну таблицю, але для Cyrillic даних потрібен ручний флаг. Ми завжди тестуємо на реальних пристроях з російськими штрих-кодами.

Що входить у роботу

  1. Аналіз форматів і вимог до точності.
  2. Вибір бібліотеки з урахуванням платформи та офлайн-режиму.
  3. Реалізація модуля (кодування, рендер, експорт).
  4. Тестування на 5+ реальних пристроях.
  5. Інтеграція з принтером або пакетним друком.
  6. Документація та код-рев'ю.
  7. Підтримка 2 тижні після здачі.

Строки

Реалізація 2-3 форматів з екраном перегляду та шерінгом — 1 день. З інтеграцією принтера — 2-3 дні. Зв'яжіться з нами для точної оцінки — вартість розраховується індивідуально.

Чому варто довіритися нам?

Багаторічна мобільна розробка, 50+ проектів з інтеграцією штрих-кодів. Відповідність App Store Review Guidelines Section 4.2 та 5.1. Сертифіковані розробники. Замовте розробку модуля генерації — ми вирішимо задачу з першого разу.