1. Home
  2. Blog
  3. Mobile App Development
  4. How to Build a Mobile App With Barcode Scanning

How to Build a Mobile App With Barcode Scanning

Business colleagues working in an office — an article about mobile app with barcode scanning

What barcode scanning in a mobile app actually involves

Barcode scanning in a mobile app means the app reads a printed code, usually through the phone camera, converts it into a text value such as a 13-digit product number, and looks that value up in a database to identify the item and trigger an action: add it to a sale, confirm a delivery, record a count or show product details. The scan itself is the easy part. The product data and the workflow around each scan are the real project. It helps to think in three layers:

  • Capture layer: the camera plus a decoding library, or a hardware scanner that sends the code as keystrokes.
  • Data layer: a product master (code, name, variant, cost, selling price, supplier, batch and expiry where relevant) and stock levels per location.
  • Workflow layer: what a scan does in context. Receiving goods, counting a shelf, selling at the till, transferring stock between branches and auditing an asset are different workflows that begin with the same scan.

A one-dimensional barcode stores a short identifier, which is why manufacturers print it on packaging. A QR code stores more, including URLs, and suits payments, tickets and menus. Product identification in retail and distribution runs on barcodes because they are already on the goods.

Which Nigerian businesses benefit from barcode scanning?

The businesses that benefit most from barcode scanning are those with more than a few hundred stock lines, more than one person touching stock, or more than one location. Below that threshold, a searchable product list is usually enough and scanning adds friction.

Business typeWhat gets scannedWhat the scan does
Supermarket or retail chainEAN-13 on packaged goodsTill sales, receiving, shelf counts
Pharmacy or pharma distributorEAN-13; GS1 Data Matrix with batch and expiryReceiving, expiry control, dispensing
FMCG wholesaler or distributorITF-14 on cartons, EAN-13 on unitsReceiving, picking, van sales
ManufacturerInternal Code 128 labelsRaw materials, finished goods, dispatch
Courier or logistics firmCode 128 waybill labelsPickup, hub sorting, proof of delivery
Schools, hospitals, officesAsset tagsAsset register and audits
Phone and electronics dealersInternal SKU labels, IMEI barcodesStock control, warranty tracking

A single-owner boutique with 80 items and one phone gets more value from a clean product list and a WhatsApp catalogue than from a scanning workflow. A distributor with three warehouses and six vans cannot run properly without one.

Barcode formats you will meet in Nigeria

The barcode formats a Nigerian business app is most likely to encounter are EAN-13 on imported and larger-brand packaged goods, Code 128 for internally printed labels, ITF-14 on outer cartons, and GS1 Data Matrix on some pharmaceutical packs that carry batch numbers and expiry dates. Many locally produced goods carry no barcode at all, so the app must let staff create and print internal codes.

  • EAN-13: the 13-digit code on most packaged consumer goods; UPC-A is its 12-digit North American cousin on imported items.
  • ITF-14: the wide-bar code on shipping cartons, encoding the carton-level product number.
  • Code 128: flexible alphanumeric format, ideal for internal SKU labels, waybills and asset tags.
  • GS1 Data Matrix: a small two-dimensional code holding product number, batch, expiry and serial in one symbol, increasingly seen on pharmaceuticals.

Products without barcodes. Goods from local manufacturers, market suppliers and bulk items you repackage often arrive unlabelled. Your app needs a workflow for this from day one: create the product, generate an internal Code 128 label, print it on a thermal label printer and stick it on. For loose goods sold by measure (rice, beans, cement), use short numeric codes staff can type. If you manufacture goods for modern retail chains, GS1 Nigeria is the local member organisation that issues globally recognised barcodes; verify its current requirements and fees directly. The practical rule: let the decoder read all common formats (libraries do this by default), but validate every scan against your own product master.

Phone camera or dedicated hardware scanner?

The phone camera is sufficient for low to medium scan volumes, such as a shop receiving deliveries, a van sales rep or a monthly stock count. A hardware scanner, whether a Bluetooth handheld paired to the phone or a rugged Android device with a built-in scan engine, wins when staff scan hundreds of items an hour, work in poor light, handle faded labels or need one hand free.

FactorPhone cameraBluetooth scanner + phoneRugged handheld
Extra hardware costNoneModest, priced in USDSignificant, priced in USD
Scan speed at volumeAdequateFastFastest
Poor light, damaged labelsWeakerGoodBest
Works with your appYes, directlyYes, as keyboard inputYes, if built for it
Battery life on a shiftCamera drains batteryGoodDesigned for it
Best forVans, small shops, auditsWarehouses, busy tillsLarge warehouses, courier hubs

The sensible design is a hybrid: scan with the camera by default and also accept keyboard-wedge input from a paired Bluetooth scanner, which sends the code followed by an Enter key. This costs little extra in development and lets you add hardware branch by branch once the pilot proves the workflow.

The technical building blocks

Camera permission and the scanning library

The app requests camera permission at runtime on Android and declares a camera usage description on iOS. For decoding, Google ML Kit's barcode scanning runs entirely on the device, works offline and supports both platforms. In Flutter, packages such as mobile_scanner wrap it; in React Native, the vision-camera library provides a code scanner; native teams use ML Kit on Android and Apple's Vision framework on iOS. Commercial SDKs from vendors such as Scandit or Dynamsoft handle very high volumes and badly damaged labels, but carry USD licence fees that exchange-rate movements will affect.

Product lookup and the on-device database

A scan must resolve instantly, so the product master lives on the phone in a local database (SQLite, Isar, Realm or WatermelonDB, depending on the stack) and syncs with the server in the background. Do not rely on public barcode lookup APIs for Nigerian goods; coverage of local products is patchy and a lookup that needs the network fails exactly where staff are working. Every unknown code needs a graceful path: "Product not found. Create it?" with fields for name, category, price and a photo.

Offline-first capture and sync

Each scan is stored locally with the code, quantity, workflow, user, device, location and timestamp, then queued for sync. The server applies the business rules: counts reconcile as a session, receiving posts to stock, sales reduce stock. Decide early that the server is authoritative for stock levels and that conflicts are surfaced to a manager rather than silently overwritten.

Scan-to-action workflows

  • Receiving: scan item, enter quantity, capture batch and expiry where relevant, assign a location.
  • Stock count: open a count session, scan shelf by shelf, generate a variance report against system stock.
  • Sale: scan into a cart, apply price, take payment. Gateway integration is covered in the guide to adding payments to a mobile app.
  • Transfer: scan out of one location and into another, pending until the receiving branch confirms.
  • Continuous mode: a scan-beep-scan loop with vibration feedback and a duplicate guard so one label is not counted twice.

Labels, dashboard and integrations

Generate Code 128 labels for unbarcoded goods and print through a Bluetooth thermal printer, with templates editable from the dashboard. Managers need a web dashboard for the product master, stock by location, movements, variance reports, expiry alerts and user management; the guide to building a mobile app with an admin dashboard covers that side. If you already run accounting or POS software, scope the integration at design stage.

What changes when you build for Nigerian conditions

For a Nigerian business, the main differences when building a barcode scanning app are entry-level Android cameras, unreliable network in warehouses and markets, faded or taped-over labels, shared devices across shifts, and a large share of products with no barcode at all. Each changes a design decision.

  • Camera quality. Entry-level Android phones often have slow autofocus and struggle in dim light. Build tap-to-focus, a torch toggle and a large scan window, and test on the cheapest phone your staff actually use.
  • Lighting and label condition. Warehouses lit by a single bulb on generator power and labels that have survived a rainy season reduce scan success. Keep manual code entry one tap away and log how often it is used; a high rate points to better labels or a hardware scanner.
  • Connectivity and data cost. Scanning must never depend on the network. Sync deltas rather than full product lists and compress product photos before upload.
  • Power. Stop the camera preview the moment a scan is captured so the phone lasts a shift.
  • Multiple locations and vans. A rep scanning in Ibadan and a warehouse in Lagos both write to the same ledger. Location-aware sync and clear ownership rules prevent phantom stock.
  • Shared devices and trust. One phone used across three shifts needs a per-user PIN login, a scan audit trail and permission levels. Shrinkage is often internal, and an audit trail showing who scanned what, when and where is the feature managers ask for most. The guide to building a mobile app with multiple user roles covers permission design.
  • Unbarcoded goods. Label printing is not a phase-two nicety; without it, the share of products you can scan may be too small for the workflow to hold.

How to build a barcode scanning app: step by step

  1. Map the workflows. List every point where a scan should happen, who performs it, where, and whether it must work offline. Receiving and stock counts usually come first.
  2. Audit your products. Sample your stock and record what share already carries a scannable barcode. That number decides how much labelling work you face.
  3. Clean the product master. Consolidate spreadsheets into one list with unique codes, consistent names, variants, units and prices. Unglamorous, and decisive.
  4. Choose devices. Start with staff phones plus one or two Bluetooth scanners for the busiest station; add rugged handhelds only if the pilot proves the need.
  5. Choose the stack. A cross-platform app in Flutter or React Native with ML Kit for decoding, a local database for offline work, and a backend with a REST API and web dashboard. The comparison of React Native versus Flutter for Nigerian businesses helps here.
  6. Build the scanning core first and test it on your worst phone in your worst-lit location.
  7. Build receiving and stock count, then transfers and sales. Each workflow should be usable on its own.
  8. Add label generation and printing for unbarcoded goods.
  9. Build the dashboard and reports: stock by location, movements, variance, expiry alerts, user activity.
  10. Pilot in one branch for two to four weeks. Measure scan success rate, manual-entry rate and count variance, then fix what the pilot exposes.
  11. Roll out, train and maintain. Write a one-page device policy, train staff with real goods, and budget for maintenance from month one.

Example (hypothetical): a pharmaceutical distributor in Onitsha

Example (hypothetical): a pharmaceutical distributor supplies pharmacies across Anambra, Delta and Enugu from warehouses in Onitsha and Asaba, with six vans on weekly rounds. It carries about 1,800 stock lines, and roughly a third, mostly from local manufacturers, arrive without barcodes. Its problems are expired stock discovered too late, monthly counts that never reconcile, and no reliable view of what is on each van. The build: a Flutter app using ML Kit with an on-device SQLite product master; receiving that captures batch and expiry per carton; a van sales module that works offline all day and syncs in the evening; a stock count mode with variance reports; Code 128 label printing for unbarcoded lines; and a web dashboard with expiry alerts at 90, 60 and 30 days. Warehouse staff use Bluetooth scanners; van reps use their phone cameras. What the business would measure after the pilot: scan success rate on van rounds, how much stock is flagged before expiry rather than after, and the gap between counted and system stock at month end. This scope sits in the medium band of the cost table below, mainly because of the offline van module and the expiry logic.

How much does a barcode scanning app cost in Nigeria?

Adding barcode scanning to an app is inexpensive relative to the workflows around it. For a Nigerian business in 2026, scanning plus product lookup added to an existing app is indicatively ₦300,000–₦1,500,000, a simple single-location stock app is ₦1,500,000–₦5,000,000, and a multi-location inventory system with offline sync, label printing and a dashboard is ₦5,000,000–₦15,000,000. All figures are indicative; actual quotes vary with scope, vendor and exchange rate.

ScopeIndicative 2026 rangeWhat is typically included
Scanning added to an existing app₦300,000–₦1,500,000Camera scanning, product lookup, one workflow
Simple stock-count and receiving app (one location)₦1,500,000–₦5,000,000Product master, offline capture, basic reports
Multi-location inventory app₦5,000,000–₦15,000,000Offline sync, transfers, label printing, dashboard, user roles
Full distribution system₦15,000,000+Van sales, POS, batch and expiry, accounting integration

Indicative 2026 ranges; actual quotes vary with scope, vendor and exchange rate. Recurring costs to budget separately: VPS or cloud hosting for the backend (roughly ₦150,000–₦800,000+ per year); maintenance and support at typically 15–25% of the build cost per year; scanner hardware, label printers and label rolls, which are imported and priced in USD-equivalent; commercial SDK licences only if you need one; and store accounts (Apple Developer Program has historically been US$99 per year and Google Play registration a one-time US$25; verify current fees). What drives cost up: number of workflows, offline sync complexity, batch and expiry tracking, number of locations, integration with existing accounting or POS software, and hardware scanner support. What keeps it down: a clean product list before development starts, camera-only scanning for the pilot, and launching with receiving and stock counts before adding sales. When comparing quotations, give each vendor the same written scope and ask whether offline capture, label printing, the dashboard and user roles are included, and who supplies and configures devices.

Mistakes to avoid

  • Starting development before the product master is clean. A code that matches three products, or none, produces worse data than the exercise book you replaced.
  • Making product lookup depend on the network. Warehouses, markets and van routes lose signal constantly. A scan that spins and fails is abandoned within a week.
  • Buying rugged scanners before piloting with phones. The pilot may show the camera is enough, or that the real problem is label quality.
  • Ignoring unbarcoded goods. If 40% of your products cannot be scanned, staff revert to the old process for everything.
  • No duplicate guard in continuous scanning. Double-counted cartons quietly inflate stock and mask shrinkage.
  • Skipping the audit trail. Without who-scanned-what, the system cannot answer the questions managers ask when stock goes missing.
  • Building the till before receiving and counts. Sales scanning is only accurate if the stock received and counted is accurate first.

Conclusion

A barcode scanning app is really an inventory data project with a camera on the front. Decide the workflows first, audit how many of your products actually carry a barcode, and clean the product master before anyone writes code. Build scanning to work offline on the cheapest phone your staff carry, keep manual entry and label printing close at hand, and pilot receiving and stock counts in one location before adding sales and transfers. The feature itself is affordable; the discipline around the data is what makes it pay. If you are planning an inventory, retail or distribution app with barcode scanning and want a realistic scope for your product range and locations, Linestech builds mobile apps and their admin backends for Nigerian businesses and can review your requirements before you commit to a build.

Frequently asked questions

Can a mobile app scan barcodes without internet?

Yes. On-device libraries such as Google ML Kit decode barcodes with no connection; the app only needs the internet to sync scans and product updates. For that to work, the product master must be stored on the phone and scans must be queued locally. Ask your developer to demonstrate a full receiving session in flight mode.

Which barcode scanning library should my developer use?

For most Nigerian business apps, Google ML Kit's barcode scanning (wrapped by mobile_scanner in Flutter or accessed through vision-camera in React Native) is the practical default: free, on-device and cross-platform. Consider a commercial SDK such as Scandit or Dynamsoft only for very high volumes or badly damaged labels, and only if you can absorb a USD licence fee.

Can the app read expiry dates and batch numbers from packaging?

If the pack carries a GS1 Data Matrix or GS1-128 code, batch and expiry are encoded and the app parses them automatically. Many packs sold in Nigeria carry only a plain EAN-13, so staff enter batch and expiry at receiving. Reading printed expiry text with OCR is possible but unreliable on poor prints; treat it as an assist, not the source of truth.

Do I need to register barcodes for my own products?

Only if you sell through retailers that require GS1 barcodes. For internal use, your app can generate Code 128 labels with your own numbering. If you manufacture goods for modern retail, GS1 Nigeria issues globally unique codes; check its current membership requirements and fees directly.

Will barcode scanning work on cheap Android phones?

Generally yes, with allowances: tap-to-focus, a torch toggle, a large scan window and manual entry as a fallback. Entry-level phones with fixed-focus cameras scan more slowly and fail more often on small or damaged labels. Test on the phones your staff actually use, and consider a Bluetooth scanner for the busiest station.

Can the scanning app work with my existing POS or accounting software?

Usually, if the existing software exposes an API or supports file import and export. The integration is scoped as its own work item: product master sync, stock movements and sales posting. Ask your current software vendor what integration options exist before your developer quotes, because a system with no API limits you to scheduled file exchanges.

Sources and further reading

Figures, platform rules and regulations change. These are the primary references behind this article and the places to check before you act on it.