app 是本项目的 Android 应用模块,使用 Jetpack Compose + Material 3 构建界面,采用 data / domain / feature 分层组织代码。
namespace:com.example.coursetableminSdk: 33targetSdk: 36compileSdk: 36- Java 版本: 11
- 底部导航第一个页面,默认展示课程表。
- 支持按周查看课程与周数切换。
- 支持课程块点击查看详情。
- 支持新增、编辑、删除课程(弹窗形式)。
- 当本地无课表数据时,显示悬浮
+按钮,可一键导入教务系统课程。
- 底部导航第二个页面,展示当天课程清单。
- 显示课程名、教师、地点。
- 根据节次显示具体时间段(例如
8:00-8:45)。
- 底部导航第三个页面。
- 支持设置学期开始时间。
- 支持删除所有课程。
- 支持重新导入课程(导入前会清空当前课程)。
- 通过
WebView完成登录态获取。 - 使用
OkHttp携带 Cookie 请求教务接口。 - 使用
Gson解析用户信息与课表接口数据。 - 导入完成后写入本地数据库。
androidx.core:core-ktxandroidx.lifecycle:lifecycle-runtime-ktxandroidx.activity:activity-composeandroidx.compose:compose-bomandroidx.compose.ui:uiandroidx.compose.ui:ui-graphicsandroidx.compose.ui:ui-tooling-previewandroidx.compose.material3:material3androidx.compose.material:material-icons-extendedandroidx.compose.material3:material3-adaptive-navigation-suiteandroidx.compose.animation:animation
androidx.room:room-runtimeandroidx.room:room-ktxandroidx.room:room-compiler(通过 KSP)
com.squareup.okhttp3:okhttp:5.3.2com.google.code.gson:gson:2.11.0
junit:junitandroidx.test.ext:junitandroidx.test.espresso:espresso-coreandroidx.compose.ui:ui-test-junit4androidx.compose.ui:ui-test-manifest(debug)
com.android.applicationorg.jetbrains.kotlin.plugin.composecom.google.devtools.ksp
src/main/java/com/example/coursetable/core:基础能力(时间等通用逻辑)src/main/java/com/example/coursetable/data:数据层(Room、Repository 实现)src/main/java/com/example/coursetable/domain:领域模型与仓库接口src/main/java/com/example/coursetable/feature:按功能拆分(course/settings/webView)src/main/java/com/example/coursetable/ui/theme:主题与样式
依赖版本由以下文件统一管理:
app/build.gradle.ktsgradle/libs.versions.toml