用 Compose Multiplatform 开发一个 Windows 便笺

316 阅读2分钟

什么!原生的 Windows 便笺居然不支持窗口置顶?那就来做一个更好用的便笺

1. 写在前面

在使用 Windows 操作系统自带的便笺(Sticky Notes)时,用户可能会遇到两个问题:

(1)窗口不能被固定在桌面的最上层

(2)只支持在文本区域的上方插入图片,不能将图片嵌入到文本之间

f1.png

实际上,微软在 2024 年推出的新版 Sticky Notes 已经新增了窗口置顶的功能,可以试一试

便笺(Sticky Notes)提供的功能并不复杂,开发一个差不多的桌面小工具好像也不难,于是就有了:

gitee.com/ashinigit/s…

下载链接:stickynotes-1.0.12.msi

2. 功能预览

app.png

用户界面与交互逻辑参考 Windows 原生便笺

2.gif
  1. 支持窗口置顶
  2. 支持用拖拽的方式导入网页中的文本(或图片),也可以从剪贴板一键导入文本(或图片)
  3. 支持简单的块级富文本样式:加粗(Ctrl + B)、斜体(Ctrl + I)、下划线(Ctrl + U)、删除线(Ctrl + T
  4. 块级元素的顺序可以自由调整和编辑,实现简单的图文混排效果
  5. 支持以 Markdown 的格式导出笔记
3.gif

支持对 字体大小字体粗细字体类型背景透明 、以及 数据的存储路径 进行配置

提示 1:将背景设置成完全透明,便笺就不会遮挡后面的文字

提示 2:便笺只适合临时存储的场景,无法替代传统的笔记软件

如果有数据持久化的需求,可以导出 Markdown 文件到桌面

1.png

3. 技术选型

参考 Compose Multiplatform

软件版本
java21
kotlin2.1.0
compose1.8.1

4. 构建过程

将代码克隆到本地:

git clone https://gitee.com/ashinigit/stickynotes.git

在 Windows 操作系统使用 IntelliJ IDEA 打开项目,下载依赖

使用 packageReleaseDistributionForCurrentOS 构建发布版本:

1728470390415.png

build/compose/binaries/main-release/msi 目录可以找到安装文件:stickynotes-1.0.12.msi

5. 未来计划

  • 优化交互逻辑
  • 提供行内富文本支持
  • 降低软件的内存占用
  • 实现窗口的阴影效果
  • 解决图片和图标模糊问题
  • ......