Barras: Flutter용 간단한 바코드/QR 코드 리더 패키지


Wilfried Pohnke에서 Pixabay의 표지 이미지

바코드와 QR 코드를 스캔하는 것과 같은 기능을 하는 훌륭한 다트 플러그인이 많이 있습니다. 그러나 매우 구체적인 요구 사항이 있는 경우에는 어떻게 됩니까? 좋아요: "내 앱은 Google 서비스를 사용할 수 없습니다!"

바라스란?



포르투갈어로 "바"를 의미합니다. 하지만 그 외에도 Barras은 내부적으로 ZXing 및 AVCaptureSession을 사용하는 QR 코드 및 바코드 스캐닝 라이브러리입니다. 사용이 간편하고 사용자 지정 가능한 캡처 화면이 있습니다.

찾을 수 있습니다Barras in pub.dev.

현재는 Android와 iOS만 지원하며 몇 가지 알려진 문제가 있습니다. 그러나 저는 그것들을 수정하고 Flutter 웹 지원을 추가할 계획입니다.

왜 다른 패키지인가요?



Google 서비스(또는 ML Kit Vision API)에 의존하지 않는 일부 바코드 스캔 패키지를 테스트했으며 작동하는 것처럼 보이지만 앱이 Android 7 이상만 지원하도록 요구하는 것과 같은 몇 가지 제한 사항이 있었습니다. 다른 프로젝트는 포기한 것처럼 보였습니다.

제가 작업하고 있는 프로젝트는 Android 5 이상에서 실행할 수 있는 대체 솔루션이 시급히 필요했습니다. 그래서 찾은 플러그인 중 하나만 사용할 수 있었지만 바코드 캡처 화면을 만들어야 했습니다.

해당 플러그인에 대해 사용자 지정 가능한 캡처 화면을 만들어 다른 사람들이 사용할 수 있게 하면 어떻게 됩니까? 현재 가장 세련된 솔루션은 아닙니다. Barras은 프로젝트에 다른 임시 종속성을 도입하는 패키지이지만 큰 계획은 Barras 내부에서 모든 작업을 수행하고 웹 지원을 구현하는 것입니다.

저는 이것이 오픈 소스에 기여할 수 있는 좋은 기회라고 생각한다고 말하는 것이 중요합니다. 나는 항상 OSS 운영 체제, 툴체인, 라이브러리를 사용했지만 제대로 보복 한 적이 없다고 생각합니다. 이 패키지는 일부 Google 제품에 제한이 있는 지역에 거주하는 사람들에게 유용할 것입니다.

어떻게 생겼는지



다음과 같이 간단합니다.

// Open the barcode reading page. Returned data will be null if
// Cancel button is pressed, or if user navigates back
final data = await Barras.scan(context);



앱의 모양과 느낌에 맞게 캡처 화면을 약간 사용자 지정할 수도 있습니다.

// Open the barcode reading page. Customize the appearance, changing the
// viewfinder color, size and blinking speed. Returned data will be null
// if Cancel button is pressed, or if user navigates back
final codigo = await Barras.scan(
  context,
  viewfinderHeight: 120,
  viewfinderWidth: 300,
  scrimColor: Color.fromRGBO(0, 128, 0, 0.5),
  borderColor: Colors.lightGreen,
  borderRadius: 24,
  borderStrokeWidth: 2,
  buttonColor: Colors.yellow,
  borderFlashDuration: 250,
  cancelButtonText: "Cancelar",
  successBeep: false,
);


피드백 및 기여



Barras에 대한 피드백을 찾고 있습니다. 거의 완성된 앱에서 사용 중이며 앱 사용 사례에 대해 감지가 양호합니다. 그러나 나는 개선의 여지가 있다고 믿는다.

도움과 피드백을 주시면 감사하겠습니다. 저장소에 문제를 제출하거나 메시지를 보내주세요!


데드블릿 / 바라스


간단하고 사용자 정의 가능한 바코드 스캔 Android 및 iOS용 Flutter 패키지입니다. iOS에서는 AVCaptureSession을 사용하고 Android에서는 ZXing을 사용합니다.

좋은 웹페이지 즐겨찾기