[flutter] 플러터 프로바이더를 사용하여 음식점 정보 가져오기
이번에는 플러터 앱에서 프로바이더를 사용하여 음식점 정보를 가져오는 방법에 대해 알아보겠습니다.
프로바이더 설정
먼저, pubspec.yaml
파일에 provider
패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
provider: ^5.0.3
그런 다음 터미널에서 flutter pub get
명령을 사용하여 패키지를 설치합니다.
프로바이더 모델 만들기
음식점 정보를 담는 모델을 만들어봅시다. Provider 패키지를 사용하여 음식점 정보를 제공하는 프로바이더를 만들 것입니다.
import 'package:flutter/foundation.dart';
class Restaurant {
final String name;
final String cuisine;
Restaurant({
required this.name,
required this.cuisine,
});
}
프로바이더 클래스 만들기
이제 프로바이더 클래스를 만들어 음식점 정보를 제공합니다.
import 'package:flutter/material.dart';
import 'restaurant.dart';
class RestaurantProvider with ChangeNotifier {
Restaurant _restaurant = Restaurant(name: '맛있는 음식점', cuisine: '한식');
Restaurant get restaurant => _restaurant;
void updateRestaurant(Restaurant newRestaurant) {
_restaurant = newRestaurant;
notifyListeners();
}
}
메인 앱에서 프로바이더 사용하기
이제 메인 앱에서 프로바이더를 사용하여 음식점 정보를 가져올 수 있습니다.
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'restaurant_provider.dart';
void main() {
runApp(
ChangeNotifierProvider(
create: (context) => RestaurantProvider(),
child: MyApp(),
),
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('음식점 정보'),
),
body: Container(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'음식점 이름: ${context.watch<RestaurantProvider>().restaurant.name}',
),
Text(
'음식 종류: ${context.watch<RestaurantProvider>().restaurant.cuisine}',
),
],
),
),
),
),
);
}
}
이제 앱을 실행하면 프로바이더를 사용하여 음식점 정보를 가져와 화면에 표시할 수 있습니다.
프로바이더를 사용하여 데이터를 관리하면 상태 관리가 간편해지고, 코드가 깔끔해질 뿐만 아니라, 앱의 성능도 향상될 수 있습니다.
이렇게 프로바이더를 활용하여 음식점 정보를 가져오는 방법에 대해 알아보았습니다. 플러터 앱 개발 시 유용하게 활용할 수 있을 것입니다.
참고 문헌:
- https://pub.dev/packages/provider
- https://flutter.dev/docs/development/data-and-backend/state-mgmt/simple#changenotifier