0.2.2 • Published 12 months ago

zebra-striped v0.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

zebra-striped 🦓

Generate barcodes natively in React Native with the ZXing library underhood!

The story behind

When I was working on generating QR codes in one of the apps for a client, I realized that JS-based libraries like BWIP JS are not very performant in React Native apps, where performance is especially important for keeping users happy.

I decided to experiment a little and learn about Expo Native Modules, Swift, and Kotlin. This led to the creation of zebra-striped - a performant, native-based library for generating various types of barcodes for React Native.

Feedback is highly appreciated!

Supported code formats

1D Codes2D Codes
Code 128QR
Code 39PDF417
Code 93Aztec
CodabarData Matrix
EAN-13
EAN-8
ITF
UPC-E
UPC-A

Performance 🏎️

benchmark

Usage

Here's a basic usage of ZebraCode component:

<ZebraCode
  value={"I'm very striped!"}
  format="qr"
  size={{ width: 300, height: 300 }}
/>

Want a custom colors? 🎨 I've got you covered:

<ZebraCode
  value={"I'm very striped!"}
  format="qr"
  size={{ width: 300, height: 300 }}
  onColor="#141414"
  offColor="#ffffff"
/>

(Colors are accepted only in HEX)

Or maybe you just want to have a data returned in Base64 format? Here's how you can do it:

const base64Image = getBase64Code("I'm base64'ed!", "qr", {
  width: 300,
  height: 300,
});
const base64Image = getBase64Code("I'm custom-colored!", "qr", {
    width: 300,
    height: 300
}, "#141414", #ffffff);

Installation

Add the package to your npm dependencies

npm install zebra-striped

Expo 🚀

After installation you'll need to rebuild your dev client. Zebra 🦓 will not work in Expo Go!

Plain React Native 📚

For plain React Native project you must install and configure expo package, follow the "Install Expo modules in an existing React Native project" article.

iOS 📱

Make sure to run pod install in ios folder.

Contributing

Contributions are very welcome, I'm open for any suggestions!