[flutter] cupertino_icons를 이용한 아이콘의 페이드 인/아웃 효과 설정하기

flutter-logo

Flutter는 Google에서 개발한 사용자 인터페이스(UI) 프레임워크로, 다양한 플랫폼에서 동작하는 애플리케이션을 손쉽게 개발할 수 있도록 도와줍니다. Flutter에는 다양한 아이콘을 제공하는 cupertino_icons 패키지가 있어, 이를 사용하여 아이콘의 페이드 인/아웃 효과를 설정할 수 있습니다.

cupertino_icons 패키지 추가하기

먼저, 프로젝트에 cupertino_icons 패키지를 추가해야 합니다. pubspec.yaml 파일에 다음 코드를 추가하세요.

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.0

프로젝트 폴더에서 터미널을 열고 flutter pub get 명령어를 실행하여 패키지를 가져옵니다.

아이콘의 페이드 인/아웃 효과 설정하기

페이드 인/아웃 효과를 설정하기 위해 AnimatedOpacity 위젯을 이용합니다. 이 위젯은 자식 위젯을 페이드 인/아웃할 수 있는 기능을 제공합니다.

먼저, 사용할 아이콘을 cupertino_icons 패키지에서 선택하고 Icon 위젯에 해당 아이콘을 추가합니다.

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

class FadeIcon extends StatefulWidget {
  @override
  _FadeIconState createState() => _FadeIconState();
}

class _FadeIconState extends State<FadeIcon> {
  double opacityLevel = 1.0;

  @override
  Widget build(BuildContext context) {
    return AnimatedOpacity(
      opacity: opacityLevel,
      duration: Duration(seconds: 1),
      child: Icon(CupertinoIcons.heart),
    );
  }
}

AnimatedOpacity 위젯의 opacity 속성을 조절하여 아이콘의 투명도를 조정할 수 있습니다. duration 속성은 페이드 인/아웃 애니메이션의 속도를 설정합니다.

마지막으로, FadeIcon 위젯을 다른 위젯에서 사용하면 아이콘의 페이드 인/아웃 효과를 확인할 수 있습니다.

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Fade Icon Example',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Fade Icon Example'),
        ),
        body: Center(
          child: FadeIcon(),
        ),
      ),
    );
  }
}

이제 MyApp 위젯을 실행하면 아이콘의 페이드 인/아웃 효과를 확인할 수 있습니다.

결론

Flutter의 cupertino_icons 패키지와 AnimatedOpacity 위젯을 활용하여 아이콘의 페이드 인/아웃 효과를 설정하는 방법을 살펴보았습니다. 이를 응용하여 다양한 UI 요소에 페이드 인/아웃 효과를 적용할 수 있으며, 애플리케이션의 사용자 경험을 더욱 향상시킬 수 있습니다.

참고자료