[Flutter] “자동으로 움직일까, 직접 조종할까?” Flutter 애니메이션 차이 한눈에 보기

📖 암시적 애니메이션과 명시적 애니메이션 차이
🎨 암시적 애니메이션 (Implicit Animation)
💡 정의
- 개발자가 애니메이션의 최종 상태만 지정하면 시스템이 시작 → 끝까지의 전환 과정을 자동으로 처리하는 방식이다.
🪄 특징
- 속성 값을 변경하면 프레임워크가 알아서 부드러운 전환을 만들어 준다.
- 어떻게 움직일지 구체적으로 명시하지 않아도 된다.
- 코드가 간결하고 직관적이다.
⚠️ 하지만 시작, 정지, 반복 등을 세세하게 제어하기는 어렵다.
🧩 대표 위젯 예시
AnimatedContainer
AnimatedOpacity
AnimatedAlign
⚙️ 명시적 애니메이션 (Explicit Animation)
💡 정의
- 개발자가 애니메이션의 시작, 지속 시간, 타이밍 각 단계를 직접 제어하는 방식이다.
🪄 특징
AnimatedController를 생성하고 관리해야 한다.
- 언제 시작하고 멈출지를 명확하게 지정할 수 있다.
- 코드가 다소 복잡하지만 유연한 제어가 가능하다.
- 속도, 곡선, 반복, 상태 변화 등을 세밀하게 조정할 수 있다.
🧩 대표 위젯 예시
AnimationController
Tween
AnimatedBuilder
📌 정리 한 줄 요약
- 암시적 애니메이션은 자동이라 간단하고 명시적 애니메이션은 수동이라 정교하다.