Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📷 QRScanner - iOS App

iOS Swift SwiftUI MVVM AVFoundation

Минималистичный QR-сканер с использованием SwiftUI и AVFoundation


✨ Основные возможности

Функция Описание
📷 Сканирование QR-кодов Использование камеры устройства через AVFoundation
Мгновенное распознавание Быстрое получение данных после наведения
🔗 Обработка ссылок Возможность открыть ссылку в браузере
📋 Копирование результата Копирование отсканированного текста
🔄 Повторное сканирование Быстрое возвращение к камере
🎨 Кастомный Overlay Визуальная рамка наведения на QR-код

🏗️ Архитектура

Проект реализован с использованием архитектурного паттерна MVVM (Model-View-ViewModel).

graph TD
    A[ContentView] --> B[QRScannerViewModel]
    B --> C[AVCaptureSession]
    B --> D[AVCaptureMetadataOutput]
    A --> E[CameraPreview]
    A --> F[ResultSheet]
Loading

🔧 Технологический стек:

  • UI Framework: SwiftUI
  • Architecture: MVVM
  • Camera & Scanning: AVFoundation

📁 Структура проекта

QRScanner/
├── QRScannerApp.swift          # Точка входа приложения
├── ContentView.swift           # Главный экран
├── QRScannerViewModel.swift    # Логика сканирования (MVVM)
├── CameraPreview.swift         # UIViewRepresentable для камеры
├── ViewFinderOverlay.swift     # Overlay с рамкой наведения
├── ResultSheet.swift           # Модальное окно результата
└── Assets.xcassets             # Ресурсы

🎓 Обучающий проект

Проект реализован по видеоуроку:

📺 YouTube:
SwiftUI QR Scanner Tutorial

В процессе реализации:

  • Освоена интеграция AVFoundation в SwiftUI
  • Реализован UIViewRepresentable для камеры
  • Настроена работа с AVCaptureSession
  • Обработаны разрешения на доступ к камере
  • Реализована реактивная логика через ViewModel

🚀 Быстрый старт

Требования

  • iOS: 16.0+
  • Xcode: 15.0+
  • Swift: 5.9+

Установка

git clone https://github.com/YourUsername/QRScanner.git
cd QRScanner
open QRScanner.xcodeproj

⚠️ Не забудьте добавить в Info.plist:

<key>NSCameraUsageDescription</key>
<string>Приложению требуется доступ к камере для сканирования QR-кодов</string>

📖 Использование

  1. Запустите приложение
  2. Наведите камеру на QR-код
  3. Дождитесь автоматического распознавания
  4. В открывшемся окне:
    • 🔗 Откройте ссылку
    • 📋 Скопируйте данные
    • 🔄 Отсканируйте снова

🔐 Разрешения

Приложение использует:

  • 📷 Камеру (AVFoundation)

Никакие данные не сохраняются и не передаются на сервер.


📄 Лицензия

Проект создан в образовательных целях. Распространяется под лицензией MIT.


⭐ Если вам понравилась реализация, не забудьте поставить звезду!

About

A fast, minimalist QR Code scanner for iOS built with SwiftUI and AVFoundation.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages