juliansteenbakker/mobile_scanner

A universal Flutter barcode and QR code scanner using CameraX/ML Kit for Android, AVFoundation/Apple Vision for iOS & macOS, and ZXing for web.

해결하는 문제

mobile_scanner는 Flutter 플러그인으로, 디바이스의 카메라를 사용하여 모바일 및 웹 앱에 바코드와 QR 코드 스캔 기능을 추가할 수 있게 해줍니다. 카메라 접근, 실시간 프레임 처리, 디코딩과 같은 어려운 부분을 처리하므로, 개발자는 Android, iOS, macOS, 웹용 플랫폼별로 별도의 코드를 작성할 필요가 없습니다.

작동 방식

이 플러그인은 각 플랫폼에서 네이티브 바코드 검출 라이브러리를 래핑합니다: Android에서는 MLKit, iOS 및 macOS에서는 Apple의 Vision 프레임워크, 웹에서는 브라우저 내장 BarcodeDetector API, WebAssembly 기반 ZXing 포트인 zxing-wasm, 또는 레거시 순수 JavaScript ZXing 라이브러리 중 하나를 선택할 수 있습니다.

개발자는 바코드가 인식될 때마다 발동되는 onDetect 콜백을 가진 MobileScanner 위젯을 사용합니다. 더 세밀한 제어가 필요하면 MobileScannerController를 통해 카메라 해상도, 검출 속도, 스캔할 바코드 형식, 토치(플래시), 이미지 반전, 자동 줌, 카메라 렌즈(일반, 광각, 줌) 전환 등을 설정할 수 있습니다. 또한 장치가 지원하는 렌즈를 확인하거나, 근거리 스캔에 가장 적합한 렌즈를 선택하는 헬퍼도 제공합니다.

대상 사용자

QR 코드나 바코드를 스캔해야 하는 Flutter 앱을 개발하는 개발자들입니다. 예를 들어 티켓팅, 결제, 재고 관리, 루아리티 프로그램, 인증 흐름 등에 활용할 수 있습니다. 독립형 앱이 아니라 즉시 통합 가능한 패키지입니다.

주요 특징

  • 크로스플랫폼: Android, iOS, macOS, 웹 (Linux 및 Windows는 지원하지 않음).
  • 다양한 바코드 형식(QR, Code 128, EAN, DataMatrix, PDF417, Aztec 등)을 지원하는 실시간 검출.
  • 설정 가능한 스캔: 스캔 영역, 자동 줌, 토치, 검출 속도, 형식 필터링.
  • 렌즈 유형 전환 및 근거리 스캔에 최적화된 렌즈 선택 헬퍼.
  • 웹 구현은 성능/형식 간 트레이드오프가 있는 3가지 검출 백엔드를 제공하며, 스캔 라이브러리용 사용자 정의 CDN 미러도 설정 가능.
  • Android에서는 앱 크기가 커지지만 즉시 사용 가능한 번들된 MLKit 모델과, Google Play Services를 통해 다운로드되는 비번들 모델 중 선택 가능.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트