[flutter] 플러터 Lottie로 음식 메뉴 앱의 애니메이션 버튼 추가하기

lottie

플러터(Flutter)는 Google에서 개발한 UI 프레임워크로, 다양한 플랫폼에서 동작하는 앱을 만들 수 있습니다. Lottie는 Airbnb에서 개발한 애니메이션 라이브러리로, JSON 형식의 애니메이션 파일을 사용하여 애플리케이션에 쉽게 애니메이션을 추가할 수 있습니다.

이번 기사에서는 플러터와 Lottie를 사용하여 음식 메뉴 앱에 애니메이션 버튼을 추가하는 방법을 알아보겠습니다.

1. Lottie 패키지 추가하기

프로젝트의 pubspec.yaml 파일에 다음과 같이 Lottie 패키지를 추가해줍니다.

dependencies:
  lottie: ^1.1.1

설정이 완료되면 pub get 명령어를 실행하여 패키지를 다운로드합니다.

2. 애니메이션 파일 준비하기

Lottie는 JSON 형식의 애니메이션 파일을 사용합니다. 애니메이션 파일은 Lottie 홈페이지(https://lottiefiles.com)에서 다운로드할 수 있습니다. 원하는 애니메이션 파일을 다운로드하고, 프로젝트의 assets 폴더에 저장해주세요.

3. 애니메이션 버튼 구현하기

이제 애니메이션 버튼을 구현해보겠습니다. 먼저, Lottie 위젯을 통해 애니메이션을 로드합니다.

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

class AnimatedButton extends StatefulWidget {
  @override
  _AnimatedButtonState createState() => _AnimatedButtonState();
}

class _AnimatedButtonState extends State<AnimatedButton> {
  bool _isAnimated = false;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        setState(() {
          _isAnimated = !_isAnimated;
        });
      },
      child: Lottie.asset(
        'assets/animation.json', // 애니메이션 파일 경로
        controller: _isAnimated ? _animationController : null,
        onLoaded: (composition) {
          _animationController
            ..duration = composition.duration
            ..forward();
        },
      ),
    );
  }
}

위 예제에서는 _isAnimated 변수를 사용하여 버튼을 클릭할 때마다 애니메이션의 상태를 변경합니다. _animationController를 사용하여 애니메이션을 제어하고, Lottie.asset를 통해 애니메이션 파일을 로드합니다.

4. 음식 메뉴 앱에 애니메이션 버튼 추가하기

이제 음식 메뉴 앱에 위에서 생성한 애니메이션 버튼을 추가해보겠습니다.

import 'package:flutter/material.dart';

class FoodMenuApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Food Menu App'),
        ),
        body: Center(
          child: AnimatedButton(), // 애니메이션 버튼 추가
        ),
      ),
    );
  }
}

void main() {
  runApp(FoodMenuApp());
}

애니메이션 버튼은 AnimatedButton 위젯으로써, FoodMenuAppCenter 위젯 안에 추가합니다.

결론

위의 방법을 사용하여 플러터와 Lottie를 활용해 음식 메뉴 앱에 애니메이션 버튼을 추가할 수 있습니다. Lottie를 사용하면 애니메이션을 쉽게 사용할 수 있어 앱의 사용자 경험을 향상시킬 수 있습니다. 개발자들은 자유롭게 Lottie 애니메이션을 사용하여 독창적이고 효과적인 앱을 개발할 수 있습니다.