니꼬쌤 강의 들으며 포모도로 앱을 만들어 보았습니다.

주제는 포모도로 앱이고, 흔히 25분 일하고 5분 쉰다는 개념으로 필수적으로 시간이라는 개념이 들어가는 앱입니다.
그리하여, Timer 이라는 객체에 대해 공부를 해보았습니다.
import 'dart:async';
Timer? timer;
int totalSeconds = 2500;
// 타이머 시작
void onStartPressed() {
timer = Timer.periodic(Duration(seconds: 1), onTick);
}
// 1초마다 시작할 콜백 함수
void onTick(Timer timer) {
setState(() {
totalSeconds--;
});
}
위와 같이 'dart:async' 를 import 해줘야 되구요.
Timer 변수를 만들어 주고 생성자 periodic 를 통해 지속적으로 초 분 시간을 지정해, 콜백함수를 돌게 만들어 버립니다.
그래서 직접 interface를 확인하게 되면

이렇게 생겼습니다.
그 뒤, 저는 timer = Timer.periodic(Duration(seconds: 1), onTick ); 를 하여 1초마다 돌아가는걸 만들었으며, onTick 이라는 함수를 콜백으로 받았습니다.
위에 제가 선언한 onTick(Timer timer) 를 보면 Timer timer 가 들어가게 되는데 이건 필수적으로 들어가야하는 부분 입니다.
이유는 콜백을 받을 때, 위 인터페이스에 정의 된 것 처럼 callback(Timer timer) 로 이미 지정이 되어 있어서 불가항력 이라 무조건 적으로 넣어줘야 합니다.
이로서 앱 개발 할때 timer를 많이 쓰게 될 것 같은데 유용하게 배운것 같아서 뿌듯합니다.
https://github.com/GangOn0215/study/commit/4ca5a144509c228bf2f32406e18ed13da2b6bba4
'Mobile > Flutter' 카테고리의 다른 글
| [ project ] 냥이월드 (0) | 2025.09.25 |
|---|---|
| [ project ] Stop Watch ( 스톱워치 ) (0) | 2025.09.02 |
| [ project ] 클릭 게임 (0) | 2025.09.02 |
| [ 2025.08.20 ] 01. setState / Counter (0) | 2025.08.20 |
| [ 2025.08.19 ] StatefulWidget (0) | 2025.08.19 |