Skip to content

A react native barcode reading demo using ZXing, MLKit and Dynamsoft

Notifications You must be signed in to change notification settings

xulihang/react-native-zxing-mlkit-dynamsoft

 
 

Repository files navigation

react-native-zxing-mlkit-dynamsoft

A React Native barcode scanner demo using Vision Camera, ZXing, Google ML Kit and Dynamsoft Barcode Reader.

The demo can read barcodes from cameras or from an album image.

It is mainly used for comparing the different barcode reading SDKs:

If the license for Dynamsoft Barcode Reader expires, you can apply for one here.

Sample APK

Comparison

Barcode Formats

ZXing MLKit Dynamsoft
UPC-A UPC-A UPC-A
UPC-E UPC-E UPC-E
EAN-8 EAN-8 EAN-8
EAN-13 EAN-13 EAN-13
Code 39 Code 39 Code 39
Code 93 Code 93 Code 93
ITF ITF ITF
Codabar Codabar Codabar
QR Code QR Code QR Code
Aztec Aztec Aztec
Data Matrix Data Matrix Data Matrix
PDF417 PDF417 PDF417
Maxicode Maxicode
RSS-14 (GS1 DataBar) RSS-14 (GS1 DataBar)
Code 11
Interleaved 2 of 5
Industrial 2 of 5
GS1 Composite Code
DotCode
Pharmacode
Patch Code

Reading Angle

Dynamsoft Barcode Reader and MLKit can read barcodes in any angle while ZXing has a limitation. You must align the barcode with the camera to read it.

Inverted

Only Dynamsoft Barcode Reader can read inverted images in all barcode formats.

Sample Images

Type Image ZXing MLKit Dynamsoft
Inverted inverted ×
Overexposured overexposured ×
Intermittent intermittent × ×
Zero quietzone zero-quietzone × ×
Curved curled × ×
Damaged damaged ×
Blurry gs1-composite-inverted × ×

Getting Started

Note: Make sure you have completed the React Native - Environment Setup instructions till "Creating a new application" step, before proceeding.

Step 1: Start the Metro Server

First, you will need to start Metro, the JavaScript bundler that ships with React Native.

To start Metro, run the following command from the root of your React Native project:

# using npm
npm start

# OR using Yarn
yarn start

Step 2: Start your Application

Let Metro Bundler run in its own terminal. Open a new terminal from the root of your React Native project. Run the following command to start your Android or iOS app:

For Android

# using npm
npm run android

# OR using Yarn
yarn android

For iOS

# using npm
npm run ios

# OR using Yarn
yarn ios

If everything is set up correctly, you should see your new app running in your Android Emulator or iOS Simulator shortly provided you have set up your emulator/simulator correctly.

This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.

Step 3: Modifying your App

Now that you have successfully run the app, let's modify it.

  1. Open App.tsx in your text editor of choice and edit some lines.

  2. For Android: Press the R key twice or select "Reload" from the Developer Menu (Ctrl + M (on Window and Linux) or Cmd ⌘ + M (on macOS)) to see your changes!

    For iOS: Hit Cmd ⌘ + R in your iOS Simulator to reload the app and see your changes!

Congratulations! 🎉

You've successfully run and modified your React Native App. 🥳

Now what?

Troubleshooting

If you can't get this to work, see the Troubleshooting page.

Learn More

To learn more about React Native, take a look at the following resources:

About

A react native barcode reading demo using ZXing, MLKit and Dynamsoft

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 78.4%
  • Kotlin 6.7%
  • Objective-C 6.3%
  • Ruby 4.1%
  • JavaScript 2.3%
  • Objective-C++ 2.2%