Commit a2c5c59
committed
Add browser-native QR code scanner with Scittle
Implement a complete QR code scanner that runs entirely in the browser
using Scittle, Reagent, and jsQR library. No build tools or backend
required - just pure browser-native ClojureScript.
Features:
- Real-time QR code detection using WebRTC camera access
- Keyword arguments throughout for clarity and maintainability
- Visual feedback: flash animation, toast notifications, beep sound
- Result highlighting with copy-to-clipboard functionality
- Performance optimized with willReadFrequently canvas context
- Duplicate detection to prevent re-scanning same codes
Article includes:
- Comprehensive educational documentation
- Technology stack explanation (WebRTC, Canvas API, jsQR)
- Code architecture with state management patterns
- Real-world use cases (event check-in, inventory, 2FA, WiFi)
- Extension ideas and performance optimization tips
- Sample QR codes for immediate testing (blog, Clojure/conj, LinkedIn)
Files added:
- src/scittle/qrcode/qr_code_scanner.clj (main article, 608 lines)
- src/scittle/qrcode/qr_scanner.cljs (implementation, 481 lines)
- src/scittle/qrcode/*.png (3 sample QR code images)
This continues the browser-native development series alongside the
weather API and Pyodide integration articles.1 parent 3199688 commit a2c5c59
File tree
5 files changed
+1089
-0
lines changed- src/scittle/qrcode
5 files changed
+1089
-0
lines changedLoading
Loading
Loading
0 commit comments