基于 Material Design 3 规范构建的 Flutter 随机点名应用程序。
- 随机点名:从名单中公平地随机抽取学生。
- 公平算法:确保所有学生在重复被点名之前都已被点名一次(除非重置)。
- Material Design 3:采用 Navigation Rail(侧边导航栏)和响应式布局的现代化 UI。
- 历史记录:记录过去的点名结果。
- 数据持久化:本地保存学生数据和历史记录。
lib/models: 数据模型 (Student- 学生)。lib/services: 业务逻辑 (RandomService- 随机服务,DataService- 数据服务)。lib/providers: 状态管理 (AppProvider- 应用提供者)。lib/screens: UI 屏幕 (HomeScreen- 主页,HistoryScreen- 历史记录,SettingsScreen- 设置)。lib/widgets: 可复用组件 (NavRail- 导航栏,ControlPanel- 控制面板,NameDisplay- 名字显示)。
- Flutter SDK: >=3.11.0
- Dart SDK: >=3.0.0
- 克隆仓库。
- 运行
flutter pub get安装依赖。 - 运行
flutter run启动应用程序。
运行单元测试:
flutter test test/unit_test.dart要更新学生名单,目前应用程序在首次运行时会生成模拟数据。您可以修改 lib/services/data_service.dart 中的 _getInitialStudents 方法,或自行实现导入功能。