[flutter] 플러터 build_runner를 사용하여 애니메이션 제어하기

플러터(Flutter)는 Google에서 개발한 크로스플랫폼 모바일 애플리케이션 개발 프레임워크로, 아름다운 UI로의 기능이 특징입니다. 플러터의 빌드 시스템(build system)을 사용하면 애니메이션을 쉽게 제어할 수 있습니다. 이번 포스트에서는 build_runner를 사용하여 애니메이션을 제어하는 방법에 대해 알아보겠습니다.

1. build_runner란?

build_runner는 플러터와 함께 사용되는 코드 생성 및 변환 도구로, 애니메이션 및 코드 생성과 같은 작업을 자동화하는 데 사용됩니다.

2. build_runner를 사용하여 애니메이션 제어하기

먼저, 플러터 프로젝트에 build_runner를 추가해야합니다. pubspec.yaml 파일에 아래와 같이 의존성을 추가합니다.

dev_dependencies:
  build_runner: ^1.12.2
  flutter_test:
    sdk: flutter

이제, 플러터 애니메이션에 build_runner를 사용하여 애니메이션을 생성하고 제어할 수 있습니다. 아래는 예시 코드입니다.

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

part 'my_animation.g.dart';

abstract class MyAnimation implements Built<MyAnimation, MyAnimationBuilder> {
  double get value;

  MyAnimation._();
  factory MyAnimation([updates(MyAnimationBuilder b)]) = _$MyAnimation;
}

위 코드는 built_value 라이브러리를 사용하여 MyAnimation 클래스를 생성하고, build_runner를 사용하여 MyAnimation 클래스의 구현을 생성합니다.

3. 애니메이션 사용하기

생성된 애니메이션을 사용하여 UI를 업데이트하거나 애니메이션을 제어할 수 있습니다. 아래는 예시 코드입니다.

class AnimatedWidgetExample extends StatelessWidget {
  final MyAnimation animation;

  AnimatedWidgetExample({this.animation});

  @override
  Widget build(BuildContext context) {
    return AnimatedBuilder(
      animation: animation,
      builder: (context, child) {
        return Container(
          width: animation.value,
          height: animation.value,
          color: Colors.blue,
        );
      },
    );
  }
}

위 코드에서 AnimatedBuilder 위젯은 build_runner를 사용하여 생성한 MyAnimation 객체를 사용하여 애니메이션을 제어하는 예시입니다.

4. 마무리

플러터의 build_runner를 사용하여 애니메이션을 제어하는 방법에 대해 알아보았습니다. build_runner를 사용하면 런타임 중에 애니메이션 데이터를 생성하는 것이 아니라, 미리 생성하여 사용할 수 있어 애니메이션을 보다 효율적으로 다룰 수 있습니다.

이상으로 플러터 build_runner를 사용하여 애니메이션을 제어하는 방법에 대해 알아보았습니다.

참고문헌: