The Progress project is an Android application designed to combat procrastination using machine learning, customized notifications, and a reward system. The project is built using Flutter and Dart.
flutter: The Flutter SDK for building high-quality native experiences for iOS and Android from a single codebase.device_apps: A Flutter plugin to list installed applications (only Android).usage_stats: A Flutter plugin to access Android's UsageStatsManager API.shared_preferences: A Flutter plugin for reading and writing simple key-value pairs.smooth_page_indicator: A Flutter plugin for custom page indicators with a smoothly animated page transition.flutter_spinkit: A collection of loading indicators animated with Flutter.
main.dart: This file contains theMyAppandOnboardingScreenclasses.MyAppis the root widget of the application, andOnboardingScreenis the widget for the onboarding process. It uses aPageControllerto manage the onboarding pages.mainapp.dart: This file contains theMainAppclass, which is the main application widget. It currently displays the selected activities in a list.app_list_item.dart: This file contains theAppListItemclass, aStatelessWidgetthat represents an individual application in the list of installed applications. It includes aformatDurationfunction to format the usage duration of the application.app_usage_service.dart: This file contains theUsageStatsResultclass and thefetchUsageStatsAndAppsfunction. The function fetches usage statistics and installed applications, and theUsageStatsResultclass is used to encapsulate the result.favorites_service.dart: This file contains theFavoritesServiceclass, which provides functions to get, save, add, and remove favorite applications using theSharedPreferencesplugin.usage_stats_screen.dart: This file contains theUsageStatsScreenclass, aStatefulWidgetthat displays the usage statistics of the installed applications. It uses thefetchUsageStatsAndAppsfunction fromapp_usage_service.dartto fetch the data.streak_indicator.dart: This file contains theStreakIndicatorclass, aStatelessWidgetthat represents a streak indicator in the UI.
ActivitySelection: A class inmain.dartthat allows users to select and deselect activities during onboarding.MainApp: A class inmainapp.dartthat represents the main application widget.AppListItem: A class inapp_list_item.dartthat represents an individual application in the list of installed applications.fetchUsageStatsAndApps: A function inapp_usage_service.dartthat fetches usage statistics and installed applications.FavoritesService: A class infavorites_service.dartthat provides functions to get, save, add, and remove favorite applications.UsageStatsScreen: A class inusage_stats_screen.dartthat displays the usage statistics of the installed applications.