Skip to content

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.

License

Notifications You must be signed in to change notification settings

openlab-x/OpenQRCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open QR Code

Generate QR Code

About

Open 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.

Table of Contents

Features

  • Generate QR Codes: Convert any text input into a QR code.
  • Scan QR Codes: Easily scan QR codes using your device's camera.
  • Save QR Codes: Save the generated QR codes to your device's gallery.
  • Share QR Codes: Share generated QR codes directly from the app.
  • Cross-Platform: Available on Android, Web, and Windows.

Source Code Version 1.0.0

  • Improved UI: Enhanced user interface for a better user experience.
  • Cross-Platform Support: Now available on Windows and Web.
  • MVVM Architecture: Adopted MVVM architecture for better code organization and testability.
  • Bug Fixes: Fixed issues related to QR code scanning on some Android devices.

Platforms Tested

  • Android: Tested on Android 11 (Samsung Galaxy A32) and Redmi Note 13 Pro Plus 5G.
  • Web: Fully functional on major browsers like Chrome, Firefox, and Edge.
  • Windows 11: Tested on Windows 11 with a downloadable .exe file.
  • IOS
  • Linux
  • MacOS

Troubleshooting and Issues

Troubleshooting While Building

Thess Troubleshooting while you are building(Not our Build and Demo)

  • QR Code not saving to gallery: Ensure that the app has the necessary permissions to access the storage.
  • App crashes on startup: Check that all dependencies are installed correctly and that your environment is set up for Flutter development.

Current Issues at v1.0.0

  • On some mobile devices the icons spaces and not correctly displaying on some devices size.
  • The QR Scanner is not working well using the web, only the QR Generator is working perfectly.
  • The QR Scanner and Generator is not working well using the windows, it was working only on debug mode.

Demo Links and Downloads

Screenshots

Screenshots Android

Generate QR Code

Screenshots Windows

Project Structure

Technology Stack

Open 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:

Underlying Technologies

  • C/C++: Core components and libraries may use C and C++ for performance-critical sections.
  • Dart: The primary programming language used for Flutter applications.
  • Skia: A 2D rendering engine used by Flutter to draw the UI.
  • Impeller: The default rendering engine on iOS, providing smooth and efficient rendering of graphics.
  • Java: Used primarily in Android development.
  • Kotlin: A modern programming language for Android development.
  • HTML: Used for the web version of the application.
  • JSON: For data interchange between the app and the backend or for configuration.

MVVM Architecture

  • Model: Represents the data and business logic of the application. In this project, the Model handles QR code data, including generation and scanning processes.
  • 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.
  • ViewModel: Acts as an intermediary between the Model and the View. It processes input from the View, updates the Model, and triggers UI updates.

Why Use MVVM?

  • Separation of Concerns: MVVM separates the data (Model), UI (View), and business logic (ViewModel), making the codebase easier to manage and extend.
  • 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.
  • Reusability: Components such as ViewModels can be reused across different parts of the application, reducing code duplication.

Dependencies

This project uses the following Flutter packages:

  • qr_flutter: A Flutter widget that allows generating QR codes.
  • qr_code_scanner: A Flutter plugin for scanning QR codes using the camera.
  • path_provider: A Flutter plugin to access commonly used locations on the device's file system.
  • screenshot: A Flutter plugin to capture widgets as images.
  • share_plus: A Flutter plugin to share content from your Flutter app.
  • permission_handler: A Flutter plugin to request and check permissions on iOS and Android.

Getting Started

These instructions will help you set up the project on your local machine for development and testing purposes.

Prerequisites

Installation

  1. Clone the repository
    git clone https://github.com/yourusername/OpenQRCode.git
    cd open-qr-code
    
  2. Install dependencies
    git flutter pub get
    cd open-qr-code
    
  • Android
    flutter run -d android
    
  • Webs
    flutter run -d chrome
    
  • Windows
    flutter run -d windows
    

Usage

  • Generate QR Codes

    1. Open the app.
    2. Enter the text you want to encode in the QR code.
    3. Click "Generate" to create the QR code.
    4. Use the "Save" button to save the QR code to your gallery.
    5. Use the "Share" button to share the QR code with others.
  • Scan QR Code

    1. Open the app.
    2. Navigate to the "Scan" tab.
    3. Point your device's camera at a QR code.
    4. The app will automatically detect and display the encoded information.

Contributing

We welcome contributions! Here's how you can help:

  1. Give the project a STAR.
  2. Follow us on Github.
  3. Follow us on Social Media.
  4. Fork the repository.
  5. Create a new branch for your feature or bug fix.
  6. Make your changes.
  7. Submit a pull request.
  8. Please make sure to update tests as appropriate.

Acknowledgments

  • Flutter: The framework used to build the application.
  • Baseflow: For the permission_handler and other plugins.
  • All Contributors: Thanks to everyone who contributed to the project.

License

This project is licensed under the MIT license.

Contact

In pursuit of innovation,
OpenLabX Team

Follow Us:

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published