[flutter] Flutter Riverpod에서 패션 스타일링 앱 만들기
Riverpod은 Flutter에서 상태 관리를 위한 강력한 도구로, 이를 활용하여 패션 스타일링 앱을 만들어보겠습니다. 이 앱은 사용자가 옷과 액세서리를 조합해보고 스타일링을 연습할 수 있는 실용적인 기능을 제공합니다.
Riverpod 설정
먼저 pubspec.yaml
파일에 다음과 같이 riverpod
을 추가합니다:
dependencies:
flutter:
sdk: flutter
riverpod: ^0.14.0+3
그런 다음, main.dart
파일에서 Riverpod을 초기화하고 프로바이더를 등록합니다:
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
void main() {
runApp(
ProviderScope(
child: MyApp(),
),
);
}
final outfitProvider = StateNotifierProvider((ref) => OutfitNotifier());
패션 아이템 데이터 모델
앱에서 사용할 패션 아이템의 데이터 모델을 만들어보겠습니다.
class FashionItem {
final String id;
final String name;
final String category;
final String imageUrl;
FashionItem({
required this.id,
required this.name,
required this.category,
required this.imageUrl,
});
}
상태 변경을 위한 Notifier 작성
다음으로, 상태를 변경하는 Notifier를 작성합니다.
class OutfitNotifier extends StateNotifier<List<FashionItem>> {
OutfitNotifier() : super([]);
void addNewItem(FashionItem newItem) {
state = [...state, newItem];
}
void removeItem(String itemId) {
state = state.where((item) => item.id != itemId).toList();
}
}
UI 구성
이제 UI를 설계하고 상태를 변경하는 UI 레이어와 연결합니다. 이때, Consumer
위젯을 사용하여 상태 변화를 관찰하고, Provider
위젯을 통해 상태를 제공합니다.
아래는 패션 아이템을 표시하고 조작하는 간단한 예시입니다:
Consumer(
builder: (context, watch, child) {
final outfit = watch(outfitProvider);
return ListView.builder(
itemCount: outfit.length,
itemBuilder: (context, index) {
final item = outfit[index];
return ListTile(
leading: Image.network(item.imageUrl),
title: Text(item.name),
onTap: () {
context.read(outfitProvider.notifier).removeItem(item.id);
},
);
},
);
},
)
결론
Riverpod을 사용하여 Flutter 앱에 상태 관리 기능을 추가하는 방법을 살펴보았습니다. 이를 활용하여 패션 스타일링 앱을 만들었는데, 이제 여러분들은 이를 확장하고 보다 다양한 기능을 추가할 수 있습니다.
더 많은 정보를 원하시면 Riverpod 공식 문서를 참고하세요.