[flutter] Flutter Riverpod에서 화폐 환전 앱 만들기
개요
이번 글에서는 Flutter 및 Riverpod를 사용하여 화폐 환전 애플리케이션을 만드는 방법에 대해 알아보겠습니다. Riverpod를 이용하면 의존성 관리 및 상태 관리를 효율적으로 할 수 있으며, Flutter를 사용하여 멋진 UI를 구현할 수 있습니다.
프로젝트 설정
먼저, Flutter 프로젝트를 생성하고 Riverpod 패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
riverpod: ^1.0.3
패키지를 설치한 후, 필요한 파일들을 import 합니다.
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
환전 앱 UI 구성
애플리케이션의 화폐 환전 UI를 구성해 봅시다. 환전할 화폐의 종류와 금액을 입력하고, 실시간으로 환전 결과를 확인할 수 있는 UI를 만들어야 합니다.
class ExchangeApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ProviderScope(
child: MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('화폐 환전 앱'),
),
body: ExchangeForm(),
),
),
);
}
}
class ExchangeForm extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
TextFormField(
decoration: InputDecoration(labelText: '금액'),
keyboardType: TextInputType.number,
),
SizedBox(height: 10),
DropdownButton<String>(
value: 'USD',
items: <String>['USD', 'KRW', 'EUR', 'JPY']
.map((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
})
.toList(),
onChanged: (String newValue) {
// 환전할 화폐 선택 시 처리
},
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
// 환전 버튼 클릭 시 처리
},
child: Text('환전'),
),
SizedBox(height: 20),
// 환전 결과 표시할 부분
],
),
);
}
}
상태 및 의존성 관리
이제 Riverpod를 사용하여 환전 앱의 환율 정보 및 환전 결과를 상태로 관리하고, API와의 의존성을 관리해 봅시다.
final exchangeRateProvider = FutureProvider.autoDispose((ref) async {
// API를 통해 환율 정보 가져오기
});
final exchangeResultProvider = StateProvider((ref) => 0.0);
final exchangeProvider = Provider((ref) {
// 환전 처리 및 결과 반환
});
환전 앱 완성
마지막으로, UI와 상태 및 의존성을 연결하여 환전 앱을 완성합니다.
class ExchangeForm extends ConsumerWidget {
@override
Widget build(BuildContext context, ScopedReader watch) {
final exchangeRate = watch(exchangeRateProvider);
final exchangeResult = watch(exchangeResultProvider);
final exchange = context.read(exchangeProvider);
return Container(
// UI 구성
);
}
}
위와 같이 Flutter와 Riverpod를 사용하여 화폐 환전 앱을 만들 수 있습니다. Riverpod를 통해 상태 및 의존성을 효율적으로 관리하고, Flutter를 통해 멋진 UI를 구현할 수 있습니다. 이를 기반으로 다양한 기능을 추가하여 완성도 높은 화폐 환전 앱을 만들어보세요.
참고 자료: