adaptive_dialog_manager 1.1.2
adaptive_dialog_manager: ^1.1.2 copied to clipboard
A comprehensive Flutter adaptive dialog manager package that provides multi-platform dialog support with responsive design, accessibility features, and platform-specific behaviors.
Changelog #
All notable changes to the Adaptive Dialog Manager package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.2 - 2025-07-05 #
π Added #
Debug Mode Enhancement
-
Comprehensive Debug Mode Support
- Added
enableDebugMode()
method toDialogManager
interface for detailed dialog logging - Added
disableDebugMode()
method toDialogManager
interface for turning off debug output - Added
enableDebugMode()
method toSnackbarManager
interface for detailed snackbar logging - Added
disableDebugMode()
method toSnackbarManager
interface for turning off debug output - Implemented debug mode methods in
AdaptiveDialogManager
with comprehensive logging - Implemented debug mode methods in
AdaptiveSnackbarManager
with comprehensive logging
- Added
-
Developer Experience Improvements
- Consistent debug mode functionality across all three managers (Toast, Snackbar, Dialog)
- Enhanced debugging capabilities with detailed operation logging
- Standardized debug logging patterns following the same approach as
AdaptiveToastManager
- Real-time debug information for troubleshooting dialog and snackbar operations
π§ Technical Improvements #
Interface Consistency
- Enhanced Manager Interfaces
- Updated
DialogManager
interface with debug mode methods for complete API consistency - Updated
SnackbarManager
interface with debug mode methods matching other manager interfaces - Maintained full backward compatibility with existing implementations
- Improved interface segregation with optional debug functionality
- Updated
Implementation Enhancements
-
AdaptiveDialogManager Debug Support
- Added
enableDebugMode()
implementation with debug state management - Added
disableDebugMode()
implementation with proper cleanup - Enhanced existing
_logDebug()
method integration for consistent logging - Improved developer experience with detailed dialog operation tracking
- Added
-
AdaptiveSnackbarManager Debug Support
- Added
enableDebugMode()
implementation with debug state management - Added
disableDebugMode()
implementation with proper cleanup - Enhanced existing
_logDebug()
method integration for consistent logging - Improved developer experience with detailed snackbar operation tracking
- Added
π Documentation #
- Enhanced API Documentation
- Complete documentation for new debug mode methods
- Usage examples for enabling and disabling debug mode
- Best practices for debug mode in development vs production
π― Backward Compatibility #
- Fully Backward Compatible
- All existing APIs maintain their current behavior
- New debug methods are additive and do not affect existing functionality
- No breaking changes to existing dialog, snackbar, or toast functionality
- Existing code continues to work without modification
β‘ Performance #
- Optimized Debug Implementation
- Debug mode methods have minimal performance impact when disabled
- Efficient logging system with conditional message generation
- No impact on production performance when debug mode is disabled
π§ͺ Developer Experience #
Consistent API Design
- Unified Debug Interface
- All three managers (
AdaptiveDialogManager
,AdaptiveSnackbarManager
,AdaptiveToastManager
) now have identical debug mode APIs - Consistent method naming and behavior across all manager implementations
- Standardized debug logging format for easier development and troubleshooting
- All three managers (
Usage Examples
// Enable debug mode for detailed logging
AdaptiveDialogManager.instance.enableDebugMode();
AdaptiveSnackbarManager.instance.enableDebugMode();
AdaptiveToastManager.instance.enableDebugMode(); // Already available
// Disable debug mode
AdaptiveDialogManager.instance.disableDebugMode();
AdaptiveSnackbarManager.instance.disableDebugMode();
AdaptiveToastManager.instance.disableDebugMode(); // Already available
π― Migration Guide #
This is a patch version update with full backward compatibility:
- No Breaking Changes: All existing code continues to work without modification
- New Features: Debug mode methods are optional additions to existing interfaces
- Enhanced Development: New debug capabilities improve development experience
- Optional Usage: Debug mode methods can be used optionally for enhanced logging
1.1.1 - 2025-02-07 #
π§ Fixed #
Critical Toast Dismissal Bug Fixes
-
Fixed Custom Content Toast Dismissal Issue
- Resolved critical bug where custom content toasts (like processing toasts with cancel buttons) would not dismiss when interactive elements were tapped
- Fixed toast ID mismatch between
ToastQueueManager
andAdaptiveToast
widget that prevented proper communication - Added proper toast ID propagation from queue manager to individual toast widgets
-
Fixed dismissToastsByTag Method
- Resolved broken
dismissToastsByTag()
implementation inAdaptiveToastManager
that was dismissing ALL active toasts instead of only toasts with matching tags - Made private dismissal methods (
_dismissToastsByType
,_dismissToastsByTag
) public inToastQueueManager
for proper access - Fixed tag-based filtering logic to correctly identify and dismiss only targeted toasts
- Resolved broken
-
Enhanced Toast State Communication
- Added state stream listening in
AdaptiveToast
widget to properly receive dismissal signals from queue manager - Implemented automatic dismissal animation trigger when queue manager sets toast status to "hiding"
- Fixed communication gap between queue manager's dismissal commands and individual widget responses
- Added state stream listening in
Context Consistency Improvements
-
Added Context Consistency Testing
- Implemented context consistency tests for dialog and toast managers similar to existing snackbar tests
- Added verification that dialogs and toasts position consistently regardless of which
BuildContext
is used (State vs Builder context) - Enhanced example applications with context consistency test sections
-
Fixed Context-Related Positioning Issues
- Ensured consistent toast and dialog positioning across different widget contexts
- Added debug logging for context-related operations for better troubleshooting
Development Experience Enhancements
-
Improved Debug Information
- Enhanced debug logging with more detailed toast dismissal tracking
- Added success/failure feedback for tag-based dismissal operations
- Improved error messages and dismissal reason tracking
-
Enhanced Example Application
- Added context consistency test UI for dialogs and toasts
- Improved user feedback with detailed snackbar messages showing dismissal results
- Enhanced debug output for better development experience
π§ Technical Improvements #
Toast Widget Architecture
- Enhanced AdaptiveToast Widget
- Added
toastId
parameter to constructor for proper ID synchronization - Implemented state stream subscription for listening to queue manager changes
- Added proper resource cleanup for state subscriptions in dispose method
- Maintained backward compatibility with optional
toastId
parameter
- Added
Queue Manager Improvements
-
ToastQueueManager API Enhancement
- Made
dismissToastsByType()
anddismissToastsByTag()
methods public for external access - Updated internal method calls to use new public method names
- Maintained existing functionality while improving API accessibility
- Made
-
AdaptiveToastManager Fixes
- Fixed broken delegation in
dismissToastsByType()
anddismissToastsByTag()
methods - Replaced incorrect "dismiss all toasts" logic with proper queue manager delegation
- Improved type safety and error handling in dismissal operations
- Fixed broken delegation in
π§ͺ Testing & Quality #
Enhanced Test Coverage
- Context Consistency Tests
- Added comprehensive context consistency testing for dialogs and toasts
- Implemented test cases for State context vs Builder context scenarios
- Added timing behavior tests across different contexts
Improved Example Application
- Enhanced Toast Showcase
- Added context consistency test section with visual indicators
- Improved custom content toast examples with working cancel buttons
- Enhanced debug information display with real-time status updates
π Documentation #
- Updated Code Examples
- Fixed custom content toast examples to show proper dismissal implementation
- Added context consistency testing examples
- Enhanced debugging and troubleshooting documentation
β‘ Performance #
- Optimized State Management
- Reduced unnecessary state updates through improved filtering logic
- Enhanced memory management with proper subscription cleanup
- Optimized tag-based dismissal operations for better performance
π― Backward Compatibility #
- Fully Backward Compatible
- All existing APIs maintain their current behavior
- New
toastId
parameter is optional and defaults to auto-generation - No breaking changes to existing toast, dialog, or snackbar functionality
- Existing code continues to work without modification
π Bug Resolution Summary #
This patch release resolves several critical issues that were affecting toast functionality:
- Custom Content Dismissal: Fixed the primary issue where toasts with interactive custom content (buttons, etc.) wouldn't dismiss properly
- Tag-Based Filtering: Restored proper tag-based dismissal functionality that was incorrectly dismissing all toasts
- State Synchronization: Resolved communication issues between queue manager and individual toast widgets
- Context Consistency: Ensured consistent behavior across different widget contexts
All fixes maintain full backward compatibility while significantly improving the reliability and user experience of the toast system.
1.1.0 - 2025-01-07 #
π Added #
Advanced Toast Timing System
-
Toast Timing Behavior Control
- New
ToastTimingBehavior
enum withindependent
anddependent
options - Independent timing: Each toast dismisses based on its own timer (classic behavior)
- Dependent timing: Older toasts pause when newer ones appear, resume when visible again
- Smart timing management for better user experience with multiple toasts
- New
-
Toast Display Mode Enhancement
- New
ToastDisplayMode
enum withstack
andcolumn
options - Enhanced
ToastConfig
withdisplayMode
parameter for explicit control - Backward compatibility maintained with existing
ToastLayout
enum - Extension methods for easy conversion between layout and display modes
- New
-
Toast Timing Manager
- New
ToastTimingManager
class for sophisticated timing control - Position-aware timer management for dependent timing behavior
- Automatic pause/resume functionality based on toast visibility
- Real-time timer debugging and monitoring capabilities
- Stream-based timer state management
- New
-
Enhanced Toast Configuration
- New
timingBehavior
parameter inToastConfig
with dependent timing as default - Updated factory constructors (
info
,success
,warning
,error
) with timing behavior support - Enhanced
copyWith
method to include all new timing-related properties - Improved type safety with comprehensive null checking
- New
-
Utility Enhancements
- New
IdGenerator
class for generating unique toast and dialog IDs - Support for timestamp-based, short alphanumeric, prefixed, and UUID-like ID generation
- Enhanced debugging capabilities with unique ID tracking
- New
Enhanced Snackbar System
-
Advanced Dismissible Configuration
- Enhanced
dismissible
property with smart auto-dismiss logic - New
autoDismiss
property for granular control over automatic dismissal dismissDirection
property for customizing swipe-to-dismiss behaviorshouldAutoDismiss
getter for intelligent dismissal logic based on snackbar type
- Enhanced
-
Animation System Improvements
- New
animationDuration
property for custom animation timing - New
animationCurve
property for custom animation curves - Platform-specific animation defaults with customization support
- Enhanced animation system with better performance and smoother transitions
- New
-
Factory Constructor Enhancements
- Updated
SnackbarConfig.action()
to supportduration
parameter - Updated
SnackbarConfig.banner()
to supportduration
parameter - Updated
SnackbarConfig.custom()
to supportduration
anddismissible
parameters - Updated
SnackbarConfig.loading()
to supportdismissible
parameter
- Updated
Developer Experience Improvements
-
Enhanced Debug Information
- Real-time toast timing information in debug mode
- Live timer status monitoring with pause/resume states
- Position-specific timing information display
- Enhanced debug information in example application
-
Improved Example Application
- New timing behavior selection controls in toast showcase
- Real-time debug information display with live updates
- Enhanced toast testing capabilities with timing behavior demonstration
- Interactive timing behavior controls with detailed descriptions
π§ Changed #
Toast System Improvements
-
Enhanced Toast Constants
- Updated
maxVisibleColumnToasts
from 3 to 4 for improved user experience - Enhanced default toast widths for better visibility across platforms
- Improved spacing constants for column layout mode
- Optimized animation durations for smoother transitions
- Updated
-
Toast Configuration Updates
- Default
timingBehavior
set todependent
for better multi-toast experience - Enhanced
effectiveDuration
calculation with timing behavior consideration - Improved
shouldAutoDismiss
logic with timing behavior awareness - Better integration between layout modes and timing behaviors
- Default
-
Widget Lifecycle Management
- Enhanced
AdaptiveToast
widget with timing manager integration - Automatic registration/unregistration with timing manager
- Improved memory management and resource cleanup
- Better animation controller handling with timing integration
- Enhanced
Configuration Model Enhancements
-
ToastConfig Model Updates
- New
timingBehavior
property with comprehensive factory constructor support - Enhanced
displayMode
property for explicit display control - Updated
toMap()
andfromMap()
methods with new properties - Improved
copyWith()
method for complete configuration copying - Enhanced equality operator and hashCode with new properties
- New
-
SnackbarConfig Model Updates
- New dismissible-related properties with comprehensive support
- Enhanced animation configuration properties
- Updated factory constructors with duration and dismissible support
- Improved configuration mapping and serialization
π§ Fixed #
-
Type Safety Improvements
- Fixed missing property errors in configuration models
- Enhanced null safety throughout toast and snackbar systems
- Improved error handling for invalid configuration combinations
- Better validation for timing and animation parameters
-
Configuration Consistency
- Ensured all new properties are properly mapped in serialization methods
- Fixed missing property handling in
fromMap()
factory constructors - Improved
copyWith()
method completeness across all models - Enhanced equality and hashCode implementations
π Documentation #
-
Enhanced API Documentation
- Comprehensive documentation for toast timing behavior system
- Detailed explanations of dependent vs independent timing modes
- Enhanced configuration examples with timing behavior usage
- Improved code examples in README and documentation
-
Example Application Updates
- Enhanced toast showcase page with timing behavior controls
- Real-time debugging information display
- Interactive examples demonstrating timing behavior differences
- Improved user interface for testing new features
π§ͺ Testing & Debugging #
-
Enhanced Debug Capabilities
- Real-time timer status monitoring and display
- Position-specific timing information tracking
- Enhanced debug mode with timing manager integration
- Improved error reporting and validation
-
Example Application Testing
- Comprehensive timing behavior testing interface
- Real-time debug information updates every 500ms
- Interactive controls for testing different timing scenarios
- Enhanced visual feedback for timing behavior demonstration
β‘ Performance #
-
Timing System Optimization
- Efficient timer management with minimal memory overhead
- Optimized position-based timer organization
- Smart timer cleanup and resource management
- Reduced timer creation/destruction cycles
-
Animation Performance
- Optimized animation curves for different platforms
- Improved animation duration defaults for better performance
- Enhanced animation lifecycle management
- Better memory usage in animation controllers
π― Migration Guide #
This is a minor version update with full backward compatibility:
- No Breaking Changes: All existing code continues to work without modification
- New Features: New timing behavior and configuration options are optional
- Default Behavior: Dependent timing behavior is now default but can be changed to independent
- Enhanced Configuration: New properties extend existing configuration without breaking changes
Optional Migration for Enhanced Features:
// Before (still works)
ToastConfig.info(
platformType: PlatformType.android,
message: 'Info message',
);
// After (enhanced with timing behavior)
ToastConfig.info(
platformType: PlatformType.android,
message: 'Info message',
timingBehavior: ToastTimingBehavior.independent, // Optional
);
1.0.4 - 2025-07-01 #
- Fix snackbar top position with safe area
1.0.3 - 2025-06-25 #
π§ Changed #
Snackbar Default Position Update
-
Default Position Changed from Bottom to Top
- Updated
SnackbarManager.showToast()
default position fromcenter
totop
- Updated
SnackbarManager.showCustom()
default position frombottom
totop
- Updated
SnackbarConfig
constructor default position frombottom
totop
- Updated
SnackbarConfig.fromMap()
fallback default frombottom
totop
- Updated
SnackbarConfig.custom()
factory method default frombottom
totop
- Updated
AdaptiveSnackbarManager.showCustom()
default parameter frombottom
totop
- Updated
-
Documentation Updates
- Updated
SnackbarPosition
enum documentation to marktop
as "(default)" - Removed "(default)" marker from
bottom
position in enum documentation
- Updated
π― Impact #
-
Backward Compatibility Maintained
- Existing code that explicitly sets position parameters will continue to work exactly as before
- Only affects snackbars where position is not explicitly specified
- No breaking changes to existing APIs or method signatures
-
Improved User Experience
- Snackbars now appear at the top by default, providing better visibility
- Consistent with modern mobile app design patterns
- Users can still override with any
SnackbarPosition
value as needed
π Migration #
No migration required. This change only affects the default behavior:
- Before:
showSnackbar(context, config)
β showed at bottom - After:
showSnackbar(context, config)
β shows at top - Override:
showSnackbar(context, config.copyWith(position: SnackbarPosition.bottom))
β shows at bottom
1.0.2 - 2025-06-25 #
π Added #
Enhanced Snackbar Configuration
-
New Dismissible Properties
- Added
dismissible
property toSnackbarConfig
for controlling user dismissal behavior - Added
autoDismiss
property to control automatic dismissal after duration - Added
dismissDirection
property to customize swipe-to-dismiss direction - Added
shouldAutoDismiss
getter method for intelligent auto-dismiss logic
- Added
-
Animation Configuration
- Added
animationDuration
property toSnackbarConfig
for custom animation timing - Added
animationCurve
property toSnackbarConfig
for custom animation curves - Enhanced animation system with platform-specific defaults and customization
- Added
-
Factory Constructor Enhancements
- Updated
SnackbarConfig.action()
to supportduration
parameter - Updated
SnackbarConfig.banner()
to supportduration
parameter - Updated
SnackbarConfig.custom()
to supportduration
anddismissible
parameters - Updated
SnackbarConfig.loading()
to supportdismissible
parameter
- Updated
π§ Fixed #
-
Linter Error Resolution
- Fixed missing
dismissible
property error inAdaptiveSnackbarManager
- Fixed missing
autoDismiss
property error inAdaptiveSnackbarManager
- Fixed missing
dismissDirection
property error inAdaptiveSnackbarManager
- Fixed missing
animationDuration
property error inAdaptiveSnackbarManager
- Fixed missing
animationCurve
property error inAdaptiveSnackbarManager
- Fixed missing
-
Configuration Consistency
- Ensured all snackbar configuration properties are properly mapped in
toMap()
method - Updated
fromMap()
factory constructor to handle new properties - Updated
copyWith()
method to include all new properties - Updated equality operator and hashCode to include new properties
- Ensured all snackbar configuration properties are properly mapped in
π§ Changed #
-
Smart Auto-Dismiss Logic
shouldAutoDismiss
getter now prevents auto-dismissal for persistent snackbars- Improved logic: returns
true
only ifautoDismiss
istrue
AND snackbar type is NOT persistent - Enhanced user experience with context-aware dismissal behavior
-
Type Safety Improvements
- All new properties are properly typed with null safety
- Enhanced compile-time type checking for configuration validation
- Improved error handling for invalid configuration combinations
π Documentation #
-
Enhanced Configuration Examples
- Updated README with new dismissible configuration examples
- Added animation customization examples
- Improved factory constructor documentation
-
API Reference Updates
- Complete documentation for all new properties
- Usage examples for custom animation and dismissal behavior
- Best practices for different snackbar types
π§ͺ Testing #
- Configuration Validation
- Enhanced type safety for all new properties
- Improved error handling for edge cases
- Better validation for animation and dismissal parameters
1.0.1 - 2025-06-25 #
π Added #
Toast System Enhancements
-
Column Layout Mode for Toasts
- New
ToastLayout.column
option for vertical toast arrangement - Maximum 4 visible toasts in column mode for optimal UX
- Clean, organized vertical display instead of overlapping toasts
- Position-aware column placement (top, bottom, center, left, right)
- Responsive column width based on screen size (mobile, tablet, desktop)
- Proper spacing and margins for visual clarity
- New
-
Enhanced Toast Configuration
- Updated
ToastConfig
withlayout
parameter for choosing between stack and column modes - Backward compatibility maintained - existing code continues to work
ToastLayout
enum withstack
(default) andcolumn
options- Extension methods for easy layout conversion and validation
- Updated
-
Improved Toast Widgets
- New
ToastColumnOverlay
widget for column-based toast display - Optimized widget management with proper key-based identification
- Efficient overlay updates with minimal rebuilds
- Memory-efficient toast widget storage and cleanup
- New
-
Developer Experience Improvements
- Enhanced debug logging for column mode operations
- Clear documentation and examples for column layout usage
- Simple API - just set
layout: ToastLayout.column
in ToastConfig - Comprehensive example page demonstrating column mode features
Technical Improvements
-
Architecture Simplification
- Streamlined column toast management with clean separation from stack mode
- Simplified widget lifecycle management
- Reduced complexity while maintaining full functionality
- Type-safe widget handling with
ValueKey<String>
identification
-
Performance Optimizations
- Efficient toast limiting with
List.take()
for maximum visible count - Minimal overlay rebuilds when toasts are added/removed
- Proper resource cleanup and memory management
- Optimized for smooth animations and transitions
- Efficient toast limiting with
π§ Changed #
ToastConstants.maxVisibleColumnToasts
updated from 3 to 4 for better UX- Enhanced
ToastColumnOverlay
(renamed fromSimpleColumnOverlay
) for consistency - Improved toast positioning calculations for all screen sizes
π Documentation #
- Updated README.md with column layout examples and usage patterns
- Added comprehensive column mode documentation
- New code examples showing multiple toasts in column layout
- Enhanced API documentation for
ToastLayout
enum and related classes
π§ͺ Example Application #
- New interactive column mode example page
- Real-time toast counter and debug information
- Multiple toast types demonstration in column layout
- Position selection and testing capabilities
1.0.0 - 2025-06-25 #
π Initial Release #
Added
-
Multi-Platform Dialog System
- Comprehensive adaptive dialog management for all Flutter platforms (Android, iOS, Web, Windows, macOS, Linux, Fuchsia)
- Platform-specific dialog behaviors with Material, Cupertino, Fluent, and macOS design systems
- 25+ dialog types: alert, confirmation, input, loading, progress, bottomSheet, custom, modal, fullScreen, datePicker, timePicker, colorPicker, filePicker, search, settings, about, help, error, warning, success, info, toast, snackbar
- Responsive design with automatic layout adaptation for mobile, tablet, and desktop
- Comprehensive dialog queue management system with intelligent queuing
- Singleton pattern implementation (
AdaptiveDialogManager
) for efficient resource management
-
Advanced Snackbar System
- Dedicated adaptive snackbar manager (
AdaptiveSnackbarManager
) with platform-specific behaviors - 10 snackbar types: info, success, warning, error, loading, action, custom, toast, banner, persistent
- Advanced positioning: top, bottom, center with fine-grained offset control
- Behavior types: fixed, floating, pinned behaviors for different interaction patterns
- Action support with customizable callbacks and interactive buttons
- Priority-based queue management for intelligent notification ordering
- Custom content support with widget injection
- Dedicated adaptive snackbar manager (
-
Toast Notification System
- Comprehensive toast manager (
AdaptiveToastManager
) with cross-platform support - 5 toast types: info, success, warning, error, custom
- Flexible positioning: top, bottom, center positioning with offset control
- Stack and queue layouts: traditional overlapping or queued display options
- Timing management: automatic duration control with pause/resume capabilities
- Custom content support with widget-based customization
- Comprehensive toast manager (
-
Rich Animation System
- 16 built-in animation types: none, fade, scale, slideFromBottom, slideFromTop, slideFromLeft, slideFromRight, slideUp, slideDown, elastic, bounce, rotation, flip, pop, blur, custom
- Platform-optimized timing and curves for smooth user experience
- Performance profiles: mobile-friendly and high-performance variants
- Reduced motion support for accessibility compliance
- Animation duration and curve customization
-
Comprehensive Configuration Models
- Type-safe
DialogConfig
model extendingBaseDataModel
from flutter_shared_utilities - Advanced
SnackbarConfig
with comprehensive customization options - Feature-rich
ToastConfig
for flexible toast configuration - Generic
DialogResult<T>
,SnackbarResult<T>
, andToastResult<T>
with type safety PlatformSettings
for platform-specific configurationsResponsiveConfig
for breakpoint-aware layouts
- Type-safe
-
Advanced Enums
DialogType
- 25+ dialog variants for comprehensive coverageSnackbarType
- 10 snackbar types with different behaviors and prioritiesToastType
- 5 toast variants with customizable stylingPlatformType
- Support for Android, iOS, web, windows, macOS, linux, fuchsiaAnimationType
- 16 different animation options with performance considerationsSnackbarPosition
- Comprehensive positioning with top, bottom, center, topLeft, topRight, bottomLeft, bottomRight, centerLeft, centerRight optionsSnackbarBehavior
- Fixed, floating, pinned, overlay, modal behaviorsToastPosition
- Flexible toast positioning optionsToastLayout
- Stack and queue layout patternsResponsiveBreakpoint
- Mobile, tablet, desktop, large breakpoints
-
Utility Classes
PlatformDetector
for automatic platform detection with override capabilitiesResponsiveManager
for breakpoint management and responsive layoutsSettingsController
for managing dialog and notification preferences- Debug mode with comprehensive logging for development
- Queue status monitoring and management across all notification types
-
Advanced Widget Components
AdaptiveSnackbar
- Platform-specific snackbar implementationAdaptiveToast
- Cross-platform toast widgetSnackbarOverlay
andToastOverlay
- Advanced overlay management- Utility widgets:
ColorPicker
,ColorGrid
,FilePickerContent
,GenericSearchDelegate
SettingsContent
andHelpPage
- Pre-built configuration pages
-
Queue Management System
DialogQueueManager
- Intelligent queue management for dialogsSnackbarQueueManager
- Priority-based snackbar queue handlingToastQueueManager
- Stack and queue-based toast managementToastTimingManager
- Advanced timing control for toast notifications- Stream-based state management with real-time updates
-
Accessibility Features
- Screen reader support with comprehensive semantic labeling
- Keyboard navigation for desktop platforms (Tab, Enter, Escape, Arrow keys)
- Focus management with proper focus trapping and restoration
- High contrast support with theme-aware color schemes
- Touch target sizing with minimum accessibility requirements (48dp)
- Reduced motion detection and automatic adaptation
- WCAG compliance features
-
Developer Experience
- Abstract interfaces (
DialogManager
,SnackbarManager
,ToastManager
) for dependency injection - Comprehensive error handling with detailed error messages and stack traces
- Debug mode with detailed logging for development and troubleshooting
- Type-safe configuration with compile-time checks
- Stream-based state management for reactive programming
- Singleton pattern for efficient memory usage
- Clean Architecture principles with separation of concerns
- Abstract interfaces (
-
Dependencies
flutter_shared_utilities: ^1.0.6
for base models and safe type utilitiesuniversal_io: ^2.2.2
for cross-platform I/O operations- Minimal dependency footprint for optimal package size
-
Example Application
- Comprehensive example app demonstrating all features
- 7 showcase pages: Home, Dialog Examples, Snackbar Showcase, Toast Showcase, Animation Showcase, Platform Showcase, Responsive Showcase
- Interactive examples with real-time configuration
- Platform-specific demonstrations for all supported platforms
- Animation playground with all 16 animation types
- Responsive design examples for different screen sizes
- Theme switching and accessibility demonstrations
-
Documentation
- Comprehensive README with 50+ code examples
- API documentation with detailed parameter descriptions
- Installation guide for all platforms
- Architecture documentation with interfaces and patterns
- Customization examples and best practices
- Performance optimization recommendations
- Accessibility guide with WCAG compliance information
Technical Details
-
Minimum Requirements
- Flutter SDK: >=3.19.0
- Dart SDK: ^3.8.1
- All major platforms supported (Android, iOS, Web, Windows, macOS, Linux)
-
Architecture
- Clean Architecture with modular design
- Repository pattern implementation for data management
- Singleton pattern for manager classes
- Stream-based state management for reactive updates
- Platform adapter pattern for cross-platform support
- Interface segregation for testability
-
Performance
- Lazy initialization of resources and managers
- Efficient queue management algorithms with O(log n) operations
- Memory leak prevention with proper disposal patterns
- Optimized animations for different device capabilities
- Platform-specific optimizations for each target platform
-
Type Safety
- All models extend
BaseDataModel
with safe type conversion - Generic result types for compile-time type checking
- Comprehensive null safety throughout the codebase
- Safe parsing methods for all data transformations
- All models extend
Constants and Configuration
- Animation Constants: Default durations, curves, and performance profiles
- Breakpoint Constants: Responsive design breakpoints for mobile, tablet, desktop
- Dialog Constants: Default styling, dimensions, and behavior settings
- Snackbar Constants: Positioning, timing, and appearance defaults
- Toast Constants: Duration, positioning, and animation defaults
π Known Issues #
- None reported in initial release
π Migration Guide #
- This is the initial release, no migration needed
[Unreleased] #
Planned Features #
- β Voice control support for enhanced accessibility
- β Gesture customization for mobile interaction patterns
- β Advanced theming system with custom theme builders
- β Performance analytics and monitoring dashboard
- β Plugin architecture for extensibility and custom notifications
- β Multi-window support for desktop platforms
- β Internationalization (i18n) support with localization
- β More animation presets and custom animation builders
- β Enhanced debugging tools and visual debugger
- β Integration with popular state management solutions (Riverpod, Bloc)
- β Material You (Material 3) design system support
- β macOS native dialog support with NSAlert integration
- β Windows native dialog support with Win32 APIs
- β Advanced queue management with priority scheduling
- β Biometric authentication dialog support
Development Notes #
Version Numbering #
This project follows Semantic Versioning:
- MAJOR version for incompatible API changes
- MINOR version for backward-compatible functionality additions
- PATCH version for backward-compatible bug fixes
Release Process #
- Update version in
pubspec.yaml
- Update CHANGELOG.md with new version details
- Create and test example applications
- Run comprehensive test suite
- Update documentation and README
- Create GitHub release with tags
- Publish to pub.flutter-io.cn
Contributing #
For contribution guidelines, please see CONTRIBUTING.md.
Support #
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: bahricanyesildev@gmail.com
Made with β€οΈ in Turkey