{"id":24756729,"url":"https://github.com/mertozseven/qrreader","last_synced_at":"2026-02-25T12:13:42.531Z","repository":{"id":273121692,"uuid":"918765438","full_name":"mertozseven/QRReader","owner":"mertozseven","description":"A powerful xcframework that provides a simple and customizable QR code and barcode scanning experience using VisionKit framework.","archived":false,"fork":false,"pushed_at":"2025-03-12T12:35:50.000Z","size":135,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T13:33:05.826Z","etag":null,"topics":["barcode-scanner","ios-swift","qrcode","qrcode-scanner","swift","uikit","vision-framework","xcframework"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mertozseven.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":"2025-01-18T19:49:04.000Z","updated_at":"2025-03-12T12:35:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"f3dc5f27-2877-426b-bc3c-061547ac52ff","html_url":"https://github.com/mertozseven/QRReader","commit_stats":null,"previous_names":["mertozseven/qrreader"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mertozseven%2FQRReader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mertozseven%2FQRReader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mertozseven%2FQRReader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mertozseven%2FQRReader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mertozseven","download_url":"https://codeload.github.com/mertozseven/QRReader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245070839,"owners_count":20556188,"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":["barcode-scanner","ios-swift","qrcode","qrcode-scanner","swift","uikit","vision-framework","xcframework"],"created_at":"2025-01-28T14:20:08.428Z","updated_at":"2026-02-25T12:13:42.497Z","avatar_url":"https://github.com/mertozseven.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QRReader\n\nA lightweight and efficient iOS framework for QR code scanning using Apple's VisionKit framework. Built with Swift, it provides a customizable scanning interface with real-time detection capabilities.\n\n## Features\n\n- 📱 Native iOS QR code scanning using VisionKit\n- 🎨 Fully customizable scanner overlay\n- 🎯 Region of Interest (ROI) support for precise scanning\n- 💫 Real-time QR code detection\n- 🔍 High-accuracy scanning\n- ⚡️ High frame rate tracking support\n- 🛠 Easy integration with existing projects\n\n## Requirements\n\n- iOS 16.0+\n- Swift 5.9+\n- Xcode 15.0+\n\n## Installation\n\n### Swift Package Manager\n\nAdd QRReader to your project through Swift Package Manager by adding the following to your Package.swift dependencies:\n\n    .package(url: \"https://github.com/mertozseven/QRReader.git\", from: \"1.0.0\")\n\n### Manual Installation\n\n1. Download the QRReader.xcframework\n2. Drag and drop it into your Xcode project\n3. Ensure it's embedded and signed in your target's settings\n\n## Usage\n\n### Basic Implementation\n\n1. First, import the framework by adding this line at the top of your file:\n\n```swift\n    import QRReader\n```\n\n2. Create a QRReader instance and present the scanner:\n\n```swift\n    let qrReader = QRReader()\n\n    if qrReader.isScanningAvailable() {\n        qrReader.presentScanner(from: viewController) { scannedCode in\n            print(\"Scanned QR Code: \\(scannedCode)\")\n        }\n    }\n```\n\n### Customization\n\nQRReader provides various customization options:\n\n```swift\n    let qrReader = QRReader()\n\n    // Customize appearance\n    qrReader.overlayColor = UIColor.black.withAlphaComponent(0.5)\n    qrReader.cornerColor = .systemGreen\n    qrReader.instructionText = \"Align QR code within frame\"\n    qrReader.padding = 8\n    qrReader.windowSize = 250\n```\n    \n### Available Properties\n\n| Property | Type | Description | Default Value |\n|----------|------|-------------|---------------|\n| `overlayColor` | UIColor | Scanner overlay background color | `black.alpha(0.5)` |\n| `cornerColor` | UIColor | Corner markers color | `.systemGreen` |\n| `instructionText` | String | Guidance text for users | \"Align the QR code within the frame to scan\" |\n| `padding` | CGFloat | Padding around scanner window | 8 |\n| `windowSize` | CGFloat | Size of scanner window | 250 |\n\n## Example Implementation\n\nHere's a complete example of implementing QRReader in a view controller:\n\n```swift\n    import UIKit\n    import QRReader\n\n    class ScannerViewController: UIViewController {\n        \n        private let qrReader = QRReader()\n        \n        override func viewDidLoad() {\n            super.viewDidLoad()\n            setupScanner()\n        }\n        \n        private func setupScanner() {\n            // Customize appearance\n            qrReader.overlayColor = UIColor.black.withAlphaComponent(0.6)\n            qrReader.cornerColor = .systemBlue\n            qrReader.instructionText = \"Place QR Code Here\"\n            \n            // Present scanner\n            if qrReader.isScanningAvailable() {\n                qrReader.presentScanner(from: self) { [weak self] code in\n                    self?.handleScannedCode(code)\n                }\n            }\n        }\n        \n        private func handleScannedCode(_ code: String) {\n            print(\"Scanned QR Code: \\(code)\")\n        }\n    }\n``` \n\n## Privacy Usage Description\n\nAdd the following key to your Info.plist:\n\n    \u003ckey\u003eNSCameraUsageDescription\u003c/key\u003e\n    \u003cstring\u003eCamera access is required for scanning QR codes\u003c/string\u003e\n\n## Features in Detail\n\n- **High Performance Scanning**: Utilizes VisionKit's DataScannerViewController for efficient QR code detection\n- **Customizable UI**: Fully customizable overlay, corners, and instruction text\n- **Region of Interest**: Focused scanning area for better accuracy\n- **Real-time Detection**: Immediate feedback when QR codes are detected\n- **Memory Management**: Efficient handling of camera resources\n\n## Demonstration\n\n![ezgif-2-90ecf54ea9](https://github.com/user-attachments/assets/d91ab364-e7f8-4138-bbbf-ed053c6a2e0e)\n\n## License\n\nThis project is available under the GNU General Public License v3.0. See the LICENSE file for more info.\n\n## Author\n\n[Mert Adem Özseven](https://mertozseven.com)\n\n## Support\n\nFor support, please create an issue in the GitHub repository or contact [Mert Adem Özseven](https://mertozseven.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmertozseven%2Fqrreader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmertozseven%2Fqrreader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmertozseven%2Fqrreader/lists"}