乐于分享
好东西不私藏

「开源」不会编程的老师如何用Openclaw三天做出课表App?

「开源」不会编程的老师如何用Openclaw三天做出课表App?

零基础做了一款教师课表App,第一天就能用

一个不会编程的老师,用AI做出了自己的第一款App

每次上课前都被焦虑支配,总忍不住反复在手机里翻找教室信息,来回截图对比又麻烦又不实时,看着也费劲。索性干脆自己动手做一个课表 App,配上好用的通知提醒和桌面小组件,把上课前的慌乱彻底解决掉。

📖 起因:上课忘带教室号,是每个老师的噩梦

学期初拿到课表,随手拍个照存手机里。到了上课那天,翻半天相册找不到。好不容易翻到了,照片糊得根本看不清教室号。

我试过用手机日历一个个加提醒,但那种"9:00-10:00 数字合成技术 A304"的事件,密密麻麻排满一周,看着就头疼。一旦课表有调整,改起来巨麻烦。

市面上的课表App倒是不少,但大部分都是给学生做的,什么"今日作业""考试倒计时",对老师来说完全用不上。有些还会强制你注册账号、上传数据,我连课表都不想给别人看,更别说存在别人服务器上了。

💡 核心需求:打开就能看课表,不用注册不用联网,桌面小组件一瞥就知道下节课去哪上。

找不到,那就自己做吧。

🛠 过程:一个不会编程的人,怎么做出一款App

先说个事实——在做这个App之前,我一行代码都不会写。

不是谦虚,是真的。连"什么是变量"这种最基础的概念都搞不清楚。如果让我去看编程教材,大概翻两页就放弃了。

这一次我决定使用 Openclaw帮我写这个程序,可以用自然语言跟它描述你想要什么,它会帮你写代码。抱着试试看的心态,我开始了一个大胆的想法:让AI帮我做一款App

我的回答也很朴素:

  • 📱 "Android手机,因为我用小米"

  • 📋 "能看课表,能提醒我上课,有个桌面小组件就行"

  • 🎨 "好看一点,像澎湃OS那种风格"

然后,真正的开发就开始了。说是"开发",其实整个过程更像是跟AI聊天——我描述需求,它写代码;我试用看看,告诉它哪里不对;它改好之后我再试,循环往复。

🔧 开发过程中踩过的坑

  • Gradle版本兼容问题,构建失败了好几次

  • 桌面小组件数据传递bug,显示的全是乱码

  • 7个周几选择标签放一行,窄屏溢出151像素

不过好在,这些问题都不是我解决的,都是AI帮我定位和修复的。我只需要描述问题现象,它就能找到原因并给出方案。

108 个文件改动

+8621 行代码 · -4168 行代码

从零到 v2.0.0,约一周时间

✨ 功能:做了什么,能干什么

挑几个核心功能说说。

📋 今日面板——打开就能看今天上什么课

打开App,一眼就能看到:现在在上什么课、上到几点、还剩多少时间;下节课是什么、还有多久开始。每个课程卡片都有颜色标记,左边是节次编号,中间是课程名称和教室,右边是上课时间。

📌 说实话,就这一个功能,就够解决我之前"翻相册找课表"的痛点了。

📅 课表页面——一周七天的完整课表

从周一到周日,每一天的课都按节次排好。每天分为上午和下午两个时段,每个时段两大节课。点击任意一个节次卡片,就可以填入课程名称、教室、备注,还能选一个颜色标记。

课表页面还有个"自定义提醒"功能。比如你可以在某天设定"提前30分钟去教室"这种提醒,它会按时通知你。

🧩 桌面小组件——这才是杀手级功能

这是我花时间最多的地方,也是最满意的部分。一共做了3种尺寸:

尺寸显示内容使用场景
小号 2×2
课程名 + 时间 + 进度条
桌面角落,扫一眼
中号 4×2
日期 + 课程 + 教室 + 进度条
桌面中部,信息丰富
大号 4×4
4天×4节色块表格
一周课程全览

🌟 4×4 色块表格是我最喜欢的。横轴是最近4天,纵轴是4大节课,每个格子用课程颜色填充。相当于把整个课表浓缩成一个一目了然的彩色网格。哪个时间段是空的、哪天课最多,扫一眼就清楚了。

所有小组件都支持深色模式和浅色模式自动切换,晚上看着不刺眼,白天看着不模糊。

⏰ 智能提醒——上课前自动通知你

上课前会弹出通知提醒,通知里直接显示课程名称和教室,不用再打开App确认。上课期间,通知栏会变成一个进度条,实时显示这节课上了百分之多少,还剩多少分钟。

你可以自己设置提前多久提醒,也能按周几单独开关——比如周末不想被打扰,把周六周日关掉就行。

💻 技术细节:给想自己动手的人看

如果你想自己做一个类似的App,简单说下用的什么:

技术栈用途
Flutter 3.24
跨平台UI框架
Kotlin
桌面小组件原生开发
Hive
本地数据存储
Canvas 渲染
小组件UI绘制(绕开RemoteViews限制)

桌面小组件这部分比较特殊。因为Flutter的小组件生态不太成熟,所以我用的是原生Kotlin写的Android Widget,通过MethodChannel和Flutter端通信。小组件的渲染全部用Canvas绘制Bitmap——因为Android的RemoteViews对复杂布局支持很有限,Canvas反而更灵活。

说到Canvas绘制小组件,这中间踩的坑估计能写一篇单独的文章。从一开始的XML布局,到混合方案,再到最终全部Canvas渲染,经历了好几次推翻重来。

💭 真实使用感受

最直观的改变是——再也不用翻课表了。每天早上拿起手机,桌面小组件已经告诉我今天有几节课、第一节课几点。上课前通知准时弹出,走进教室的时候心里踏实多了。

4×4色块表格小组件是我个人最喜欢的,因为它能一眼看到未来几天的课程安排。以前根本不会去想"这周整体排课怎么样"这种事,现在反而有了全局观。

当然也有不足。目前只做了Android版本,iOS用户暂时用不了。另外课表调整需要手动改,还没有接入学校的教务系统自动同步——不过考虑到数据隐私,手动录入反而是我更倾向的方式。

🎁 想试试?

如果你也是个老师,或者你的工作需要按课表走,可以试试这个App。

  • ✅ 完全免费,没有任何广告

  • 🔒 不需要注册账号

  • 💾 所有数据本地存储,不上传任何服务器

  • 📱 支持深色模式,4种桌面小组件

📥 下载方式:GitHub 仓库 Release 页面获取最新 APK 安装包。

🔗 项目地址:github.com/lisijie11/teacher-schedule-app

如果你觉得还不错,或者有什么功能建议,欢迎在评论区告诉我。毕竟,这个App能做成什么样,很大程度上取决于大家的使用反馈。


下次再分享别的好玩的东西 👋