QRFusion is a modern QR code scanning and sharing app built with SwiftUI and The Composable Architecture (TCA). It offers a seamless experience for scanning QR codes via camera, extracting them from the gallery, and displaying your own wallet address as a custom-branded QR code.
📷 Live camera scan · 🖼 Gallery import · 🎨 Custom QR with logo · 📤 Share & copy · ⚙️ Built with TCA
- 📷 Live camera scanning using
AVFoundation - 🖼️ Scan from gallery with
PHPicker+Vision - 🔲 Custom QR generation with color, logo overlay & rounded modules
- 🟨 Highlight detected QR code with animated yellow frame
- 📤 Export QR as image with
ShareLink - 🌐 Reactive state management via TCA
- 💡 Flashlight control during scanning
- 🔒 Privacy-first design: no tracking, no analytics
QRFusion is built with The Composable Architecture (TCA), using a modular and scalable approach:
AppFeature
├── ScanFeature // Handles camera scanning and QR recognition
├── PreviewFeature // Shows user's wallet QR code with share/copy
└── CameraService // Manages AVCaptureSession, metadata, flashlight
- ✅
@Reducerand@CasePathablefor feature boundaries - 📦
@PresentationStatefor sheets and modals - 📸
AVCaptureSessionwith live preview and QR metadata detection - 🧠
Visionframework for barcode detection in gallery images - 🧬
CoreImagefor custom QR code rendering
| Scan QR | Wallet QR Preview |
|---|---|
![]() |
![]() |
- Swift 5.9+
- iOS 16+
- Xcode 15+
- SwiftUI
- ComposableArchitecture
- AVFoundation
- Vision
- CoreImage
- PhotosUI
git clone https://github.com/mustafos/QRFusion.git
cd ScannerApp
open ScannerApp.xcodeproj🚨 Note: Camera features require a real device. Simulator won't work for scanning.
This project is licensed under the MIT License — see the LICENSE file for details.

