[ Project ] Pomodoro App

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

 

주제는 포모도로 앱이고, 흔히 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