ticker_free_circular_progress_indicator 0.0.2 copy "ticker_free_circular_progress_indicator: ^0.0.2" to clipboard
ticker_free_circular_progress_indicator: ^0.0.2 copied to clipboard

A hot-restart safe circular progress indicator that doesn't use TickerProviderStateMixin, using manual frame callbacks for animations.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.0.2 - 2025-11-18 #

Changed #

  • Updated package version for republishing

0.0.1 - 2025-11-18 #

Added #

  • TickerFreeCircularProgressIndicator: A hot-restart safe circular progress indicator widget
  • Manual frame callbacks: Uses Timer.periodic instead of TickerProviderStateMixin for animation
  • Dual mode support: Supports both determinate and indeterminate progress indicators
  • Customizable styling: Colors, stroke width, stroke alignment, stroke cap, and background colors
  • Delay support: Optional delay with custom widget after timeout
  • Accessibility: Proper semantics labels and values
  • Complete example app: Demonstrates all features and usage patterns
  • Comprehensive tests: 9 test cases covering various configurations and behaviors

Features #

  • πŸš€ Hot-restart safe: No TickerProviderStateMixin required - perfect for development
  • 🎯 Manual animations: Uses Timer.periodic for consistent 60fps animation updates
  • πŸ“Š Flexible progress: Supports determinate (with value) and indeterminate modes
  • ⏱️ Delay functionality: Optional delay with fallback widget after timeout
  • 🎨 Full customization: Colors, stroke properties, alignment, and styling options
  • πŸ”„ Smooth animations: Matches Flutter's native CircularProgressIndicator behavior
  • πŸ“± Cross-platform: Works on all Flutter platforms
  • πŸ§ͺ Well tested: Comprehensive test suite ensuring reliability

Technical Details #

  • Animation System: Manual frame callbacks using Timer.periodic at 60fps
  • Memory Management: Proper cleanup and disposal of timers and resources
  • Performance: Lightweight implementation with minimal CPU usage
  • Compatibility: Flutter 3.0+ and Dart 3.0+ support

Example Usage #

// Indeterminate progress
TickerFreeCircularProgressIndicator()

// Determinate progress
TickerFreeCircularProgressIndicator(value: 0.75)

// Custom styled
TickerFreeCircularProgressIndicator(
  value: 0.5,
  color: Colors.blue,
  backgroundColor: Colors.blue.withOpacity(0.2),
  strokeWidth: 6.0,
  strokeAlign: -1.0, // Inside stroke
  strokeCap: StrokeCap.round,
)

// With delay
TickerFreeCircularProgressIndicator(
  delay: Duration(seconds: 5),
  defaultWidgetAfterDelay: Text('Taking longer than expected...'),
)
0
likes
150
points
62
downloads

Publisher

unverified uploader

Weekly Downloads

A hot-restart safe circular progress indicator that doesn't use TickerProviderStateMixin, using manual frame callbacks for animations.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on ticker_free_circular_progress_indicator