[flutter] 플러터 프로바이더를 사용하여 지불 앱 만들기
지불 앱을 만들기 위해 Flutter와 프로바이더를 사용하여 앱의 상태를 관리할 수 있습니다. 이번 블로그에서는 프로바이더를 사용하여 지불 앱을 만드는 방법을 알아보겠습니다.
필수 패키지 설치
우선, 플러터 프로젝트에 다음과 같은 패키지를 설치해야 합니다.
dependencies:
flutter:
sdk: flutter
provider: ^6.0.0
모델과 프로바이더 만들기
지불 정보를 저장할 모델을 만듭니다.
class Payment {
final String name;
final double amount;
Payment(this.name, this.amount);
}
다음으로, 지불 정보를 관리할 프로바이더를 만듭니다.
import 'package:flutter/material.dart';
class PaymentProvider with ChangeNotifier {
List<Payment> _payments = [];
List<Payment> get payments => _payments;
void addPayment(Payment payment) {
_payments.add(payment);
notifyListeners();
}
}
화면 구성
이제 지불 정보를 입력하고, 추가할 수 있는 화면을 만들어봅시다.
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'payment_provider.dart';
class PaymentScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('지불 앱'),
),
body: Column(
children: [
TextField(
decoration: InputDecoration(labelText: '이름'),
),
TextField(
decoration: InputDecoration(labelText: '금액'),
keyboardType: TextInputType.number,
),
ElevatedButton(
onPressed: () {
// Add payment to provider
var name = // Get name from text field
var amount = // Get amount from text field
var paymentProvider = Provider.of<PaymentProvider>(context, listen: false);
paymentProvider.addPayment(Payment(name, double.parse(amount)));
},
child: Text('추가'),
),
],
),
);
}
}
지불 정보 표시
마지막으로, 프로바이더에서 받아온 지불 정보를 화면에 표시합니다.
class PaymentList extends StatelessWidget {
@override
Widget build(BuildContext context) {
var paymentProvider = Provider.of<PaymentProvider>(context);
var payments = paymentProvider.payments;
return ListView.builder(
itemCount: payments.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(payments[index].name),
subtitle: Text('${payments[index].amount}원'),
);
},
);
}
}
프로바이더를 사용하여 지불 앱을 만드는 방법에 대해 알아보았습니다. 프로바이더를 사용하면 상태 관리를 효율적으로 할 수 있고, 다양한 기능을 수월하게 추가할 수 있습니다.