안녕하세요! 이번 포스트에서는 플러터(Flutter) 앱에 NFC 태그의 읽기 및 쓰기 기능을 추가하는 방법에 대해 알아보겠습니다.
준비물
- NFC 기능을 지원하는 안드로이드 단말기
- NFC 패키지를 사용하기 위한 Flutter 프로젝트
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 기능을 활용하여 플러터 앱을 보다 더 풍부한 기능을 갖춘 앱으로 발전시켜보세요!