[flutter] 플러터 shimmer로 이미지 애니메이션 만들기

플러터 앱을 개발할 때 사용자 경험을 향상시키기 위해 로딩 시간 동안 애니메이션을 적용하는 것이 좋습니다. 특히, 이미지가 로딩되기 전에 임시적으로 플레이스홀더를 보여주는 것은 사용자들에게 장면 전환을 더 자연스럽게 만들어줍니다. 이 때 shimmer 효과를 이용하면 로딩 중임을 시각적으로 알리면서도 보기 좋은 애니메이션을 만들 수 있습니다.

Shimmer 효과란?

Shimmer 효과는 요소가 로딩 중임을 보여주기 위한 시각적 효과로, 요소에 윤곽선을 이용한 반짝거림을 추가하여 로딩 중임을 시각적으로 알립니다. 플러터에서는 shimmer 패키지를 이용하여 이미지 로딩 애니메이션에 이 효과를 쉽게 적용할 수 있습니다.

Shimmer 패키지 설치하기

먼저, pubspec.yaml 파일의 dependencies 섹션에 shimmer 패키지를 추가합니다.

dependencies:
  shimmer: ^2.0.0

그런 다음, 터미널에서 아래 명령을 실행하여 패키지를 설치합니다:

flutter pub get

Shimmer 효과로 이미지 애니메이션 만들기

이미지 로딩 애니메이션을 만들려면, 먼저 shimmer 패키지에서 제공하는 Shimmer 위젯을 이용해 임시 이미지와 함께 shimmer 효과를 적용합니다. 아래는 간단한 예시 코드입니다.

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

class ShimmerImageLoading extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Shimmer.fromColors(
      baseColor: Colors.grey[300],
      highlightColor: Colors.grey[100],
      child: Container(
        width: 100.0,
        height: 100.0,
        color: Colors.white,
      ),
    );
  }
}

위 코드에서는 Shimmer.fromColors를 사용하여 기본 색상과 강조 색상을 설정하고, Container 위젯을 자식으로 사용하여 shimmer 효과를 적용했습니다.

결론

Shimmer 효과를 사용하여 이미지 로딩 애니메이션을 만들면 사용자 경험을 향상시키는데 많은 도움이 됩니다. 이미지 로딩이 긴 앱에서 특히 유용하며, 플러터와 shimmer 패키지를 함께 사용하면 쉽게 구현할 수 있습니다.

더 많은 정보나 오픈 소스 코드를 보려면 shimmer 패키지 GitHub 저장소를 방문해보세요!