{"id":21250767,"url":"https://github.com/openlab-x/openqrcode","last_synced_at":"2025-10-11T13:35:28.724Z","repository":{"id":263841368,"uuid":"851586422","full_name":"openlab-x/OpenQRCode","owner":"openlab-x","description":"Open QR Code is an open-source, cross-platform app developed with Flutter, using C, C++, Dart, Skia, Impeller, Java, and Kotlin. It allows users to generate, scan, save, and share QR codes. Available on Android, Windows, and Web, users can easily create and interact with QR codes across platforms.","archived":false,"fork":false,"pushed_at":"2024-11-22T06:00:08.000Z","size":61086,"stargazers_count":22,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-11T05:35:22.418Z","etag":null,"topics":["android-app","apk","c","cpp","dart","dartlang","flutter","flutter-apps","java","kotlin","kotlin-android","open-source","openlabx","qrcode","qrcode-generator","skia","web","windows-11","windows-app"],"latest_commit_sha":null,"homepage":"https://openlabx.com/OpenQRCode.php","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openlab-x.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2024-09-03T11:16:49.000Z","updated_at":"2025-06-04T18:50:12.000Z","dependencies_parsed_at":"2025-07-11T02:04:52.121Z","dependency_job_id":null,"html_url":"https://github.com/openlab-x/OpenQRCode","commit_stats":null,"previous_names":["openlab-x/openqrcode"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/openlab-x/OpenQRCode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openlab-x%2FOpenQRCode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openlab-x%2FOpenQRCode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openlab-x%2FOpenQRCode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openlab-x%2FOpenQRCode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openlab-x","download_url":"https://codeload.github.com/openlab-x/OpenQRCode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openlab-x%2FOpenQRCode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279007345,"owners_count":26084282,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-app","apk","c","cpp","dart","dartlang","flutter","flutter-apps","java","kotlin","kotlin-android","open-source","openlabx","qrcode","qrcode-generator","skia","web","windows-11","windows-app"],"created_at":"2024-11-21T03:38:47.939Z","updated_at":"2025-10-11T13:35:28.692Z","avatar_url":"https://github.com/openlab-x.png","language":"C++","readme":"\r\n\r\n\r\n\r\n# Open QR Code ![GitHubViewsCounter](https://openlabx.com/githubviewscounter/api/gitvcr.php?username=openlab-x\u0026repository=OpenQRCode\u0026theme=dark) [\u003cimg alt=\"Made With GitHubViewsCounter\" src=\"https://openlabx.com/githubviewscounter/api/footer_image.php?theme=light\" /\u003e](https://github.com/openlab-x/GitHubViewsCounter)\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n  \u003cimg src=\"screenshots/logo_v1.png\" width=\"450\"/\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n![Generate QR Code](screenshots/multiview2.png)\r\n\r\n\r\n    \r\n## About\r\nOpen QR Code is an open-source cross-platform application developed using Flutter as main framework used to build the application, in common C, C++, Dart, Skia (a 2D rendering engine), and Impeller (the default rendering engine on iOS), Java, Kotlin. Open QR Code allows users to generate and scan QR codes effortlessly. The app is available on Android, Windows, and the Web. Users can generate QR codes from any text input, save them to their gallery, share them directly from the app, and scan QR codes to retrieve encoded information. Whether you're on Android, Windows, or the Web, you can create and share QR codes or scan them with a single click.\r\n\r\n## Table of Contents\r\n\r\n- [About](#about)\r\n- [Features](#features)\r\n- [Source Code Version 1.0.0](#source-code-version-100)\r\n- [Platforms Tested](#platforms-tested)\r\n- [Troubleshooting and Issues](#troubleshooting-and-issues)\r\n  - [Troubleshooting While Building](#troubleshooting-while-building)\r\n  - [Current Issues at v1.0.0](#current-issues-at-v100)\r\n- [Demo Links and Downloads](#demo-links-and-downloads)\r\n- [Screenshots](#screenshots)\r\n  - [Screenshots Android](#screenshots-android)\r\n  - [Screenshots Windows](#screenshots-windows)\r\n- [Project Structure](#project-structure)\r\n  - [Technology Stack](#technology-stack)\r\n  - [Underlying Technologies](#underlying-technologies)\r\n  - [MVVM Architecture](#mvvm-architecture)\r\n  - [Why Use MVVM?](#why-use-mvvm)\r\n- [Dependencies](#dependencies)\r\n- [Getting Started](#getting-started)\r\n  - [Prerequisites](#prerequisites)\r\n- [Installation](#installation)\r\n- [Usage](#usage)\r\n  - [Generate QR Code](#generate-qr-code)\r\n  - [Scan QR Code](#scan-qr-code)\r\n- [Contributing](#contributing)\r\n- [Acknowledgments](#acknowledgments)\r\n- [License](#license)\r\n- [Contact](#contact)\r\n\r\n\r\n\r\n## Features\r\n\r\n- **Generate QR Codes**: Convert any text input into a QR code.\r\n- **Scan QR Codes**: Easily scan QR codes using your device's camera.\r\n- **Save QR Codes**: Save the generated QR codes to your device's gallery.\r\n- **Share QR Codes**: Share generated QR codes directly from the app.\r\n- **Cross-Platform**: Available on Android, Web, and Windows.\r\n\r\n## Source Code Version 1.0.0\r\n\r\n- **Improved UI**: Enhanced user interface for a better user experience.\r\n- **Cross-Platform Support**: Now available on Windows and Web.\r\n- **MVVM Architecture**: Adopted MVVM architecture for better code organization and testability.\r\n- **Bug Fixes**: Fixed issues related to QR code scanning on some Android devices.\r\n\r\n## Platforms Tested\r\n\r\n- [x] **Android**: Tested on Android 11 (Samsung Galaxy A32) and Redmi Note 13 Pro Plus 5G.\r\n- [x] **Web**: Fully functional on major browsers like Chrome, Firefox, and Edge.\r\n- [x] **Windows 11**: Tested on Windows 11 with a downloadable `.exe` file.\r\n- [ ] **IOS**\r\n- [ ] **Linux**\r\n- [ ] **MacOS**\r\n\r\n\r\n## Troubleshooting and Issues \r\n\r\n### Troubleshooting While Building\r\nThess Troubleshooting while you are building(Not our Build and Demo)\r\n\r\n- QR Code not saving to gallery: Ensure that the app has the necessary permissions to access the storage.\r\n- App crashes on startup: Check that all dependencies are installed correctly and that your environment is set up for Flutter development.\r\n\r\n### Current Issues at v1.0.0\r\n- On some mobile devices the icons spaces and not correctly displaying on some devices size.\r\n- The QR Scanner is not working well using the web, only the QR Generator is working perfectly.\r\n- The QR Scanner and Generator is not working well using the windows, it was working only on debug mode.\r\n\r\n\r\n## Demo Links and Downloads\r\n\r\n- **Web Demo**: [Open QR Code Web](https://openlabx.com/OpenQRCode.php)\r\n- **Android APK**: [Download APK](https://github.com/openlab-x/OpenQRCode/raw/main/downlaod/Open%20QR%20Code-v1.0.0.apk)\r\n- **Windows 11 EXE**: [Download EXE](https://github.com/openlab-x/OpenQRCode/raw/main/downlaod/OpenQRCode.zip)\r\n- \r\n\r\n\r\n## Screenshots\r\n\r\n### Screenshots Android\r\n\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"screenshots/android/1.jpg\" alt=\"Generate QR Code\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/2.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/3.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/4.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/5.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/6.jpg\" width=\"150\"/\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"screenshots/android/7.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/8.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/9.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/10.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/11.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/12.jpg\" width=\"150\"/\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"screenshots/android/13.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/14.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/15.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/qr_code_1725352250881.png\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/17.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/18.jpg\" width=\"150\"/\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"screenshots/android/20.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/21.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/22.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/23.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/24.jpg\" width=\"150\"/\u003e\r\n  \u003cimg src=\"screenshots/android/25.jpg\" width=\"150\"/\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"screenshots/android/26.jpg\" width=\"150\"/\u003e\r\n\u003c/p\u003e\r\n\r\n### Screenshots Windows\r\n\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"screenshots/win/1.png\" width=\"400\"/\u003e\r\n  \u003cimg src=\"screenshots/win/2.png\" width=\"400\"/\u003e\r\n  \u003cimg src=\"screenshots/win/3.png\" width=\"400\"/\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"screenshots/win/4.png\" width=\"400\"/\u003e\r\n  \u003cimg src=\"screenshots/win/5.png\" width=\"400\"/\u003e\r\n  \u003cimg src=\"screenshots/win/6.png\" width=\"400\"/\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp float=\"left\"\u003e\r\n  \u003cimg src=\"screenshots/win/7.png\" width=\"400\"/\u003e\r\n  \u003cimg src=\"screenshots/win/8.png\" width=\"400\"/\u003e\r\n\u003c/p\u003e\r\n\r\n\r\n\r\n\r\n## Project Structure\r\n\r\n\r\n\r\n### Technology Stack\r\n\r\nOpen QR Code leverages several technologies and follows the MVVM (Model-View-ViewModel) architecture to ensure clean separation of concerns, testability, and reusability. Below are some key technologies and concepts used in the project:\r\n\r\n### Underlying Technologies \r\n  - **C/C++**: Core components and libraries may use C and C++ for performance-critical sections.\r\n  - **Dart**: The primary programming language used for Flutter applications.\r\n  - **Skia**: A 2D rendering engine used by Flutter to draw the UI.\r\n  - **Impeller**: The default rendering engine on iOS, providing smooth and efficient rendering of graphics.\r\n  - **Java**: Used primarily in Android development.\r\n  - **Kotlin**: A modern programming language for Android development.\r\n  - **HTML**: Used for the web version of the application.\r\n  - **JSON**: For data interchange between the app and the backend or for configuration.\r\n\r\n\r\n### MVVM Architecture\r\n\r\n- **Model**: Represents the data and business logic of the application. In this project, the Model handles QR code data, including generation and scanning processes.\r\n- **View**: The UI layer, which interacts with the user. In this project, views are represented by Flutter widgets, such as screens and buttons for generating and scanning QR codes.\r\n- **ViewModel**: Acts as an intermediary between the Model and the View. It processes input from the View, updates the Model, and triggers UI updates.\r\n\r\n### Why Use MVVM?\r\n- **Separation of Concerns**: MVVM separates the data (Model), UI (View), and business logic (ViewModel), making the codebase easier to manage and extend.\r\n- **Testability**: By decoupling the UI from the business logic, it's easier to write unit tests for the ViewModel and Model without relying on the actual UI.\r\n- **Reusability**: Components such as ViewModels can be reused across different parts of the application, reducing code duplication.\r\n\r\n## Dependencies\r\n\r\nThis project uses the following Flutter packages:\r\n\r\n- **qr_flutter**: A Flutter widget that allows generating QR codes.\r\n- **qr_code_scanner**: A Flutter plugin for scanning QR codes using the camera.\r\n- **path_provider**: A Flutter plugin to access commonly used locations on the device's file system.\r\n- **screenshot**: A Flutter plugin to capture widgets as images.\r\n- **share_plus**: A Flutter plugin to share content from your Flutter app.\r\n- **permission_handler**: A Flutter plugin to request and check permissions on iOS and Android.\r\n\r\n## Getting Started\r\n\r\nThese instructions will help you set up the project on your local machine for development and testing purposes.\r\n\r\n### Prerequisites\r\n\r\n- [Flutter SDK](https://flutter.dev/docs/get-started/install)\r\n- [Android Studio](https://developer.android.com/studio) or [Visual Studio Code](https://code.visualstudio.com/) with Flutter and Dart extensions.\r\n- (Optional) [Xcode](https://developer.apple.com/xcode/) for iOS development.\r\n\r\n## Installation\r\n\r\n1. **Clone the repository**\r\n   ```bash\r\n   git clone https://github.com/yourusername/OpenQRCode.git\r\n   cd open-qr-code\r\n\r\n2. **Install dependencies**\r\n   ```bash\r\n   git flutter pub get\r\n   cd open-qr-code\r\n\r\n- **Android**\r\n   ```bash\r\n   flutter run -d android\r\n\r\n - **Webs**\r\n   ```bash\r\n   flutter run -d chrome\r\n\r\n- **Windows**\r\n   ```bash\r\n   flutter run -d windows\r\n   \r\n## Usage\r\n\r\n- ### **Generate QR Codes**\r\n  1. Open the app.\r\n  2. Enter the text you want to encode in the QR code.\r\n  3. Click \"Generate\" to create the QR code.\r\n  4. Use the \"Save\" button to save the QR code to your gallery.\r\n  5. Use the \"Share\" button to share the QR code with others.\r\n\r\n- ### **Scan QR Code**\r\n\r\n  1. Open the app.\r\n  2. Navigate to the \"Scan\" tab.\r\n  3. Point your device's camera at a QR code.\r\n  4. The app will automatically detect and display the encoded information.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n## Contributing\r\n We welcome contributions! Here's how you can help:\r\n  \r\n  1. Give the project a STAR.\r\n  2. Follow us on Github.\r\n  3. Follow us on Social Media.\r\n  4. Fork the repository.\r\n  5. Create a new branch for your feature or bug fix.\r\n  6. Make your changes.\r\n  7. Submit a pull request.\r\n  8. Please make sure to update tests as appropriate.\r\n\r\n\r\n## Acknowledgments\r\n- Flutter: The framework used to build the application.\r\n- Baseflow: For the permission_handler and other plugins.\r\n- All Contributors: Thanks to everyone who contributed to the project.\r\n\r\n\r\n## License\r\nThis project is licensed under the [MIT license](LICENSE).\r\n\r\n## Contact\r\n\r\nIn pursuit of innovation,  \r\n**OpenLabX Team**\r\n\r\n- **Website**: [https://openlabx.com](https://openlabx.com)\r\n- **Email**: contact@openlabx.com\r\n\r\n**Follow Us:**\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n| \u003ca href=\"https://www.instagram.com/openlabx_official/\" target=\"_blank\"\u003e\u003cstrong\u003eInstagram\u003c/strong\u003e\u003c/a\u003e |\r\n\u003ca href=\"https://x.com/openlabx\" target=\"_blank\"\u003e\u003cstrong\u003eX (formerly Twitter)\u003c/strong\u003e\u003c/a\u003e |\r\n\u003ca href=\"https://www.facebook.com/openlabx/\" target=\"_blank\"\u003e\u003cstrong\u003eFacebook\u003c/strong\u003e\u003c/a\u003e |\r\n\u003ca href=\"https://www.youtube.com/@OpenLabX\" target=\"_blank\"\u003e\u003cstrong\u003eYouTube\u003c/strong\u003e\u003c/a\u003e |\r\n\u003ca href=\"https://github.com/openlab-x\" target=\"_blank\"\u003e\u003cstrong\u003eGitHub\u003c/strong\u003e\u003c/a\u003e |\r\n\u003c/div\u003e\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenlab-x%2Fopenqrcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenlab-x%2Fopenqrcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenlab-x%2Fopenqrcode/lists"}