A cross-platform barcode scanner app with Ionic, Angular and TypeScript
Hardware and web development meet in this project: BarcodeScannerTypeScript is a mobile app — Ionic 7, Angular 17, Capacitor 6, TypeScript — that talks to a Socket Mobile-style BLE barcode/RFID scanner (a D600-class device) over Bluetooth Low Energy, and gives you a complete scanner-control application: scanning, configuration, firmware info, multi-configuration file push, and diagnostics.
The stack, layer by layer
- TypeScript + Angular — the app itself: components per screen, services for BLE and scanner protocol.
- Ionic — the mobile UI framework: one codebase, native-feeling lists, modals and tabs on iOS and Android.
- Capacitor + @capacitor-community/bluetooth-le — the bridge from web code to native Bluetooth. Capacitor is how Ionic apps reach phone hardware.
Screens and what they teach
The README's feature table is effectively a mobile-app curriculum: Home (periodic BLE scan with signal strength), Connect (single/auto scan modes, live data + history), Information (battery, manufacturer, firmware, serial — read from the standard BLE Device Information service), Configure (raw register read/write, factory reset, LEDs, buzzer, vibrator), Multi-conf (push a full INI-style configuration file to the scanner), Debug (on-device log you can copy to the clipboard — build this early, thank yourself later).
One decode path for many data types
Scanners send barcode data, NFC tags and raw protocol frames through the same BLE characteristic. The app routes everything through a single decode pipeline instead of per-type special cases — the same "normalise at the boundary" lesson as the subtitle converter's timestamp handling.
The BLE protocol is documented here
The repository documents the exact services and characteristics (scanner data/control,
configuration, battery 0x180F, device info 0x180A), which makes it
usable as a reference for anyone building against these scanners — with no third-party
analytics and no private configuration baked in.
Repository: github.com/bobhuang1/BarcodeScannerTypeScript