[flutter] 플러터 shimmer를 활용한 스크롤 애니메이션

플러터(Flutter)를 사용하여 앱을 개발하다보면 사용자에게 부드러운 화면 전환과 애니메이션을 제공하기 위해 여러가지 기술을 사용하게 됩니다. 그 중 하나가 shimmer입니다. Shimmer는 로딩 중인 콘텐츠를 표시하기 위해 사용되며, 컨텐츠가 로딩 중임을 시각적으로 나타내주는 효과를 제공합니다. 이를 통해 사용자들은 화면이 작동 중임을 알 수 있고, 화면이 멈춰있거나 먹통 상태가 아님을 확신할 수 있습니다.

이번 포스트에서는 shimmer를 사용하여 스크롤 애니메이션을 구현하는 방법에 대해 알아보겠습니다.

필요한 패키지 설치하기

먼저, shimmer 효과를 구현하기 위해서 shimmer 패키지를 설치해야 합니다. 이 패키지는 Flutter 앱에서 간단하게 shimmer 효과를 적용할 수 있는 도구를 제공합니다.

flutter pub add shimmer

스크롤 애니메이션과 shimmer 효과 적용하기

다음으로, ListView나 GridView 등의 스크롤 가능한 위젯에 shimmer 효과를 적용해보겠습니다.

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

class ShimmerList extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: 10,
      itemBuilder: (context, index) {
        return Shimmer.fromColors(
          baseColor: Colors.grey[300],
          highlightColor: Colors.grey[100],
          child: ListTile(
            leading: CircleAvatar(
              backgroundColor: Colors.grey[300],
            ),
            title: Text('Loading'),
          ),
        );
      },
    );
  }
}

Shimmer.fromColors 위젯을 사용하여 리스트 아이템에 shimmer 효과를 적용하였습니다. baseColorhighlightColor로 색상을 지정할 수 있습니다. 이렇게 함으로써, 사용자는 로딩 중인 내용임을 알 수 있고, 화면 전환이 부드럽게 되는 애니메이션 효과를 느낄 수 있습니다.

플러터 shimmer를 사용하여 스크롤 애니메이션을 보여주는 간단한 예제를 살펴보았습니다. shimmer 효과를 적용하면 사용자 경험이 향상되며, 화면 로딩 시간을 보다 유익하고 흥미로운 시각적 요소로 만들 수 있습니다. 코드를 통해 더 많은 shimmer 효과를 살펴보고, 다양한 형태의 애니메이션을 구현해보세요.