[flutter] 플러터 애니메이션을 통한 화면 전환의 부드러움 구현 방법

플러터 앱을 개발하다 보면 화면 전환을 부드럽게 만들고 싶을 때가 많습니다. 애니메이션을 사용하여 화면 전환의 부드러움을 높일 수 있으며, 이를 위해 여러 가지 방법이 있습니다.

애니메이션 패키지 사용

플러터에서는 animations 패키지를 사용하여 애니메이션을 쉽게 구현할 수 있습니다. 예를 들어, PageRouteBuilder 클래스를 활용하여 페이지 전환 시 애니메이션을 추가할 수 있습니다.

Navigator.of(context).push(
  PageRouteBuilder(
    pageBuilder: (context, animation, secondaryAnimation) => MyNewScreen(),
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      var begin = Offset(1.0, 0.0);
      var end = Offset.zero;
      var curve = Curves.ease;

      var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));

      return SlideTransition(
        position: animation.drive(tween),
        child: child,
      );
    },
  ),
);

이와 같은 방식으로 페이지 전환 시 화면이 슬라이드되는 애니메이션 효과을 줄 수 있습니다.

Hero 애니메이션

또 다른 방법으로는 Hero 애니메이션을 사용하는 것입니다. Hero 애니메이션을 이용하면 한 화면에서 다른 화면으로 전환될 때 특정 위젯이 부드럽게 애니메이션되는 효과를 줄 수 있습니다.

Hero(
  tag: 'imageTag',
  child: Image.asset('image.jpg'),
);

Hero 위젯은 전환될 때 같은 tag를 가진 위젯끼리 부드러운 애니메이션 효과를 줍니다.

Conclusion

플러터에서 화면 전환의 부드러움을 구현하기 위해 animations 패키지나 Hero 애니메이션을 사용하는 방법을 알아봤습니다. 이러한 방법들을 응용하여 실제 앱을 개발할 때 부드러운 화면 전환을 구현할 수 있습니다.