缘起

我的待办一直很乱:课表、当天要交的作业、随手想到的事、还有期中、四级这些长期目标,全混在一个列表里。市面上的备忘录要么功能太泛,要么在鸿蒙上体验不好——尤其我特别想要一块放在桌面的服务卡片,不点开就能一眼看全今天要干嘛。

找不到就自己写。用鸿蒙原生(ArkTS / ArkUI),现在手机和平板每天在用。

它长什么样

在这里插入图片描述
在这里插入图片描述

设计上刻意不做成一个大列表,而是分成三块:

  • 近期:今天和明天要做的事,今天在上、明天在下
  • 随手记:临时记的,可以没有日期
  • 长期:底下是一张简化甘特图,每个长期目标一根横条,从开始日铺到截止日;到期当天自动在「今天」生成待办,不用手抄

几个花心思的功能

  • 桌面服务卡片:不点开 App 就能看全三块内容,放不下会折叠成「还有 N 条…」
  • 课表自动进待办:支持单双周、调休、非整学期课,填一次管一学期,每天自动展开到当天
  • 定时提醒:每天早上 6:30 推当天待办汇总;到期的前一天单独提醒一条
  • 三端同步:手机 / 平板走华为 AGC 端云同步,本地是鸿蒙的 relationalStore

开发中印象最深的几个坑(做鸿蒙卡片的可以参考)

  1. 服务卡片条目被静默截断:卡片端按「视觉行数」(maxLines)算容量,而数据处理端按「条目条数」算,两边口径不一致,多出来的条目会无声消失。正确做法是先按卡片实际尺寸量出能显示几条,再从数据源折叠,同时在卡片端加裁剪兜底。
  2. 嵌套 ForEach 的 key 陷阱:ArkUI 里外层 ForEach 的 key 不变时,内层列表永远不会重建。表现是「空列表里加第一条不显示,重启 App 才出现」,排查了很久。
  3. 甘特图拖动一卡一卡:三个叠加原因——刻度容器宽度用 layoutWeight 被压缩、拖动偏移量每次取整、列表 key 没带位置信息导致复用错乱。

开源

代码在 GitHub(GPL-3.0):https://github.com/jiangjiangwenyi2026-code/memo-app

这个项目会一直按「自己天天用」的标准迭代。如果你是鸿蒙开发者,对服务卡片、甘特交互有想法,欢迎提 issue 或 PR 一起改;如果只是想用,也欢迎自取。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐