markusfisch / BinaryEye

Yet another barcode scanner for Android
https://play.google.com/store/apps/details?id=de.markusfisch.android.binaryeye
MIT License
1.42k stars 117 forks source link

Support JAB Code #362

Open toastal opened 1 year ago

toastal commented 1 year ago

JAB Code Just Another Bar Code

JAB Code is a 2D color bar code, which can encode more data than traditional black/white codes.

https://jabcode.org/

JAB is a LPGL 2.1-licensed 4 or 8-color barcode spec with a C lib that uses those extra bits to encode more information than the typical black & white most barcodes support. There are a lot of use cases where extra bytes can really help out—such as sending a vCard with more than just name+email+tel or a multi-lingual vCard or a message that would normally require an always-on server to deliver the real message via a website.

markusfisch commented 1 year ago

I've been keeping an eye on that for some time 😉

Unfortunately, their Android implementation is closed source and there's no documentation how to use the library on Android, which makes using it really much more painful than it should. I know how to do it, but it would take me some time.

Frankly, I find it a bit puzzling why they publish the library under LPGL but don't open source their Android client.

The higher data density of a JAB Code just means it's possible to pack more information into the same physical space. A JAB Code can be smaller than a QR Code with the same content. But the maximum capacity is not very much greater than that of a QR Code: the JAB Code creator can encode a maximum of 5,607 alphanumeric characters where a QR Code has a storage capacity of 4,296 alphanumeric characters. So yes, a JAB Code can encode more data, and in a smaller space, but there's still plenty of room for more than just a vCard in a QR Code too 😉

toastal commented 1 year ago

Well you know better than I! Thank you for shedding more light on the project. It is a shame that yes the Android app isn't FOSS--and that's not helping adoption.

exaCORE42 commented 10 months ago

Seemingly the JAB Code creator can encode a lot more than 5607 characters (but the size starts to get a little out of control I assume, my browser ended up crashing when I tried to generate a code of the maximum size): image

Re: the android source code, allegedly it was given here https://github.com/jabcode/jabcode/issues/68 but I have no idea what the licensing for it is and I am not familiar with developing for Android, so I have no idea whether it is even the required files. EDIT: they don't seem to have open sourced the app, but they claim that the app only takes the picture and feeds it into the jabcode library (https://github.com/jabcode/jabcode/issues/41#issuecomment-662888048).