728x90
반응형
플러터 앱에서 매끄러운 애니메이션 효과와 함께 카운트다운 기능을 구현할 수 있도록 도와주는 slide_countdown 패키지에 대해 자세히 알아보겠습니다.
1. slide_countdown 패키지 소개
slide_countdown은 플러터 앱에서 다양한 애니메이션 효과를 가진 매력적인 카운트다운 타이머를 쉽게 만들 수 있도록 하는 인기 있는 패키지입니다.
2. 설치 및 사용 방법
2.1 패키지 설치
1. pubspec.yaml 파일에 다음 코드를 추가합니다.
dependencies:
slide_countdown: ^3.1.2
2. flutter pub get 명령어를 실행하여 패키지를 설치합니다.
2.2 사용 방법
1. 사용하려는 Dart 파일에 import 'package:slide_countdown/slide_countdown.dart'; 코드를 추가합니다.
2. SlideCountdown 위젯을 사용하여 카운트다운 타이머를 생성합니다.
import 'package:slide_countdown/slide_countdown.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: SlideCountdown(
duration: Duration(seconds: 60),
color: Colors.blue,
onDone: () {
print('카운트다운 종료!');
},
),
),
),
);
}
}
3. 주요 옵션
- duration: 카운트다운 시간 (Duration 타입, 필수)
- color: 슬라이드 색상 (Color 타입, 기본값: Colors.blue)
- borderWidth: 슬라이드 테두리 너비 (double 타입, 기본값: 4.0)
- size: 슬라이드 크기 (double 타입, 기본값: 100.0)
- padding: 슬라이드 내용 패딩 (EdgeInsets 타입, 기본값: EdgeInsets.all(8.0))
- decoration: 슬라이드 위젯 데코레이션 (BoxDecoration 타입, 기본값: BoxDecoration())
- slideChild: 슬라이드 안에 표시될 위젯 (Widget 타입, 기본값: Text(''))
- slideTextBuilder: 슬라이드 텍스트 구성 함수 (SlideCountdownTextBuilder 타입, 기본값: (remainingTime) => remainingTime.toString())
- onDone: 카운트다운 종료 시 실행되는 함수 (VoidCallback 타입)
- borderRadius: 슬라이드 모서리 곡률 (BorderRadius 타입, 기본값: BorderRadius.circular(20.0))
- slideDirection: 슬라이드 방향 (SlideDirection 타입, 기본값: SlideDirection.TOP_TO_BOTTOM)
- enableInfiniteAnimation: 무한 반복 애니메이션 여부 (bool 타입, 기본값: false)
- showRemainingTime: 남은 시간 표시 여부 (bool 타입, 기본값: true)
- remainingTimeTextStyle: 남은 시간 텍스트 스타일 (TextStyle 타입)
- countdownTextStyle: 카운트다운 텍스트 스타일 (TextStyle 타입)
4. 다양한 카운트다운 디자인 구현
위에서 소개된 옵션들을 활용하여 원하는 디자인과 기능의 카운트다운 타이머를 만들 수 있습니다.
- 색상 변경
SlideCountdown(
duration: Duration(seconds: 60),
color: Colors.red,
borderWidth: 8.0,
size: 150.0,
padding: EdgeInsets.all(16.0),
slideChild: Text('카운트다운!'),
slideTextBuilder: (remainingTime) => remainingTime.toString() + '초',
borderRadius: BorderRadius.circular(30.0),
slideDirection: SlideDirection.LEFT_TO_RIGHT,
),
- 무한 반복 애니메이션
SlideCountdown(
duration: Duration(seconds: 60),
enableInfiniteAnimation: true,
color: Colors.green,
borderWidth: 6.0,
size: 120.0,
padding: EdgeInsets.all(12.0),
slideChild: Text('무한 반복!'),
slideTextBuilder: (remainingTime) => remainingTime.toString() + '초',
borderRadius: BorderRadius.circular(25.0),
slideDirection: SlideDirection.TOP_TO_BOTTOM,
),
5. 다양한 카운트다운 디자인 구현
- 사용자 정의 슬라이드
class MySlide extends AnimatedWidget {
const MySlide({Key? key, required this.animation}) : super(key: key);
final Animation<double> animation;
@override
Widget build(BuildContext context) {
final animationPercent = animation.value;
final width = animationPercent * 300;
final height = 100;
return Container(
width: width,
height: height,
color: Colors.purple,
child: Center(
child: Text('${animationPercent.toStringAsFixed(2)}%'),
),
);
}
}
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: SlideCountdown(
duration: Duration(seconds: 60),
color: Colors.transparent,
borderWidth: 0.0,
size: 300.0,
slideChild: MySlide(animation: animation,),
slideTextBuilder: (remainingTime) => '',
),
),
),
);
}
}
- 카운트다운 완료 시 알림
import 'package:flutter/material.dart';
import 'package:slide_countdown/slide_countdown.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: SlideCountdown(
duration: Duration(seconds: 60),
color: Colors.amber,
onDone: () {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text('카운트다운 완료!'),
content: Text('시간이 다 되었습니다!'),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('확인'),
),
],
),
);
},
),
),
),
);
}
}
6. 마무리
slide_countdown 패키지를 활용하면 플러터 앱에서 매끄럽고 다양한 카운트다운 타이머를 쉽게 만들 수 있습니다.
위에 소개된 내용을 참고하여 원하는 디자인과 기능의 카운트다운 타이머를 만들어 보세요!
팁
- 다양한 옵션들을 조합하여 원하는 디자인을 만들 수 있습니다.
- 애니메이션 속도와 효과는 AnimationController 및 Curves 클래스를 사용하여 조정할 수 있습니다.
- 사용자 정의 위젯을 사용하여 더욱 독창적인 카운트다운 디자인을 만들 수 있습니다.
플러터 앱 개발에 도움이 되셨으면 좋겠습니다!
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
728x90
반응형
'Flutter > Package' 카테고리의 다른 글
플러터에서 DateTime 다루기 및 파싱 방법 (0) | 2024.07.28 |
---|---|
플러터에서 SlidingUpPanel 패키지 사용 방법과 옵션 정리 (0) | 2024.07.28 |
플러터에서 간편하게 데이터 저장하기: shared_preferences 패키지 사용법 가이드 (0) | 2024.07.28 |
플러터에서 Fluttertoast 패키지 사용법과 옵션 설명 (0) | 2024.07.28 |
플러터에서 animated_splash_screen 패키지 사용법 및 옵션 가이드 (0) | 2024.07.28 |