flutter_productivity_toolkit 0.1.6
flutter_productivity_toolkit: ^0.1.6 copied to clipboard
A comprehensive Flutter developer productivity toolkit that provides unified solutions for state management, navigation, testing utilities, and development workflow optimization.
Flutter Developer Productivity Toolkit #
A comprehensive Flutter package that addresses the most critical pain points faced by Flutter developers in 2025. This toolkit provides unified solutions for state management, navigation, testing utilities, and development workflow optimization.
๐ฏ Built for Developer Productivity โข ๐ Type-Safe by Design โข โก Zero Configuration โข ๐งช Testing First
Why Choose This Toolkit? #
- Unified Solution: All components work seamlessly together
- Minimal Boilerplate: Automatic code generation reduces repetitive tasks
- Type Safety: Compile-time validation prevents runtime errors
- Production Ready: Battle-tested patterns with comprehensive error handling
- Incremental Adoption: Use individual features or the complete solution
- Performance First: Built-in monitoring and optimization tools
Features #
๐ State Management #
- Reactive Updates: Automatic UI rebuilds with minimal performance impact
- Dependency Injection: Automatic lifecycle management with zero configuration
- Built-in Persistence: State automatically saved and restored across app restarts
- Time-Travel Debugging: Visual state timeline with action replay capabilities
- Type-Safe Operations: Compile-time validation of state updates
๐งญ Navigation & Routing #
- Declarative Routes: Define routes with simple annotations
- Type-Safe Navigation: Compile-time parameter validation and auto-completion
- Deep Linking: Automatic URL parsing with parameter extraction
- Multiple Stacks: Support for complex nested navigation scenarios
- Route Guards: Built-in authentication and authorization handling
๐งช Testing Utilities #
- Zero Setup Testing: Pre-configured environments with automatic mocking
- Realistic Data: Smart test data generation with customizable factories
- Integration Ready: Full app lifecycle management for end-to-end tests
- Performance Testing: Built-in utilities for performance regression detection
- Property-Based Testing: Generate comprehensive test cases automatically
โก Performance Monitoring #
- Real-Time Insights: Live performance metrics during development
- Memory Leak Detection: Automatic detection with actionable recommendations
- Widget Optimization: Identify and fix unnecessary rebuilds
- Custom Metrics: Track application-specific performance indicators
- Production Analytics: Optional performance tracking for production apps
๐ง Code Generation #
- Automatic Boilerplate: Generate state managers, routes, and data models
- API Client Generation: Create type-safe clients from OpenAPI specifications
- Serialization: Automatic JSON serialization with null safety
- Localization: Generate type-safe translation access methods
- Asset References: Automatic asset class generation with IDE support
๐ฆ Development Tools #
- Pub.dev Optimization: Analyze and optimize packages for maximum discoverability
- Smart Linting: Flutter-specific best practices with auto-fixes
- Project Maintenance: Automatic import optimization and structure validation
- Dependency Analysis: Detect conflicts and suggest optimizations
- Publication Utilities: Pre-flight checks and automated publishing workflows
Installation #
Add this package to your pubspec.yaml:
dependencies:
flutter_productivity_toolkit: ^0.1.0
dev_dependencies:
build_runner: ^2.4.7
Then run:
flutter pub get
Quick Start #
1. Initialize the Toolkit #
import 'package:flutter_productivity_toolkit/flutter_productivity_toolkit.dart';
void main() {
// Initialize with development configuration
final config = ToolkitConfiguration.development();
runApp(MyApp());
}
2. State Management #
@GenerateState(persist: true)
class CounterState {
final int count;
const CounterState({this.count = 0});
@StateAction()
CounterState increment() => CounterState(count: count + 1);
}
// Generated state manager will be available as CounterStateManager
3. Navigation #
@GenerateRoute('/user/:id/profile')
class UserProfileRoute {
final String userId;
const UserProfileRoute({required this.userId});
}
// Navigate type-safely
await navigator.navigate<UserProfileRoute, void>(
'/user/123/profile',
params: UserProfileRoute(userId: '123'),
);
4. Testing #
void main() {
group('Counter Tests', () {
late TestEnvironment testEnv;
setUp(() async {
testEnv = await TestHelper().setupTestEnvironment();
});
testWidgets('should increment counter', (tester) async {
final counter = testEnv.dataFactory.create<CounterState>();
await testEnv.helper.pumpAndSettle(
tester,
CounterWidget(initialState: counter),
);
// Test implementation...
});
});
}
Configuration #
The toolkit supports three pre-configured setups:
Development Configuration #
final config = ToolkitConfiguration.development();
// Enables debugging, verbose logging, and real-time monitoring
Production Configuration #
final config = ToolkitConfiguration.production();
// Optimized for performance with minimal overhead
Testing Configuration #
final config = ToolkitConfiguration.testing();
// Configured for reliable test execution
Custom Configuration #
final config = ToolkitConfiguration(
stateManagement: StateManagementConfig(
enableDebugging: true,
enablePersistence: true,
),
navigation: NavigationConfig(
enableDeepLinking: true,
),
performance: PerformanceConfig(
enableMonitoring: true,
thresholds: PerformanceThresholds(
maxFrameDropsPerSecond: 3,
minFps: 58.0,
),
),
);
Code Generation #
Run code generation to create boilerplate code:
flutter packages pub run build_runner build
For continuous generation during development:
flutter packages pub run build_runner watch
Performance Monitoring #
Enable real-time performance monitoring in development:
final monitor = PerformanceMonitor();
monitor.startMonitoring();
// Listen to performance metrics
monitor.metricsStream.listen((metrics) {
if (!metrics.isPerformanceGood) {
print('Performance issues detected: ${metrics.warnings}');
}
});
๐ Documentation #
Getting Started #
- Quick Start Guide - Build your first app in minutes
- Installation Guide - Detailed setup instructions
- Configuration Guide - Customize the toolkit for your needs
Core Features #
- State Management - Reactive state with automatic persistence
- Navigation & Routing - Type-safe navigation with deep linking
- Testing Utilities - Comprehensive testing framework
- Performance Monitoring - Real-time performance insights
- Code Generation - Automatic boilerplate reduction
- Development Tools - Workflow optimization utilities
Migration Guides #
- From Provider - Step-by-step Provider migration
- From Bloc - Migrate from Bloc pattern
- From Riverpod - Transition from Riverpod
- From GoRouter - Switch from GoRouter
Reference & Support #
- API Reference - Complete API documentation
- Troubleshooting - Common issues and solutions
- FAQ - Frequently asked questions
- Best Practices - Recommended patterns and guidelines
๐ฏ Examples #
Explore our comprehensive examples to see the toolkit in action:
- Todo App - Complete state management showcase
- Navigation Demo - Advanced routing patterns
- Performance Monitor - Real-time performance tracking
- Code Generation - Automatic code generation examples
- Pub Optimizer - Package optimization tools
๐ View All Examples - Complete example applications with detailed explanations
Contributing #
We welcome contributions! Please see our Contributing Guide for details.
License #
This project is licensed under the MIT License - see the LICENSE file for details.
Support #
Changelog #
See CHANGELOG.md for a detailed list of changes and updates.