flutter_advanced_countdown 1.0.1
flutter_advanced_countdown: ^1.0.1 copied to clipboard
A professional, feature-rich countdown timer package for Flutter with full responsive design, multiple display styles, themes, and customization options for all devices.
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.1 - 2025-07-03 #
๐ Major Enhancements #
New Professional Display Styles
- Digital Display: Segmented digital display with monospace font
- Analog Display: Clock-style display with animated hands and progress arc
- Progress Bar Display: Linear progress bar with time overlay and percentage
- Floating Display: Circular floating action button style
- Notification Display: Badge-style notification display
- Custom Display: Complete custom builder support for unlimited customization
Advanced Animation System
- Pulse Animation: Automatic pulse when time is low (configurable threshold)
- Shake Animation: Shake effect when timer finishes
- Scale Animations: Smooth scale transitions on state changes
- Fade Transitions: Elegant fade in/out animations
- Custom Animation Curves: Support for all Flutter animation curves
- Custom Animation Builders: Complete control over animation behavior
- Performance Optimized: Proper disposal and memory management
Professional Theme System
- Professional Theme: Modern theme with shadows, animations, and rounded corners
- Glass Morphism Theme: Blur effects with transparency and borders
- Minimal Theme: Clean, borderless design for minimal interfaces
- Enhanced Gradient Themes: Improved gradient support with custom colors
- Advanced Styling: Custom decorations, constraints, and transforms
- Semantic Labels: Accessibility support with custom labels
Advanced Customization
- Custom Builder Configuration: Complete UI control with custom builders
- Advanced Styling Configuration: Custom borders, shapes, and transforms
- Custom Constraints: Width, height, min/max sizing options
- Custom Decorations: Background and foreground decorations
- Custom Animation Configuration: Fine-grained animation control
- Low Time Warnings: Visual indicators with custom thresholds
- Auto-hide Functionality: Automatic hiding when timer finishes
Enhanced User Experience
- Vibration Feedback: Platform-specific vibration support
- Sound Notifications: Audio integration for timer completion
- Enhanced Haptic Feedback: Improved haptic patterns
- Progress Tracking: Built-in progress calculation and display
- State Management: Improved ChangeNotifier integration
- Error Handling: Comprehensive error handling and validation
โจ New Features #
Animation Configuration
CountdownAnimationConfig(
enabled: true,
duration: Duration(milliseconds: 500),
curve: Curves.bounceOut,
enablePulseAnimation: true,
pulseThreshold: 15,
enableShakeAnimation: true,
enableScaleAnimation: true,
enableFadeAnimation: true,
customAnimationBuilder: (child, animation) => // custom animation
)
Custom Builder Configuration
CountdownCustomBuilderConfig(
timeBuilder: (context, remaining, isRunning, isPaused) => // custom time display
controlsBuilder: (context, onPause, onResume, onReset) => // custom controls
progressBuilder: (context, progress, remaining, total) => // custom progress
backgroundBuilder: (context, child) => // custom background
containerBuilder: (context, child) => // custom container
iconBuilder: (context, icon, color, size) => // custom icons
)
Advanced Styling
CountdownAdvancedStyle(
border: Border.all(color: Colors.blue),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
alignment: Alignment.center,
constraints: BoxConstraints(maxWidth: 200),
transform: Matrix4.rotationZ(0.1),
semanticLabel: 'Custom timer',
)
Professional Themes
// Professional theme with shadows and animations
CountdownTheme.professional(
primaryColor: Colors.indigo,
enableAnimations: true,
enableShadows: true,
enableRoundedCorners: true,
)
// Glass morphism theme
CountdownTheme.glassMorphism(
primaryColor: Colors.white,
blurRadius: 15.0,
)
// Minimal theme
CountdownTheme.minimal(
primaryColor: Colors.teal,
enableBorders: false,
)
๐ง Enhanced Widget Properties #
New Animation Properties
animationConfig: Custom animation configurationcustomBuilderConfig: Custom builder configurationadvancedStyle: Advanced styling configurationdecoration: Custom decorationforegroundDecoration: Custom foreground decorationwidth,height,minWidth,minHeight,maxWidth,maxHeight: Custom constraints
New Display Properties
showTimeUnits: Show time unit labelstimeUnitLabels: Custom time unit labelsenableSoundNotifications: Enable sound notificationscustomSoundPath: Custom sound file pathshowLowTimeWarning: Show warning when time is lowlowTimeWarningThreshold: Low time warning thresholdwarningColor: Custom warning colorautoHideWhenFinished: Auto-hide when timer finishesautoHideDelay: Auto-hide delay durationenableVibrationFeedback: Enable vibration feedbackvibrationPattern: Custom vibration pattern
๐ฑ Responsive Enhancements #
Improved Responsive System
- Better Device Detection: Enhanced phone/tablet/desktop detection
- Optimized Breakpoints: Improved responsive breakpoints
- Caching System: Performance optimization with value caching
- Custom Responsive Themes: Breakpoint-specific configurations
- Responsive Animation Config: Animation settings per screen size
New Responsive Configurations
CountdownTheme.responsive(
primaryColor: Colors.blue,
fontConfig: ResponsiveFontConfig(xs: 14, sm: 16, md: 18, lg: 20, xl: 22),
paddingConfig: ResponsivePaddingConfig(xs: EdgeInsets.all(8), ...),
iconConfig: ResponsiveIconConfig(xs: 16, sm: 18, md: 20, lg: 24, xl: 28),
animationConfig: CountdownAnimationConfig(...),
)
๐ฏ Professional Examples #
Comprehensive Example App
- Professional Themes Section: Showcasing all new theme types
- New Display Styles Section: Demonstrating all 13 display styles
- Advanced Animations Section: Animation configuration examples
- Custom Builders Section: Complete custom UI examples
- Advanced Styling Section: Custom decoration and constraint examples
- Responsive Examples Section: Device-specific demonstrations
- Provider Integration Section: State management examples
๐งช Testing & Quality #
Enhanced Testing
- Unit Tests: Comprehensive test coverage for all new features
- Widget Tests: UI component testing for new display styles
- Animation Tests: Animation behavior validation
- Responsive Tests: Device-specific behavior testing
- Custom Builder Tests: Custom builder functionality testing
๐ Documentation #
Complete Documentation Update
- Professional Features Section: Detailed feature documentation
- Advanced Animations Guide: Animation configuration guide
- Custom Builders Guide: Custom UI implementation guide
- Professional Themes Guide: Theme customization guide
- Advanced Styling Guide: Custom styling implementation
- Responsive Design Guide: Device-specific customization
- API Reference: Complete API documentation with examples
๐ Migration Guide #
From Version 1.0.0
- No Breaking Changes: All existing code continues to work
- New Features: All new features are optional and backward compatible
- Enhanced Themes: Existing themes work with new professional themes
- Improved Responsive: Better responsive behavior with existing code
- Animation Upgrades: Existing animations work with new animation system
๐จ Design Improvements #
Visual Enhancements
- Modern Design Language: Material Design 3 principles
- Professional Shadows: Layered shadow system
- Smooth Animations: 60fps animations with proper curves
- Accessibility: Improved semantic labels and contrast
- Performance: Optimized rendering and memory usage
๐ Performance Optimizations #
Technical Improvements
- Memory Management: Proper disposal of animation controllers
- Efficient Rebuilds: Minimal widget rebuilds with ChangeNotifier
- Responsive Caching: Cached responsive values for performance
- Animation Optimization: Efficient animation system
- Rendering Optimization: Optimized custom painting
1.0.0 2024-01-XX #
Added #
- Full Responsive Design: Complete responsive support for all devices (iPhone, iPad, Android, Desktop)
- ResponsiveUtils Class: Built-in utilities for device detection and responsive sizing
- Device Type Detection: Automatic detection of phone, tablet, and desktop devices
- Screen Size Categories: XS, SM, MD, LG, XL breakpoint system
- Responsive Font Sizing: Automatic font size adjustment based on screen size
- Responsive Padding: Dynamic padding adjustment for different screen sizes
- Responsive Icon Sizing: Icon size optimization for each device type
- Responsive Circular Progress: Circular progress indicator sizing for all devices
- Responsive Border Radius: Dynamic border radius based on screen size
- Responsive Spacing: Intelligent spacing system for different screen sizes
- Custom Responsive Themes: Advanced theme configuration with responsive options
- ResponsiveFontConfig: Configuration class for custom responsive font sizes
- ResponsivePaddingConfig: Configuration class for custom responsive padding
- ResponsiveIconConfig: Configuration class for custom responsive icon sizes
- useResponsiveSizing Parameter: Option to enable/disable responsive sizing (default: true)
- CountdownTheme.responsive(): Factory constructor for responsive themes
- Enhanced Example App: Updated example with responsive demonstrations
- Device Information Display: Example showing current device and screen information
- Responsive Breakpoints Documentation: Clear documentation of responsive breakpoints
- Cross-Platform Support: Verified support for iOS, Android, Desktop, and Web
- Initial release of the Countdown Timer Package
AdvancedCountdownTimerwidget with multiple display stylesCountdownTimerProviderfor state managementCountdownConfigfor configuration managementCountdownThemefor theming supportTimeFormatterutility class for time formattingHapticFeedbackutility class for haptic feedback- Duration extensions for convenience methods
- Multiple display styles: compact, detailed, circular, minimal, bottom bar
- Theme support: light, dark, and gradient themes
- Interactive controls: pause, resume, and reset functionality
- Custom formatters for time display
- Progress tracking and percentage calculation
- Error handling and validation
- Comprehensive documentation and examples
- Unit tests for all components
Changed #
- Default Responsive Behavior: All timers now use responsive sizing by default
- Font Size Calculation: Replaced hardcoded font sizes with responsive calculations
- Padding System: Updated padding to use responsive sizing
- Icon Size System: Icons now scale appropriately for different screen sizes
- Circular Progress Sizing: Circular progress indicators now adapt to screen size
- Border Radius: Border radius now scales with screen size
- Spacing System: All spacing now uses responsive calculations
- Theme System: Enhanced theme system with responsive configuration options
- Documentation: Completely updated README with responsive design documentation
- Example App: Redesigned example app to showcase responsive features
Improved #
- iPhone Support: Optimized for all iPhone screen sizes
- iPad Support: Enhanced tablet experience with appropriate sizing
- Android Support: Improved Android phone and tablet compatibility
- Desktop Support: Better desktop experience with larger UI elements
- Web Support: Responsive web design for browser compatibility
- Performance: Optimized responsive calculations with caching
- Code Organization: Better separation of responsive logic
- Type Safety: Improved type safety for responsive configurations
Technical Details #
- Breakpoints: XS (<480px), SM (480-768px), MD (768-1024px), LG (1024-1440px), XL (>1440px)
- Device Detection: Uses screen size and pixel ratio for accurate device type detection
- Caching: Responsive values are cached for performance optimization
- Backward Compatibility: All existing code continues to work with new responsive features
- Customization: Full control over responsive behavior through theme configuration
Migration Guide #
- No Breaking Changes: Existing code will work without modifications
- Responsive by Default: New timers automatically use responsive sizing
- Disable Responsive: Set
useResponsiveSizing: falseto use fixed sizes - Custom Responsive: Use
CountdownTheme.responsive()for advanced customization - Flutter SDK: >=3.10.0
- Dart SDK: >=3.0.0
- Dependencies: flutter (only)
- Platform Support: iOS, Android, Web, Desktop
Documentation #
- Comprehensive README with usage examples
- API reference documentation
- Code examples for all features
- Unit tests for all components
- Example app demonstrating all features
[Unreleased] #
Planned Features #
- Additional display styles (digital, analog, etc.)
- Sound notifications
- Multiple timer support
- Timer presets
- Background timer support
- Widget tests
- Integration tests
- Performance optimizations
- Additional theme presets
- Localization support
0.9.0 2024-01-XX #
Added #
- Initial release with basic countdown timer functionality
- Multiple display styles (compact, detailed, circular, minimal, bottom bar)
- Theme support (light, dark, gradient)
- Provider integration for state management
- Haptic feedback support
- Custom formatters and builders
- Progress tracking and percentage display
- Auto-start and control options
- Error handling and validation
Features #
- Advanced countdown timer widget
- CountdownTimerProvider for state management
- TimeFormatter utilities
- Duration extensions
- Haptic feedback utilities
- Comprehensive theming system
- Multiple display styles
- Interactive controls
- Custom styling options