作为一个 macOS 和 Windows 双持的野生程序员,一直有个痛点:在 Windows 上有 Ditto 这种神器,而在 macOS 上,虽然剪贴板工具不少,但总感觉差点意思。要么是功能太简单,存不了几条记录(我想存几十万条那种,当归档记事本用了);要么是没法搜索/功能太少;要么就是缺少“局域网同步”这种功能(不喜欢 icloud 同步)。
既然找不到完美的,那就自己动手造一个吧。
这是我第一次尝试用 Go 开发 macOS 应用。不得不说,Go 还是很省内存,我的 app 常驻后台也就使用 40MB 左右的内存。打出来的包整体在 10MB 左右,个人觉得也没比原生应用差太多。
使用倒排索引,即使存了几万条剪贴板记录,搜索起来也是秒开(不过至少要搜 3 个字符)。
取名叫 OnlyPaste,最初只是想做一个纯粹的粘贴工具,但写着写着就收不住了,把我想用的功能全加上了:
等等
开发过程中也踩了不少坑,特别是 macOS 的沙盒机制和 CGO 的交互,头发都掉了一把( macos 上架对权限要求的太严格了,主要是辅助权限那块)。不过看到成品运行在自己的菜单栏里,还是比较有成就感的。
为啥不用 swift 写?实在是不想再学一个语言,我觉得 go 配合 ai 肯定能胜任,实在不行就写 cgo 调 mac api 嘛。。(事实也的确如此,核心功能、内购基本都是通过 cgo 调用来实现的,还比较复杂)
目前 App 已经基本稳定了,基础功能免费,为了回血搞了个 Pro 版(主要是局域网和显示数量,其他功能都共有),定价也比较便宜。免费版对于日常使用也够了。
大家感兴趣的话可以去下载试试,也欢迎各位大佬提提意见,轻喷哈!
app 下载地址:
https://apps.apple.com/us/app/onlypaste/id6758364019
也可以直接搜 OnlyPaste 。下面放免费码,希望各位大佬体验下,给出意见,感激不尽。
关于技术栈补充一下: 后端用了 Wails v3 (Go),前端是 Vue3 + Naive UI 。为了搞定 macOS 的原生剪贴板监听,还专门写了不少 CGO 代码去调 Cocoa 的 API ,还有内购代码也全部是纯 cgo 写的,有点折磨人了……
送内购免费优惠码,人多再接着发,祝大家新年快乐,事事顺心~
7T6L6KPMY6EP
PPT77L7F4H6H
9A6RXFXPEKLF
WKRKKKLFRAFN
KK3RWA7WLLJL
WANLN9JYT4W9
73X9NJJXP7XA
XRFHYNFKRJKP
NPMTJ44AWKWJ
MLWXX36HR4TM
4YTPY9PNKH3P
9PP4MM4PMEYX
6TP9FK9MJRAL
MFPXYAX3476Y
MEL7JNFP7W7A
3JYTRMWFNWWM
JFFHWAYR36AK
WJ4AKXP44RFK
MRRF497HMXXR
6HNF6FKTHY7M
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.