[flutter] 플러터(Flutter)에서 QR 코드 생성 및 스캔 방법은?

플러터(Flutter) 앱에서 QR 코드를 생성하고 스캔하는 기능은 많은 애플리케이션에서 활용되고 있습니다. 이번 글에서는 플러터를 사용하여 QR 코드를 생성하고 스캔하는 방법에 대해 알아보겠습니다.

QR 코드 생성하기

플러터에서 QR 코드를 생성하는 방법은 qr_flutter 패키지를 사용하는 것이 일반적입니다. 먼저, pubspec.yaml 파일에 다음과 같이 qr_flutter 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  qr_flutter: ^3.2.0

그 다음, QR 코드를 생성하고 싶은 화면에서 다음과 같이 코드를 작성합니다.

import 'package:flutter/material.dart';
import 'package:qr_flutter/qr_flutter.dart';

class MyQrCodeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('내 QR 코드'),
      ),
      body: Center(
        child: QrImage(
          data: '내용이 들어갈 부분',
          version: QrVersions.auto,
          size: 200.0,
        ),
      ),
    );
  }
}

위 코드를 실행하면 해당 화면에서 지정한 내용을 가지고 있는 QR 코드가 생성됩니다.

QR 코드 스캔하기

플러터(Flutter)에서 QR 코드를 스캔하는 방법은 qr_code_scanner 패키지를 이용하면 간단하게 구현할 수 있습니다. 먼저, pubspec.yaml 파일에 다음과 같이 qr_code_scanner 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  qr_code_scanner: ^0.4.0

그 다음, QR 코드를 스캔할 화면에서 다음과 같이 코드를 작성합니다.

import 'package:flutter/material.dart';
import 'package:qr_code_scanner/qr_code_scanner.dart';

class QrScannerScreen extends StatefulWidget {
  @override
  _QrScannerScreenState createState() => _QrScannerScreenState();
}

class _QrScannerScreenState extends State<QrScannerScreen> {
  final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('QR 코드 스캔'),
      ),
      body: QRView(
        key: qrKey,
        onQRViewCreated: _onQRViewCreated,
      ),
    );
  }

  void _onQRViewCreated(QRViewController controller) {
    controller.scannedDataStream.listen((scanData) {
      // 스캔한 내용 처리
    });
  }

  @override
  void dispose() {
    super.dispose();
  }
}

위 코드를 실행하면 해당 화면에서 카메라를 활용하여 QR 코드를 스캔할 수 있습니다.

이상으로 플러터에서 QR 코드를 생성하고 스캔하는 방법에 대해 알아보았습니다. QR 코드 관련하여 더 자세한 내용은 해당 패키지의 문서를 참고하시기 바랍니다.

참고 문서: