[flutter] 플러터에서 useTimer 훅(hook)을 이용한 시간 관리 기능 구현
플러터(Flutter)에서 상태 관리를 위해 훅(hook)을 사용하는 것은 매우 편리합니다. 특히, 타이머 기능을 구현할 때 useTimer 훅을 사용하면 매우 유용합니다. 이번 글에서는 플러터에서 useTimer 훅을 이용하여 간단한 시간 관리 기능을 구현하는 방법을 살펴보겠습니다.
useTimer 훅 소개
useTimer 훅은 특정 시간 간격으로 작업을 수행하거나 일정 시간 동안 작업을 수행하는 데 사용됩니다. 이를 통해 앱에서 시간 관리와 관련된 다양한 작업을 구현할 수 있습니다.
시간 관리 기능 구현
플러터 프로젝트에서 상태 관리를 위해 provider
패키지를 사용한다고 가정하고, useTimer 훅을 사용하여 시간 관리 기능을 구현하는 방법은 다음과 같습니다.
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
final timerProvider = StateProvider<Timer>((ref) {
return Timer();
});
class Timer {
int _seconds = 0;
bool _isRunning = false;
void startTimer() {
_isRunning = true;
Future.doWhile(() async {
await Future.delayed(Duration(seconds: 1));
_seconds++;
return _isRunning;
});
}
void stopTimer() {
_isRunning = false;
}
int get seconds => _seconds;
}
class TimerWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
final timer = context.read(timerProvider);
return Column(
children: [
Text('Timer: ${timer.state.seconds}'),
ElevatedButton(
onPressed: () {
if (timer.state._isRunning) {
timer.state.stopTimer();
} else {
timer.state.startTimer();
}
},
child: Text(timer.state._isRunning ? 'Stop' : 'Start'),
),
],
);
}
}
void main() {
runApp(
ProviderScope(
child: MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Timer Example'),
),
body: TimerWidget(),
),
),
),
);
}
위 코드는 플러터 앱에서 useTimer 훅을 이용하여 간단한 타이머를 구현한 예시입니다. 이를 통해 플러터에서 useTimer 훅을 사용하여 시간 관리 기능을 구현할 수 있습니다.
마무리
이 글에서는 플러터에서 useTimer 훅을 이용하여 시간 관리 기능을 구현하는 방법에 대해 알아보았습니다. useTimer 훅을 사용하면 간단하게 타이머와 관련된 기능을 구현할 수 있으므로, 필요한 경우에 활용해보시기 바랍니다.