패키지, 저장소 및 앱 카테고리 검색

flutter_multiple_loaders 표지
패키지 상세v1.1.1

flutter_multiple_loaders

Flutter 애플리케이션용 사용자 정의 가능한 로딩 애니메이션 모음 제공하는 플러터 패키지입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
1.8천
좋아요
26
Pub 점수
160

패키지 설치

flutter pub add flutter_multiple_loaders

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Flutter 앱의 사용자 경험을 향상시키기 위해 다양한 사용자 정의 가능한 로딩 애니메이션을 제공하는 플러터 패키지입니다. 어떤 프로젝트에도 쉽게 통합할 수 있는 여러 로더 디자인을 제공하며, Android, iOS, Web, macOS, Windows, Linux 등 모든 주요 플랫폼을 지원합니다. 로더는 가볍고 매우 구성 가능하며, 데이터 가져오기 또는 페이지 전환과 같은 진행 중인 작업을 표시하는 데 이상적입니다. pub add를 통해 간단한 설정으로 복잡한 코드 없이 빠르게 매력적인 시각적 피드백을 구현할 수 있습니다.

사용 사례

  • API 호출 중 로딩 상태 표시
  • 애니메이션된 진행률 표시기를 사용한 UI 개선
  • 데이터 처리 중 사용자 피드백 개선
  • 다른 앱 섹션에 대한 로드 화면 맞춤 설정
  • 새로 고침 표시기에 시각적 매력 추가

주요 기능

  • 여러 개의 사전 구축된 로더 애니메이션
  • 높은 사용자 정의가 가능한 외관
  • 크로스 플랫폼 호환성
  • pubspec.yaml과의 간편한 통합
  • 경량이며 성능이 뛰어남
  • 순환 및 선형 로딩 스타일을 모두 지원합니다

적합한 대상

  • 다양한 로딩 애니메이션을 원하는 개발자
  • 일관된 시각적 피드백이 필요한 앱
  • 동적 로딩 효과를 원하는 UI/UX 디자이너
  • 다중 플랫폼 대상 프로젝트
  • 간단하지만 효과적인 로더를 찾는 초보자

고려 사항

  • 테마 일관성을 위해 추가적인 스타일링이 필요할 수 있습니다
  • 일부 로더는 다양한 화면 크기에서 크기 조정이 필요할 수 있습니다
  • 기본 속성 외의 맞춤 설정이 제한적
  • 매우 높은 빈도의 업데이트에 최적화되지 않음
  • 애니메이션 렌더링을 위해 외부 종속성에 의존합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Flutter Multiple Loaders

https://pub.dev/packages/flutter_multiple_loaders

A Flutter package providing a collection of customizable loading animations for your Flutter applications.

Define. Get. Set. Done.

🌐 Live Demo

Experience all the loaders in action: Flutter Multiple Loaders Demo

Requirements

  • Flutter SDK >= 1.17.0
  • Dart SDK >= 3.7.2

Features

This package includes multiple loading animation styles with customizable properties:

Standard Loaders
  • Spinner Loader: A classic spinning circular loader
  • Pulse Loader: A circle that pulses in and out
  • Bounce Loader: Multiple dots that bounce up and down
  • Wave Loader: Multiple bars that animate in a wave-like pattern
  • Circle Loader: A circular progress indicator with customizable properties
  • Dots Loader: Multiple dots that fade in and out in sequence
  • Rotating Square Loader: A square that rotates on its center axis
  • Flipping Card Loader: A card that flips in 3D
  • Glowing Loader: A circle with pulsing glow effects and gradient colors
  • Typing Loader: A typing indicator with animated dots, commonly used in chat applications
  • Blinking Loader: A shape (circle, square, triangle, or star) that fades in and out
  • Ripple Loader: Concentric circles that expand outward like ripples on water
  • Heartbeat Loader: A realistic anatomical heart animation with authentic cardiac rhythm patterns
  • Hourglass Loader (new in 1.1.0): A smooth hourglass with Bézier curves and animated sand flow
  • Clock Loader (new in 1.1.0): An analog clock face with rotating hour and minute hands
Innovative Loaders
  • DNA Helix Loader: An animated double helix that rotates in 3D space with connecting "rungs" between the strands
  • Morphing Shape Loader: A shape that smoothly transitions between different geometric forms
  • Galaxy Spiral Loader: A spiral galaxy with stars rotating around a glowing core
  • Particle Vortex Loader: Mesmerizing particles flowing in a vortex pattern with customizable flow speed and colors
  • Fractal Tree Loader: A beautiful animated fractal tree that grows and branches organically
  • Liquid Blob Loader: A morphing liquid-like blob with fluid motion and realistic highlights
  • Page Turning Loader: A book with smoothly turning pages that simulates a realistic reading animation
  • Heartbeat Loader: A realistic anatomical heart animation with authentic cardiac rhythm patterns
  • Neon Pulse Loader: Futuristic cyberpunk-style concentric neon rings with glow effects
🛠️ Developer Utilities (new in 1.1.0)
  • MultipleLoaders.showOverlay — One-line modal loading barrier that blocks user interaction during async tasks
  • LoaderFutureBuilder<T> — Drop-in FutureBuilder wrapper that auto-shows a loader while waiting

All loaders feature:

  • Customizable sizes (extra small to extra large)
  • Custom colors (primary, secondary, tertiary, and quaternary)
  • Adjustable animation speed
  • Optional background colors
  • Animation control (start, stop, reset)

Screenshots

Standard Loaders
Loader Preview Loader Preview
Spinner Loader Spinner Loader Pulse Loader Pulse Loader
Bounce Loader Bounce Loader Wave Loader Wave Loader
Circle Loader Circle Loader Dots Loader Dots Loader
Rotating Square Loader Rotating Square Loader Glowing Loader Glowing Loader
Typing Loader Typing Loader Ripple Loader Ripple Loader
HeartBeat Loader Heartbeat Loader Hourglass Loader (screenshot coming soon)
Clock Loader (screenshot coming soon)
Innovative Loaders Gallery
Loader Preview Loader Preview
DNA Helix Loader DNA Helix Loader Morphing Shape Loader Morphing Shape Loader
Galaxy Spiral Loader Galaxy Spiral Loader Particle Vortex Loader Particle Vortex Loader
Fractal Tree Loader Fractal Tree Loader Liquid Blob Loader Liquid Blob Loader
Flipping Card Loader Flipping Card Loader

Getting started

Add the dependency to your pubspec.yaml:

dependencies:
  flutter_multiple_loaders: ^1.1.0

Then run:

flutter pub get

Usage

Import the package:

import 'package:flutter_multiple_loaders/flutter_multiple_loaders.dart';
Basic Usage

Use any of the loaders with default options:

// Simple spinner animation
SpinnerLoader();

// Pulse animation
PulseLoader();

// Bounce animation
BounceLoader();

// Wave animation
WaveLoader();

// Circle animation
CircleLoader();

// Blinking animation with different shapes
BlinkingLoader();  // default is circle

// Book animation
PageTurningLoader(
  pageCount: 20,
  options: LoaderOptions(
    color: Colors.indigo,
    secondaryColor: Colors.indigoAccent,
    tertiaryColor: Colors.white,
    durationMs: 3500,
  ),
);

// Heartbeat animation
HeartbeatLoader(
  pulseIntensity: 0.4,
  options: LoaderOptions(
    color: Colors.red,
    size: LoaderSize.large,
    durationMs: 2000,
  ),
);

// Hourglass animation (new in 1.1.0)
HourglassLoader(
  options: LoaderOptions(
    color: Colors.amber,
    secondaryColor: Colors.amber.withOpacity(0.35),
    size: LoaderSize.large,
    strokeWidth: 3.0,
    durationMs: 2400,
  ),
);

// Clock animation (new in 1.1.0)
ClockLoader(
  options: LoaderOptions(
    color: Colors.deepPurple,
    secondaryColor: Colors.deepPurpleAccent,
    size: LoaderSize.large,
    strokeWidth: 3.0,
    durationMs: 3000,
  ),
);
🛠️ Developer Utilities (new in 1.1.0)
Loading Overlay Dialog

Display a full-screen loading barrier that blocks user interaction during async tasks:

// Show the overlay
MultipleLoaders.showOverlay(
  context,
  loader: const SpinnerLoader(
    options: LoaderOptions(
      color: Colors.white,
      size: LoaderSize.large,
    ),
  ),
);

// Perform your async work...
await myLongRunningTask();

// Hide the overlay
MultipleLoaders.hideOverlay(context);
LoaderFutureBuilder

A drop-in replacement for FutureBuilder that automatically shows a loader while the future is pending:

LoaderFutureBuilder<String>(
  future: myNetworkRequest(),
  loader: const CircleLoader(
    options: LoaderOptions(
      color: Colors.teal,
      size: LoaderSize.large,
      strokeWidth: 4.0,
    ),
  ),
  builder: (context, data) {
    // Only called when the future completes successfully!
    return Text('Loaded: $data');
  },
)
Customizing Loaders

All loaders accept custom options through the LoaderOptions class:

SpinnerLoader(
  options: LoaderOptions(
    color: Colors.purple,
    size: LoaderSize.large,
    durationMs: 1000,
    loop: true,
  ),
);

// Multi-colored wave loader
WaveLoader(
  barCount: 5,
  options: LoaderOptions(
    color: Colors.blue,
    secondaryColor: Colors.green,
    tertiaryColor: Colors.orange,
    size: LoaderSize.medium,
  ),
);
Controlling Animation Programmatically

Use the LoaderController to control the animation:

class _MyWidgetState extends State<MyWidget> {
  final LoaderController _controller = LoaderController();

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        SpinnerLoader(controller: _controller),

        ElevatedButton(
          onPressed: () => _controller.start(),
          child: Text('Start'),
        ),

        ElevatedButton(
          onPressed: () => _controller.stop(),
          child: Text('Stop'),
        ),

        ElevatedButton(
          onPressed: () => _controller.reset(),
          child: Text('Reset'),
        ),
      ],
    );
  }
}

Interactive Example

The package includes a complete example app that demonstrates all loaders with interactive controls for customization. The example app allows you to:

  • Switch between different loader types via category tabs (Standard / Innovative)
  • Change sizes, colors, and stroke widths via the control panel
  • Control animation duration
  • Start, stop, and reset animations
  • Try interactive Developer Utilities demos (Overlay & FutureBuilder)
  • Copy ready-to-use code snippets for every loader

Check the example folder for more detailed usage examples.

Additional information

Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request.

License

This package is licensed under the MIT License - see the LICENSE file for details.

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.