[flutter] cupertino_icons를 사용하여 아이콘에 애니메이션 효과 추가하기

이번 포스트에서는 Flutter 프로젝트에서 cupertino_icons 패키지를 사용하여 아이콘에 애니메이션 효과를 추가하는 방법에 대해 알아보겠습니다.

1. cupertino_icons 패키지 추가하기

먼저, cupertino_icons 패키지를 프로젝트에 추가해야 합니다. 이 패키지는 Flutter에서 iOS 아이콘을 사용할 수 있도록 해주는 패키지입니다. pubspec.yaml 파일을 열고, dependencies 섹션에 다음과 같이 패키지를 추가해주세요.

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.3

수정이 완료되면, 터미널에서 flutter packages get 명령어를 실행하여 패키지를 설치해주세요.

2. 아이콘에 애니메이션 효과 추가하기

cupertino_icons 패키지는 Cupertino 아이콘을 사용할 수 있도록 해줍니다. 이 아이콘들에 애니메이션 효과를 추가하기 위해, AnimatedIcon 위젯을 사용할 수 있습니다. 다음은 예시 코드입니다.

import 'package:flutter/material.dart';
import 'package:cupertino_icons/cupertino_icons.dart';

class AnimatedIconExample extends StatefulWidget {
  @override
  _AnimatedIconExampleState createState() => _AnimatedIconExampleState();
}

class _AnimatedIconExampleState extends State<AnimatedIconExample>
    with TickerProviderStateMixin {
  bool _isPlaying = false;
  AnimationController _animationController;

  @override
  void initState() {
    super.initState();
    _animationController = AnimationController(
      vsync: this,
      duration: Duration(milliseconds: 500),
    );
  }

  @override
  void dispose() {
    _animationController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return IconButton(
      icon: AnimatedIcon(
        icon: AnimatedIcons.play_pause,
        progress: _animationController,
      ),
      onPressed: () {
        setState(() {
          _isPlaying = !_isPlaying;
          if (_isPlaying) {
            _animationController.forward();
          } else {
            _animationController.reverse();
          }
        });
      },
    );
  }
}

위 코드는 AnimatedIconExample 클래스를 정의하고, IconButton 위젯을 생성하여 AnimatedIcon을 자식 위젯으로 사용하고 있습니다. IconButton을 누르면 _isPlaying 변수의 값을 변경하고, _isPlaying 값에 따라 AnimationControllerforward 또는 reverse 메서드를 호출하여 애니메이션을 재생하거나 정지시킵니다.

3. 실행 결과 확인하기

이제 AnimatedIconExample 위젯을 사용하여 애니메이션 효과가 적용된 아이콘을 화면에 표시할 수 있습니다. 필요한 곳에서 AnimatedIconExample를 사용해보세요!

따로 설정하지 않은 경우, AnimatedIcons.play_pause 아이콘이 사용됩니다. 다른 아이콘을 사용하려면 cupertino_icons 패키지의 아이콘 맵을 참조하여 원하는 아이콘의 이름을 AnimatedIcons 클래스에 전달해주세요.

결론

이번 포스트에서는 cupertino_icons 패키지를 사용하여 플러터 프로젝트에서 아이콘에 애니메이션 효과를 추가하는 방법을 알아보았습니다. 이를 기반으로 프로젝트에 맞는 아이콘 애니메이션을 구현해보세요!