This project is a React Native application built to demonstrate how to implement camera scanning, QR generation, and persistent state management in a mobile environment.
It serves as a production-ready example and showcases how to:
- Scan QR Codes: Real-time scanning using the device camera
- Generate QR Codes: Create QR codes from text or URLs
- Manage History: Local storage of scanned codes with history management
- Personalize Experience: Theming (Light/Dark mode) and customizable accent colors
- Handle Permissions: Managing camera and library access gracefully
- Integrate Native Features: Vibration, Share API, and File System access
The recommended way to get started is by using the Expo CLI,
but here is the short version:
- Clone this repository
- Install dependencies:
npm install
- Start the development server:
npx expo start
- Run on a device or emulator:
- Use the Expo Go app on your phone to scan the QR code
- Or press
afor Android Emulator /ifor iOS Simulator
This project is designed to be reusable.
You can fork or clone it and adapt it to your own needs by:
- Adding a new Search Engine: Edit
src/context/AppStateProvider.jsx(searchEngine state) andsrc/views/Settings.jsx. - Modifying the Theme: Change color constants in
src/context/AppStateProvider.jsxorconstants/theme.ts(if available). - Adding new supported Barcode types: Update the
barCodeScannerSettingsinsrc/views/Scanner.jsx.
It works well as a starter boilerplate for any barcode or QR-centric mobile utility.
If you find an issue or have a suggestion for improvement:
- Open an issue using the Issues tab
- If submitting a PR, please reference the related issue
Contributions are welcome 🚀