写了个 macOS App :《护眼提醒(EyeSaver)》 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Marno
V2EX    macOS

写了个 macOS App :《护眼提醒(EyeSaver)》

  •  
  •   Marno 2019-11-18 11:22:46 +08:00 3825 次点击
    这是一个创建于 2161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先回答几个可能被问到的问题。

    1.用什么写的?

    使用 Swift 原生写的,不是 React Native。

    2.会开源吗?

    开发不易,本想发到 App Store 卖个几块钱的,但是又觉得苹果的证书有点小贵,所以最后决定还是根据文章末尾的投票结决定吧。

    如果最后开源了,也真心希望有人能和我一起完善这款应用。不过一般来说,恐怕少有人会提 PR,倒是可能会有人来提需求。哈哈哈~

    一、功能介绍

    回到正题,先大概介绍下,软件名字叫《护眼提醒( EyeSaver )》,顾名思义,是一款定时提醒我们保护视力的应用,目前具备以下功能:

    • 全屏护眼提醒
    • 自定义提醒语
    • 自定义工作时长
    • 自定义休息时长
    • 锁屏自动暂停计时
    • 快捷跳过休息提醒
    • 暂停后自动恢复计时
    • 多屏幕时同时显示提醒
    • 提醒界面直接暂停程序

    软件的核心功能很简单,可以近似的认为就是一个倒计时功能,倒计时结束后给一个强制的全屏提醒。

    二、开发心得

    不过说起来很简单,但由于我也是第一次用 Swift 开发 macOS 的原生应用,所以这个过程中还是查阅了很多资料的。不得不说,macOS 相关的开发资料真是少的可怜,很多问题我至今也没找到解决办法,可能是因为苹果电脑的用户不多吧,所以相关的生态和社区都不是很完善。

    经过这两个月小范围的测试使用,软件相对来说,还是比较稳定了。运行时对于内存的占用也非常低,大概只有 20 多 M (多个屏幕时,占用会高点),而且几乎不会占用 CPU。因为第一次开发,没有什么优化经验,也希望有经验的朋友可以提提建议。

    由于软件的功能比较简单,所以使用方法也非常简单,基本启动以后就不需要再管了。不过为了防止有些功能大家不熟悉,我还是会写一篇使用教程放到公众号里面,以供参考。

    三、下载使用

    下载地址:
    公众号对话框回复(不是文章留言):EyeSaver(大小写都可)

    截图展示:

    使用方式:

    • 下载到电脑后进行解压
    • EyeSaver.app 复制到“应用程序”文件夹
    • 点击打开即可

    支持系统:
    软件理论上支持从 10.12 - 10.14 的 macOS,但是测试中发现有些 Mac 电脑使用时会有异常,比如软件已经运行,但是状态栏不显示图标等,目前还不知道什么问题,后续版本会解决。

    问题解决:
    如果软件提示已损坏,或者点击了没有反应,可以参考下面链接中的方式解决:

    软件后续的更新也会发布到公众号中,如有需要可以持续关注公众号的动态。另外,使用过程有什么 bug 也可以在公众号留言给我,不过一定要描述清楚问题。

    四、留言投票(或打开公众号投票也可)

    你是否希望《护眼提醒(EyeSaver)》开源?

    • 回复 1 :开发不易,我支持上架收费
    • 回复 2 :希望开源,我会贡献代码
    • 回复 3 :都可以,反正好用就行

    保护视力,也许有用,来试试吧!

    9 条回复    2019-12-06 13:50:20 +08:00
    KHfqLAYYS6BKJT3R
        1
    KHfqLAYYS6BKJT3R  
       2019-11-18 11:46:55 +08:00 via Android
    感谢楼主分享,之前 v 友发过类似的,在几个版本之后改成免费和收费两部分

    但是,我现在开机第一件事就把他给关了
    zhouweiluan
        2
    zhouweiluan  
       2019-11-18 12:19:06 +08:00 via iPhone
    支持,不过目前自带的屏幕使用时间也够用了
    Marno
        3
    Marno  
    OP
       2019-11-18 13:30:44 +08:00
    @cjzlol 可以暂停的,然后设置一个暂停倒计时会自动恢复,就不会显得打扰了
    Marno
        4
    Marno  
    OP
       2019-11-18 13:31:04 +08:00
    @zhouweiluan 那个不能主动提示休息
    doudouwu
        5
    doudouwu  
       2019-11-18 13:58:21 +08:00
    又一个"休息一下"?
    table cellpadding="0" cellspacing="0" border="0" width="100%"> Volekingsg
        6
    Volekingsg  
       2019-11-18 15:01:23 +08:00
    和 Take a break 比较类似?
    Marno
        7
    Marno  
    OP
       2019-11-18 19:51:40 +08:00
    @doudouwu 可以这么理解,因为核心功能都是提示休息,但是在功能和界面上完全不同
    wlemuel
        8
    wlemuel  
       2019-12-04 11:15:12 +08:00
    @Marno 运行时间久了之后查看内存占用会比较高,大概持续运行了 7 天,显示内存占用 200 多 M,怀疑存在内存泄露问题,虽然初始内存确实 20M 左右, 不过就功能上来说是个好软件,会一直用,希望有时间可以排查一下这个问题,如果时间和精力上有限,无法解决这个问题,我愿意协助解决这个问题,Macbook Air 和 Macbook Pro 都存在同样问题,系统版本为 Catalina ( by IOS 程序猿)
    Marno
        9
    Marno  
    OP
       2019-12-06 13:50:20 +08:00
    @wlemuel 我是 10.14 系统,目前没有遇到你说的这个问题,我也是一直开着的,内存占用还是比较稳定的,差不多都是 20M 以内,不过新系统我还没有升级,所以还没测试过 10.15 上的效果。另外,代码已经开源到 github 了,欢迎提 PR。地址: https://github.com/MarnoDev/EyeSaver
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     872 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:20 PVG 04:20 LAX 13:20 JFK 16:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86