{"id":24324180,"url":"https://github.com/cyb3rko/jabcode-android","last_synced_at":"2025-04-14T01:53:17.147Z","repository":{"id":219457513,"uuid":"748889957","full_name":"cyb3rko/jabcode-android","owner":"cyb3rko","description":"Android library for reading JAB codes","archived":false,"fork":false,"pushed_at":"2024-02-21T21:31:48.000Z","size":4715,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-14T01:52:48.508Z","etag":null,"topics":["android","android-app","android-application","android-library","jabcode","kotlin","library"],"latest_commit_sha":null,"homepage":"https://jabcode.org","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyb3rko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-27T00:46:00.000Z","updated_at":"2024-05-21T19:19:56.000Z","dependencies_parsed_at":"2025-03-11T03:42:13.450Z","dependency_job_id":"d6591426-980b-4503-9651-da0adc92a5fb","html_url":"https://github.com/cyb3rko/jabcode-android","commit_stats":null,"previous_names":["cyb3rko/jabcode-android"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyb3rko%2Fjabcode-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyb3rko%2Fjabcode-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyb3rko%2Fjabcode-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyb3rko%2Fjabcode-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyb3rko","download_url":"https://codeload.github.com/cyb3rko/jabcode-android/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248809032,"owners_count":21164895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-app","android-application","android-library","jabcode","kotlin","library"],"created_at":"2025-01-17T19:32:58.590Z","updated_at":"2025-04-14T01:53:17.100Z","avatar_url":"https://github.com/cyb3rko.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://jabcode.org\"\u003e\n    \u003cimg src=\"https://i.imgur.com/KbMKMuI.png\" alt=\"JAB Code\" title=\"JAB\" align=\"right\" height=\"150\" /\u003e\n\u003c/a\u003e\n\n# JAB Code Android\n[![API](https://img.shields.io/badge/API-23%2B-brightgreen.svg?style=flat)](https://apilevels.com)\n[![license](https://img.shields.io/github/license/cyb3rko/jabcode-android)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)\n[![last commit](https://img.shields.io/github/last-commit/cyb3rko/jabcode-android?color=F34C9F)](https://github.com/cyb3rko/jabcode-android/commits/main)\n\n---\n\n- [About this project](#about-this-project)\n- [How to use](#how-to-use)\n- [Bad Performance (Workaround)](#bad-performance-workaround)\n- [Contribute](#contribute)\n- [License](#license)\n\n---\n\n## About this project\n\n\u003e [!WARNING]\n\u003e This library is still in development and not recommended for production use.  \n\u003e I couldn't figure out yet how to pass the image bytes directly to the native library.  \n\u003e The performance is still bad due to a workaround (see [Bad Performance (Workaround)](#bad-performance-workaround) for more information).  \n\u003e Help needed!\n\nThis library is a Kotlin wrapper around the native JAB Code library implementation (to be found at [jabcode/jabcode](https://github.com/jabcode/jabcode)).  \nIt utilizes the [JNI (Java Native Interface)](https://de.wikipedia.org/wiki/Java_Native_Interface) and [some lines of custom C code](https://github.com/search?q=repo%3Acyb3rko%2Fjabcode-android++language%3AC\u0026type=code) to communicate with the native implementation.\n\nBut what's a JAB Code?\n\u003e JAB Code (Just Another Bar Code) is a high-capacity 2D color bar code, which can encode more data than traditional black/white codes. This repository contains a library for reading and writing JAB codes, along with sample applications. A demo webinterface is available at https://jabcode.org.\n\nIf you think it's worth to support this project, feel free to give a small donation :heart:.\n\n---\n\n- 🔗 easy to integrate\n- 🏋️‍♂️ lightweight library\n- 📦 wrapper around orignal native code (no modifications) -\u003e easy to update native library\n\n# How to use\n\nCreate a `JabCodeLib` object (which initializes the native library behind the scenes).\n\n```kotlin\nval jabCodeLib: JabCodeLib = JabCodeLib()\n```\n\nCall the `detect(imagePath: String)` function with a valid absolute file path of the image you want to scan.\n\n```kotlin\nval result: ByteArray? = jabCodeLib.detect(file.absolutePath)\n```\n\n(Short form for single call):\n```kotlin\nval result: ByteArray? = JabCodeLib().detect(file.absolutePath)\n```\n\n---\n\nThere you have the content of the code, or null if nothing was found.  \nIf you for example saved a string in your JAB Code, you can now read it with\n\n```kotlin\nval string = result.decodeToString()\n```\n\n## Bad Performance (Workaround)\nUnfortunately the current implementation has a very bad performance due to a workaround.  \nI couldn't figure out yet how to pass the image bytes directly to the native library.  \nCurrently the logic looks like this:\n\n\u003cimg src=\"https://i.imgur.com/PncmN6o.jpeg\"/\u003e\n\nIdeally the implementation could rather look like this for best performance:\n\n\u003cimg src=\"https://i.imgur.com/XaHrzLg.jpeg\"/\u003e\n\n---\n\nIcon Credits\n\n    Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com\n    License - https://fontawesome.com/license/free\n    Copyright 2024 Fonticons, Inc.\n\n## Contribute\nOf course, I'm happy about any kind of contribution.\n\nFor creating [issues](https://github.com/cyb3rko/jabcode-android/issues) there's no real guideline you should follow.\nIf you create [pull requests](https://github.com/cyb3rko/jabcode-android/pulls) please try to use the syntax I use.\nUsing a unified code format makes it much easier for me and for everyone else.\n\n## License\n\n    Copyright (C) 2024 Cyb3rKo\n\n    This program is free software: you can redistribute it and/or modify it under\n    the terms of the GNU Lesser General Public License as published by the Free\n    Software Foundation, either version 3 of the License, or (at your option) any\n    later version.\n\n    This program is distributed in the hope that it will be useful, but WITHOUT\n    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n    FOR A PARTICULAR PURPOSE. See the GNU General Lesser Public License for more\n    details.\n\n    A copy of the GNU Lesser General Public License can be found alongside this\n    library's source code. Alternatively, see at \u003chttp://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyb3rko%2Fjabcode-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyb3rko%2Fjabcode-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyb3rko%2Fjabcode-android/lists"}