[flutter] 플러터 프로바이더를 사용하여 음료 주문 앱 만들기
플러터(Flutter)는 Google에서 개발한 모바일 어플리케이션 개발 프레임워크이며, 프로바이더(Provider)는 상태 관리를 위한 패키지 중 하나입니다.
이번 블로그 포스트에서는 플러터 프로바이더를 사용하여 음료 주문 앱을 만들어보겠습니다.
목차
- 필요한 패키지 설치
- 모델 클래스 만들기
- 프로바이더 사용하기
- UI 구현
- 결론
1. 필요한 패키지 설치
플러터 프로바이더를 사용하기 위해서는 provider
패키지를 설치해야 합니다.
flutter pub add provider
2. 모델 클래스 만들기
주문할 음료의 정보를 담을 모델 클래스를 만들어줍니다.
class Drink {
final String name;
final String imageUrl;
final double price;
Drink({required this.name, required this.imageUrl, required this.price});
}
3. 프로바이더 사용하기
주문할 음료 목록과 장바구니에 담긴 음료 목록을 상태로 관리하기 위해 프로바이더를 사용합니다.
class DrinkProvider with ChangeNotifier {
List<Drink> _drinks = [
Drink(name: '아메리카노', imageUrl: 'assets/americano.jpg', price: 3000),
Drink(name: '카페라떼', imageUrl: 'assets/cafelatte.jpg', price: 3500),
// 음료 정보 추가
];
List<Drink> _cart = [];
List<Drink> get drinks => _drinks;
List<Drink> get cart => _cart;
// 장바구니에 음료 추가하는 메서드
void addToCart(Drink drink) {
_cart.add(drink);
notifyListeners();
}
}
4. UI 구현
주문할 음료 목록과 장바구니에 담긴 음료 목록을 화면에 표시하는 UI를 구현합니다.
class DrinkMenuScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
var drinks = Provider.of<DrinkProvider>(context).drinks;
return ListView.builder(
itemCount: drinks.length,
itemBuilder: (context, index) {
return ListTile(
leading: Image.asset(drinks[index].imageUrl),
title: Text(drinks[index].name),
subtitle: Text('가격: ${drinks[index].price}원'),
trailing: IconButton(
icon: Icon(Icons.add),
onPressed: () {
Provider.of<DrinkProvider>(context, listen: false).addToCart(drinks[index]);
},
),
);
},
);
}
}
class CartScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
var cart = Provider.of<DrinkProvider>(context).cart;
return ListView.builder(
itemCount: cart.length,
itemBuilder: (context, index) {
return ListTile(
leading: Image.asset(cart[index].imageUrl),
title: Text(cart[index].name),
subtitle: Text('가격: ${cart[index].price}원'),
);
},
);
}
}
5. 결론
플러터 프로바이더를 이용하여 음료 주문 앱을 만들어봤습니다. 프로바이더를 사용하면 상태를 효율적으로 관리할 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다.
이상으로, 프로바이더를 사용하여 음료 주문 앱을 만드는 방법에 대해 알아보았습니다.
참고 자료: