Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- MDP
- 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습
- ML
- Computer Architecture
- bloc
- 백준
- PCA
- C++
- Widget
- ARM
- BAEKJOON
- MATLAB
- rao
- BOF
- system hacking
- Kaggle
- Dreamhack
- 영상처리
- Got
- Algorithm
- Stream
- llm을 활용 단어장 앱 개발일지
- DART
- fastapi를 사용한 파이썬 웹 개발
- Flutter
- study book
- Image Processing
- BFS
- FastAPI
- pytorch
Archives
- Today
- Total
Bull
[Flutter::Animation] Ticker 이해 본문
Ticker란?
Ticker는. Ticker는 일정한 시간 간격으로 콜백을 호출하는 객체입니다. 이를 통해 애니메이션 프레임을 생성하고, 애니메이션의 상태를 업데이트할 수 있습니다. 공식 문서에 첫줄을 보면 애니메이션 프레임당 한 번 콜백한다는 사실을 알 수 있습니다.
Ticker의 역할
- 애니메이션 프레임 생성:
- Ticker는 지정된 간격으로 콜백을 호출하여 애니메이션 프레임을 생성합니다. 이를 통해 애니메이션이 부드럽게 실행됩니다.
- 시간 기반 업데이트:
- Ticker는 시간 기반으로 상태를 업데이트합니다. 예를 들어, 애니메이션의 진행 상황을 시간에 따라 계산하고, 화면을 다시 그리는 역할을 합니다.
Ticker 사용
플러터에서 Ticker를 직접 사용할 때는 보통 TickerProvider
를 통해 Ticker를 생성합니다. 주로 SingleTickerProviderStateMixin
이나 TickerProviderStateMixin
을 사용하여 Ticker를 제공합니다.
Ticker class 혼자만으로 Ticker를 생성할 수 없다는 사실을 알 수 있습니다.
기본 사용 예제
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
class TickerDemo extends StatefulWidget {
@override
_TickerDemoState createState() => _TickerDemoState();
}
class _TickerDemoState extends State<TickerDemo> with SingleTickerProviderStateMixin {
Ticker? _ticker;
int _counter = 0;
@override
void initState() {
super.initState();
_ticker = this.createTicker((Duration elapsed) {
setState(() {
_counter++;
print('Elapsed time: ${elapsed.inMilliseconds} ms');
});
});
_ticker?.start();
}
@override
void dispose() {
_ticker?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Ticker Demo')),
body: Center(
child: Text('Tick count: $_counter'),
),
);
}
}
void main() => runApp(MaterialApp(home: TickerDemo()));
Ticker
를 사용하여 _counter
변수를 매 틱마다 증가시킵니다. SingleTickerProviderStateMixin
을 사용하여 Ticker
를 생성하고 관리합니다. Ticker는 보통 화면의 새로 고침 주기(예: 60Hz에서 약 16.67ms)와 동기화되므로, elapsed 값은 일반적으로 약 16ms 간격으로 증가할 것입니다.
codewithandrea 강의 나 Flutter 공식 문서에서 확인하실 수 있습니다.
결과
사진과 같이 16ms 마다 Tick이 올라가는 것을 확인할 수 있습니다. 실제 애니메이션에서도 1프레임 마다 업데이트를 해주면서 동적인 모습을 나타내줄 수 있는 것 입니다.
Ticker 관련 공식 문서
'Software Framework > Flutter' 카테고리의 다른 글
[Flutter::Animation] Fade 기법 (1) | 2024.07.25 |
---|---|
[Flutter::Animation] implicits animations (ImplicitlyAnimatedWidget) (2) | 2024.07.24 |
[Flutter::Animation] Tween 예제를 쓰면서 이해해보자 (3) | 2024.07.23 |
[Flutter::Widget] Flutter에서 git Contributions Graph(잔디밭)을 만들어 보자. (0) | 2024.07.17 |
[Flutter::Widget] Card를 이용하여 트위터, 링크드인, 레딧같은 Feed 포스트 만들어보기 (0) | 2024.07.17 |