# Riverside Schedule 电子科技大学研究生课表 APP,Flutter 实现,Android 0.2.0+2,Android 7.0 及以上。 课表周一至周日固定七列同屏,无横向滚动;全表使用统一节次行高,同节数课程条等长。课程名最多两行,可省略,老师和教室完整换行。点击课程查看全称、老师、教室、节次、日期和上课周次。时间冲突用整列宽度的冲突列表展示,列表各项标注节次,避免窄列裁字。 底部只有日历和我的两个图标,玻璃风格悬浮 Dock 支持点击图标、拖动选中游标切换。页面本身不支持左右滑动切换。配色、课前提醒、手机日历和学期设置延续首版。 ## 安装和导入 安装 `dist/Riverside-Schedule-debug.apk`。这是开发测试包;包名和原版签名保持一致,可覆盖安装并保留本地数据。 在「我的 → 从文件导入」选择学校课表查询页保存的 `.html` / `.htm`,或版本1的课表 JSON。先检查预览,再确认导入。文件最多2MB,UTF-8编码。学校 HTML 中分散周次会合并为同一星期、节次、老师和教室的一条安排。 HTML 不含学期开始日,因此仍须在「我的 → 课表设置」填写实际开始日和学期周数。默认课前15分钟提醒,可选5/10/15/30/60分钟。启用通知和手机日历时按页面提示授权。 学校入口连接 [研究生课表查询页面](https://yjsjy.uestc.edu.cn/pyxx/pygl/xskbcx/index/1),提供自绘认证入口及学校官方 WebView。已根据提供的实际HTML实现解析,实时个人登录和验证码流程仍需在本人手机上验证。文件导入不会冒充学校登录。详见 [学校接入状态](docs/school-integration-status.md)。 JSON样例:[schedule.schema-v1.json](examples/schedule.schema-v1.json)。示例模式独立,不覆盖本人课表,也不创建通知或日历事件。 ## 开发 源码在 `mobile/`;内部 Dart 包名保留 `hepan_everyday`,Android包名保留 `com.example.hepan_everyday` 以兼容升级。本机工具位于 `.tools/`,不会提交进Git。 ```powershell $env:HEPAN_TOOLCHAIN_ROOT='C:/Users/david/Desktop/app/.tools' . ./scripts/android-env.ps1 Set-Location mobile flutter pub get flutter test flutter analyze ``` 仓库根目录运行 `./scripts/build-android.ps1` 构建,成功后复制 APK 到 `dist/`。 验证记录:[0.2.0改版验证](docs/riverside-revision-validation.md)。Windows模拟器如遇图形驱动崩溃,可仅在测试启动时使用软件渲染并关闭Impeller;交付APK保留默认手机渲染配置。首版通知和日历原生验证保存在 [首版验证记录](docs/android-mvp-validation.md)。