Xamarin is a cross-platform framework for building Android and iOS apps using .NET programming. The code structure of Xamarin Android and Xamarin iOS is different. For developers who want to construct UI for Android and iOS from a single codebase, Xamarin.Forms is the only solution. This article shares how to implement camera barcode scanner apps for both Android and iOS platforms using Xamarin.Forms. Since camera logic is platform-dependent, a bunch of platform-specific code is required.

Getting Started with Xamarin.Forms

Setting Up Environment on Windows 10

Run Visual Studio Installer and select Mobile development with .NET

The accuracy of optical character recognition (OCR) is sensitive to text orientation. If a text image file is rotated by 90°, 180° or 270°, and there is no EXIF information, it would be challenging to doing text recognition. In case of text around barcode, the combination of Dynamsoft Label Recognition(DLR) and Dynamsoft Barcode Reader(DBR) is proposed as an ideal OCR solution. This article will demonstrate how to build a C++ command-line application to recognize a rotated barcode label (e.g. price tag) which is hardly recognized by general open source or commercial OCR SDK.


Dynamsoft provides Java Barcode SDKs for both mobile and desktop development. The mobile edition is distributed as an Android AAR package, and the desktop edition is distributed as a JAR package. This article aims to help developers who want to build desktop or server-side barcode scanner applications in Java or Kotlin.

Installing Dynamsoft Barcode Reader via Gradle

To get Dynamsoft Barcode Reader, you can either download the SDK directly or configure the Maven URL for auto-build tools. I recommend using Gradle to create a Java or Kotlin barcode scanner project.


Create a new Gradle project:

$ gradle init Select type of project to generate: 1…

Three years ago, I created a CMake project, aiming to build a C/C++ project with Dynamsoft Barcode Reader on Windows, Linux, and macOS. Today, as the world’s top barcode SDK, Dynamsoft Barcode Reader has extended to more operating systems and CPU architectures:

  • ARM32 Linux: Raspberry Pi
  • ARM64 Linux: Jetson Nano

Now, I only have a Windows PC in hand. How can I build the project for all target environments without purchasing new hardware devices or spending time setting up virtual environments?

One of the economical ways is to use Travis CI. Travis CI is a hosted continuous integration service that…

As the world’s top scanner programming SDK, Dynamic Web TWAIN features a lot of compelling functionalities. By upgrading to the latest version, any web document scanning app built with Dynamic Web TWAIN can be compatible with mobile devices seamlessly. What will happen if you invoke the scanner control APIs on mobile devices? Dynamic Web TWAIN can turn your mobile devices into a remote control for document scanners connected to your PC. In addition to scan documents from a remote document scanner, you can open the cellphone camera to capture documents as well. …

Dynamsoft Label Recognition (DLR) is an OCR SDK implemented in C/C++. The 1.0 Beta version was recently rolled out for Windows and Linux platforms. This article will demonstrate how to utilize the APIs of Dynamsoft Label Recognition to create a text recognition app on Windows.


Free Trial License

Get a free trial license and save it to license.txt file.

Text Recognition in C/C++

Let’s get started with the command-line example (DLR-C_CPP-1.0-Beta\DynamsoftLabelRecognition\Samples\LabelRecognitionDemo) located in the DLR package.

There are 4 essential steps for extracting text from pictures.

  • Initialize the DLR object and set the trial license:
```cpp CLabelRecognition…

Qt Designer is a Qt tool for building cross-platform graphical user interfaces (GUIs) with Qt widgets. In this article, I will use the Qt designer to create an advanced desktop barcode reader app with Dynamsoft Python Barcode SDK for Windows, Linux, macOS, and Raspberry Pi OS. The app contains all the powerful functionalities of Dynamsoft Barcode Reader.

Constructing UI with Qt Designer

The required Qt widgets include:

  • Menu Bar

- Open file

- Open folder

- Save template

- Enter license key

- About

  • Status Bar

- Show status information

  • List Widget

- List loaded file names

  • Label

- Display image or webcam frame

  • Group…

If you want to build a cross-platform GUI app with Python and Qt, you can either use PyQt or PySide. Both of them are Qt bindings for Python. The main difference is the license: PyQt5 is released under GPL or commercial, whereas PySide2 is released under LGPL. Since PySide2 is recommended officially, I will use PySid2 and Dynamsoft Python Barcode SDK to create a GUI barcode reader app on Raspberry Pi.


  • OpenCV Python
python3 -m pip install opencv-python
  • Dynamsoft Python Barcode SDK
python3 -m pip install dbr
  • PySide2
sudo apt-get install python3-pyside2.qt3dcore python3-pyside2.qt3dinput python3-pyside2.qt3dlogic python3-pyside2.qt3drender python3-pyside2.qtcharts python3-pyside2.qtconcurrent python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qthelp…

Someone may be curious about whether Intel-based Python apps can work well on Apple M1 Mac. I recently did a test with Dynamsoft Python Barcode SDK, which is built with native x86_64 libraries and CPython. It turned out that there was no issue using pip to install the wheel package and running my Python barcode reader app.

Installing Pip and Python Barcode Wheel Package

When you open the terminal app and type in Python3 the first time, a prompt dialog will pop up for installing the command line developer tools.

Click Install and wait a while for installing the relevant tools. …

While scanning single or multiple barcodes with a barcode SDK, most of the developers only concern about the trade-off between decoding speed and recognition accuracy, for they cannot get other data. Since from version 8.0, Dynamsoft exposes more parameters and intermediate results (E.g., grayscale image, binary image, barcode localization results, etc.) to developers for app debugging and optimizing, which makes Dynamsoft Barcode SDK stand out from commercial barcode SDKs. In this article, I will go through some relevant parameters and APIs.


  • CMake
  • OpenCV 4.5.0. For Windows, you need to add “OpenCV_DIR = C:\opencv\build" to system environment variables.

Xiao Ling

Manager of Dynamsoft Open Source Projects | Tech Lover

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store