Hello from sunny July! As a good tradition, it's time for MAUI UI July. Thanks to Matt Goldman for the organization.
Barcode scanning is a common requirement in modern mobile applications, enabling features such as product information retrieval, inventory management, and point-of-sale systems. .NET MAUI allows developers to create cross-platform applications with ease, and there are several libraries and tools available to implement barcode scanning. This article explores three methods: MLKit for Android, Camera.MAUI.ZXing, and CommunityToolkit.Maui.Camera.
1. MLKit for Android
ML Kit brings Google’s machine learning expertise to mobile developers in a powerful and easy-to-use package for various functionalities, including barcode scanning. For .NET MAUI applications targeting Android, MLKit offers a robust and accurate solution.
Steps to Implement MLKit Barcode Scanning in .NET MAUI:
Install MLKit NuGet Package
Configure Barcode Scanning
In the
Platforms\Androidfolder create a new classMlKitBarcodeScanner.Update AndroidManifest.xml
Handle Barcode Detection

2. Camera.MAUI.ZXing
ZXing is a popular open-source barcode scanning library. The Camera.MAUI.ZXing library is a .NET MAUI-specific implementation that leverages ZXing for barcode scanning, providing a cross-platform solution.
Steps to Implement Camera.MAUI.ZXing:
Install Camera.MAUI.ZXing
Configure the Camera
Update
MauiProgram.csto add MauiCameraView:Initialize ZXing Barcode Scanner
Create a
CameraViewin your XAML or C# code to display the camera feed and handle barcode scanning.Configure
BarCodeDecoderand subscribe toBarcodeDetected:

3. CommunityToolkit MAUI Camera
The .NET MAUI Community Toolkit provides various useful tools and controls, including camera support. The CommunityToolkit.Maui.Camera can be used for capturing images, which can then be processed for barcode scanning.
Steps to Implement CommunityToolkit MAUI Camera:
Install CommunityToolkit.Maui
Configure the Camera
Update
MauiProgram.csto add MauiCameraView:Initialize CameraView:
Create a
CameraViewin your XAML or C# code to display the camera feed and handle barcode scanning.CommunityToolkit.Maui.Cameradoesn't have a built-in mechanism for barcode scanning, but we can capture an image every N seconds and pass it to theBarcodeReaderGenericfrom theZXing.NETlibrary:Prepare the image for the Barcode Scanner
BarcodeReaderGenericfrom theZXing.NETlibrary usesLuminanceSourceas a source from the barcode analysis. Our task is to calculate luminance for the RGB bytes:

Conclusion
Each of these methods offers unique advantages depending on the specific requirements and target platforms of your .NET MAUI application. MLKit provides advanced machine learning capabilities for Android, Camera.MAUI.ZXing offers a built-in barcode scanner in a CameraView control and CommunityToolkit.MAUI.Camera provides the best CameraView control with the ability to plugin the barcode scanning functionality. By leveraging these tools, developers can implement robust and efficient barcode scanning functionality in their .NET MAUI applications.
The full code can be found on GitHub.
Happy coding!

