[flutter] 플러터 Lottie로 음악 스트리밍 앱의 뮤직비디오 애니메이션 구현하기

Lottie Logo

본 포스트에서는 플러터(Flutter) 앱에서 Lottie를 사용하여 음악 스트리밍 앱의 뮤직비디오 애니메이션을 구현하는 방법에 대해 알아보겠습니다. Lottie는 Airbnb에서 개발한 애니메이션 라이브러리로, 디자이너가 제작한 After Effects 애니메이션을 JSON 파일로 변환하여 앱에서 재생할 수 있게 해줍니다.

1. 프로젝트 설정

먼저, Flutter 프로젝트를 생성하고 Lottie 패키지를 추가해야 합니다. pubspec.yaml 파일의 dependencies 부분에 아래와 같이 lottie 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  lottie: ^1.1.0

의존성을 추가한 후, flutter pub get 명령어를 실행하여 패키지를 가져옵니다.

2. Lottie 애니메이션 파일 준비

Lottie 애니메이션을 구현하기 위해, 애니메이션 파일을 준비해야 합니다. Lottie 파일은 JSON 형식으로 되어있으며, After Effects(이하 AE)에서 미리 만들어진 애니메이션을 JSON으로 변환하여 사용합니다. AE에서 Lottie 파일로 변환하는 방법은 Airbnb의 Lottie 링크에서 확인할 수 있습니다.

애니메이션 파일을 준비한 후, 프로젝트의 assets 폴더에 파일을 추가합니다. pubspec.yaml 파일의 assets 부분에 애니메이션 파일의 경로를 추가합니다. 예를 들어, assets/animations/music_video.json 경로에 파일을 추가한 경우 아래와 같이 추가합니다.

flutter:
  assets:
    - assets/animations/music_video.json

3. 애니메이션 위젯 생성

플러터 앱에서 Lottie 애니메이션을 사용하기 위해, Lottie 애니메이션을 위젯으로 생성해야 합니다. Lottie.asset 생성자를 사용하여 애니메이션 파일을 로드하고, LottieBuilder 위젯을 통해 애니메이션을 재생할 수 있습니다.

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

class MusicVideoAnimation extends StatefulWidget {
  @override
  _MusicVideoAnimationState createState() => _MusicVideoAnimationState();
}

class _MusicVideoAnimationState extends State<MusicVideoAnimation> {
  @override
  Widget build(BuildContext context) {
    return Lottie.asset(
      'assets/animations/music_video.json',
      width: 300,
      height: 300,
      fit: BoxFit.cover,
    );
  }
}

위 예제에서는 MusicVideoAnimation 클래스를 만들어 Lottie 애니메이션을 재생하는 위젯을 생성합니다. Lottie.asset 생성자를 사용하여 애니메이션 파일을 로드하고, width, height, fit 등의 속성을 설정하여 애니메이션의 크기와 배치를 조정할 수 있습니다.

4. 애니메이션 위젯 사용

애니메이션 위젯을 사용하기 위해 해당 위젯을 화면에 추가하면 됩니다. 예를 들어, MusicVideoAnimation 위젯을 화면의 중앙에 배치하려면 아래와 같이 사용합니다.

import 'package:flutter/material.dart';

class MusicVideoScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Music Video')),
      body: Center(
        child: MusicVideoAnimation(),
      ),
    );
  }
}

위 예제에서는 MusicVideoScreen 위젯을 생성하여 앱의 메인 화면으로 사용합니다. Scaffold 위젯을 사용하여 앱의 기본 레이아웃을 구성하고, Center 위젯을 사용하여 MusicVideoAnimation 위젯을 중앙에 배치합니다.

이제 앱을 실행하면 Lottie로 구현한 음악 스트리밍 앱의 뮤직비디오 애니메이션이 재생되는 것을 확인할 수 있습니다.

마무리

이번 포스트에서는 플러터 앱에서 Lottie를 사용하여 음악 스트리밍 앱의 뮤직비디오 애니메이션을 구현하는 방법을 알아보았습니다. Lottie를 이용하면 디자이너가 만든 멋진 애니메이션을 앱에 쉽게 적용할 수 있습니다. 앱의 사용자 경험을 향상시키고, 시각적인 효과를 더해주는 뮤직비디오 애니메이션을 통해 사용자들에게 더욱 흥미로운 앱을 제공해보세요!

참고 자료