A lightweight Flutter package designed to track user engagement by monitoring time spent on different screens within your application. Features automatic tracking, debug modes, and summary widgets for comprehensive usage analytics.
🛠️ Technologies Used
- Flutter framework
- Dart programming language
- Singleton design pattern
- Widget lifecycle management
- Pub.dev package publishing
🧠 How It Works
- Singleton class ensures consistent tracking across the app
- Automatic screen time tracking when wrapped with ScreenTimeWidget
- Real-time monitoring of screen transitions
- Built-in summary generation and display capabilities
- Optional debug mode for development insights
🚀 Features
- Singleton Architecture: Single instance ensures accurate tracking
- Debug Mode: Enable/disable logging for development
- Automatic Tracking: Seamless integration with existing screens
- Summary Widget: Built-in UI component for displaying analytics
- Reset Functionality: Clear tracking data when needed
- Easy Integration: Minimal code changes required
📊 Usage Examples
// Wrap your screen with tracking
ScreenTimeWidget(
screenName: 'Home Screen',
child: YourHomeScreenWidget(),
)
// Display summary
ScreenTimeSummaryWidget();
// Manual control
ScreenTimeTracker.instance.startTracking('Custom Screen');
ScreenTimeTracker.instance.stopTracking('Custom Screen');
🔧 Available Methods
enableDebugMode()
: Enable debug loggingdisableDebugMode()
: Disable debug loggingstartTracking(String screenName)
: Begin tracking specific screenstopTracking(String screenName)
: End tracking for specific screengetTimeSpentOnScreen(String screenName)
: Retrieve time dataresetScreenTime()
: Clear all tracking datagetScreenTimeSummary()
: Get comprehensive usage summary
Published on Pub.dev: screen_time_tracker
Explore the source code on GitHub: AgnivaMaiti/screen_time_tracker