ticker_free_circular_progress_indicator 1.0.0 copy "ticker_free_circular_progress_indicator: ^1.0.0" to clipboard
ticker_free_circular_progress_indicator: ^1.0.0 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.

1.0.0 - 2025-11-20 #

Changed #

  • STABLE RELEASE: Promoted to version 1.0.0 after thorough testing
  • Updated documentation to reflect stable API
  • Enhanced README with comprehensive examples and API reference
  • Improved example app with better demonstrations
  • Updated LICENSE to ensure MIT compliance

Verified #

  • All features tested and verified to work correctly
  • Hot-restart safety confirmed across multiple scenarios
  • Performance optimized for production use
  • API is stable and ready for production use

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
160
points
56
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