1. 개요
Flutter 에서 기간 혹은 시간을 나타내기 위해서는 Duration
을 사용한다.
사용 예시는 다음과 같다.
- 1밀리초:
Duration(milliseconds: 1)
- 50분:
Duration(minutes: 50)
- 1년:
Duration(days: 365)
1.1. 개선 필요성
위와 같은 쓰임은 개발하는데 상당히 불편했다.
Future.delayed()
나, Timer.periodic()
함수 등과 같이 쓰이기라도 한다면, 코드길이가 너무 길어지고 가독성이 많이 떨어졌다. 또한 const
를 붙이라는 IDE 의 말을 따른다면 다음과 같은 코드가 완성된다.
await Future.delayed(const Duration(milliseconds: 500), () {
// ...
});
Timer.periodic(const Duration(milliseconds: 500), (_) {
// ...
});
이를 Dart 의 extension
을 활용하여 더욱 간단히 표현하고자 한다.
2. 활용 문법
2.1. extension
2.2. get
3. 구현
extension IntExtension on int {
Duration get ms => Duration(milliseconds: this);
Duration get s => Duration(seconds: this);
Duration get m => Duration(minutes: this);
Duration get h => Duration(hours: this);
Duration get d => Duration(days: this);
Duration get w => Duration(days: this * 7);
Duration get y => Duration(days: this * 365);
}
위와 같이 구현하면, 단순히 int
값 뒤에 ms
, s
, m
등을 호출하여 Duration
을 간단하게 나타낼 수 있다.
500.ms; // Duration(milliseconds: 500);
50.h; // Duration(hours: 50);
2.w; // Duration(days: 14);
728x90
'Develop > Flutter' 카테고리의 다른 글
[Flutter] 한글 Utility 기능 (0) | 2025.01.28 |
---|---|
[Flutter] 문자열 명명 형식 변환기 (String Case Converter) (0) | 2024.11.29 |
[Flutter] 순환 캐러셀 (Circular Carousel) 위젯 만들기 (0) | 2023.10.16 |
[Flutter] 토스 스타일의 Pressable 커스텀 위젯 만들기 (0) | 2023.09.23 |