[flutter] 플러터 Checkbox NFC 태그 읽기/쓰기 기능 추가하기

안녕하세요! 이번 포스트에서는 플러터(Flutter) 앱에 NFC 태그의 읽기 및 쓰기 기능을 추가하는 방법에 대해 알아보겠습니다.

준비물

NFC 패키지 추가하기

플러터 프로젝트에 NFC 패키지를 추가해야 합니다. 이를 위해 pubspec.yaml 파일에 다음과 같은 의존성을 추가해주세요:

dependencies:
  flutter:
    sdk: flutter
  flutter_nfc_reader: ^1.0.0

의존성을 추가한 후에는 터미널에서 flutter packages get 명령어를 실행하여 패키지를 다운로드하고 프로젝트를 업데이트해야 합니다.

NFC 태그 읽기

NFC 태그를 읽기 위해서는 FlutterNfcReader 클래스의 read 메서드를 사용할 수 있습니다. 다음은 NFC 태그를 읽고 결과를 출력하는 간단한 예제 코드입니다:

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

class ReadNfcTagScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Read NFC Tag'),
      ),
      body: Center(
        child: RaisedButton(
          child: Text('Read Tag'),
          onPressed: () {
            FlutterNfcReader.read.listen((response) {
              if (response['status'] == 'read') {
                String tagId = response['id'];
                showDialog(
                  context: context,
                  builder: (BuildContext context) {
                    return AlertDialog(
                      title: Text('NFC Tag'),
                      content: Text('Tag ID: $tagId'),
                      actions: <Widget>[
                        FlatButton(
                          child: Text('OK'),
                          onPressed: () {
                            Navigator.of(context).pop();
                          },
                        ),
                      ],
                    );
                  },
                );
              }
            });
          },
        ),
      ),
    );
  }
}

위 코드에서 중요한 부분은 FlutterNfcReader.read.listen 부분입니다. 이 메서드는 NFC 태그가 읽혔을 때 실행되는 콜백 함수를 등록하는 역할을 합니다.

NFC 태그 쓰기

NFC 태그에 데이터를 쓰기 위해서는 FlutterNfcReader 클래스의 write 메서드를 사용할 수 있습니다. 다음은 NFC 태그에 데이터를 쓰는 예제 코드입니다:

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

class WriteNfcTagScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Write NFC Tag'),
      ),
      body: Center(
        child: RaisedButton(
          child: Text('Write Tag'),
          onPressed: () {
            FlutterNfcReader.write("Hello NFC").listen((response) {
              if (response['status'] == 'write') {
                showDialog(
                  context: context,
                  builder: (BuildContext context) {
                    return AlertDialog(
                      title: Text('NFC Tag'),
                      content: Text('Successfully written to NFC Tag'),
                      actions: <Widget>[
                        FlatButton(
                          child: Text('OK'),
                          onPressed: () {
                            Navigator.of(context).pop();
                          },
                        ),
                      ],
                    );
                  },
                );
              }
            });
          },
        ),
      ),
    );
  }
}

위 코드에서 FlutterNfcReader.write 메서드는 NFC 태그에 쓸 데이터를 인자로 받습니다. 쓰기가 완료되면 write 상태로 콜백 함수가 실행됩니다.

결론

이제 플러터 앱에 NFC 태그의 읽기 및 쓰기 기능을 추가하는 방법에 대해 알아보았습니다. NFC 패키지를 사용하여 프로젝트에 NFC 기능을 손쉽게 추가할 수 있습니다. 다양한 NFC 기능을 활용하여 플러터 앱을 보다 더 풍부한 기능을 갖춘 앱으로 발전시켜보세요!

참고 자료