V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
beimenjun
V2EX  ›  分享创造

自己做的 iOS 节假日闹钟 App「休息日」(Off Day)现在开源了

  •  
  •   beimenjun · 161 天前 · 6706 次点击
    这是一个创建于 161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前情

    《肝了五一假期:iOS 平台的假期调休闹钟「休息日」,限时免费,没有内购》( https://v2ex.com/t/1038080

    《面向 V2 开发的 App ,没赚到啥钱,整个功能还被「借鉴」了》( https://v2ex.com/t/1042471

    项目地址

    https://github.com/zizicici/Off-Day

    简单介绍这个项目

    这个就是一个可以标记某一天是节假日还是工作日的小 App ,自带了几套假期模板,然后提供了相当多的快捷指令,可以配合 iOS 的自动化,就能实现节假日闹钟不响的作用。

    只要 iOS 的自动化不掉链子,我觉得我这一套是比国内其他各家的节假日闹钟更优雅和灵活的方案。当然如果掉链子了,就当我没说。

    为什么开源

    因为一直以来就蒙代码开源的恩,一直就有想把一些产品开源的想法,因为这个产品转成免费之后,用户群体主要还是比较爱折腾的程序员。万一我这个作者哪天挂了,可以自己维护数据,自己编个自己用。

    当然开源还是会继续维护的。也欢迎有兴趣的同学基于此开发给 PR 、找 Bug 什么的。

    截图

    第 1 条附言  ·  43 天前
    大陆的节日模板信息已经更新到 2025 年,自治区的还在等各自独特安排。
    45 条回复    2024-11-13 19:13:29 +08:00
    1ZeWon
        1
    1ZeWon  
       161 天前
    当时限免就下载使用了,对于使用 iOS 的打工人来说,是个解决了痛点的 App ,感谢大佬开源
    halfcrazy
        2
    halfcrazy  
       161 天前
    已购用户支持一下,开源后内置的调休日历会持续更新吗?
    beimenjun
        3
    beimenjun  
    OP
       161 天前
    @halfcrazy 只要我活着就会继续更新的,现在计划是等到 12 月份发布放假安排了,就更新一波。

    每个公共假期模板都有有效期范围的,超出范围就会报错,只要没报错,就说明这一天是在有效范围的。
    EmpCold
        4
    EmpCold  
       161 天前
    支持一下 ,感谢大佬开源
    whywei8
        5
    whywei8  
       160 天前
    没安卓的?
    beimenjun
        6
    beimenjun  
    OP
       160 天前 via iPhone
    @whywei8 毕竟 Android 也没有快捷指令啊
    czy8187888
        7
    czy8187888  
       160 天前
    一直在用,感谢大佬开源
    jinjiang2024
        8
    jinjiang2024  
       160 天前
    上次我碰到个 BUG 就是放端午节的时候 端午节当天还是让闹钟响了 我还特意看了当天的时间
    beimenjun
        9
    beimenjun  
    OP
       160 天前 via iPhone
    @jinjiang2024 这个如果确定快捷指令和执行时间没问题的话,那大概率是自动化没被触发吧。
    alwaysbesideyou
        10
    alwaysbesideyou  
       160 天前
    感谢大佬开发,之前一直用自己写的快捷指令识别日历中的(休)和(班),难免不够优雅。
    regent
        11
    regent  
       160 天前
    非常实用 谢谢楼主!
    momocha
        12
    momocha  
       159 天前 via iPhone
    下载了,app store 5 分勉励一下。个人开发者都不容易,加油。
    Wxh16144
        13
    Wxh16144  
       157 天前
    respect ❤️, 从最初的限免就开始用了,很感谢大佬。
    cincout
        14
    cincout  
       156 天前
    感谢, 限免用的, 抄袭盈利确实恶心
    beimenjun
        15
    beimenjun  
    OP
       103 天前
    听说今天调休,那没工作的我就顶一下自己的帖子,开源这么久,一个 Merge Request 都没有。
    gtexpanse
        16
    gtexpanse  
       103 天前
    支持一下,我上次看到要弄快捷指令就放一边了,app 倒是一直装着,直到今天早上睡过时
    beimenjun
        17
    beimenjun  
    OP
       103 天前
    @gtexpanse 那你最好注意下使用的快捷指令是检测“明天”还是“今天”,触发的时间是十二点前还是十二点后。

    我个人推荐的最好的操作是:

    每天早上起床后的某个 iPhone 开机的时间(比如上午十点钟或者晚上七点钟),通过自动化,触发一个“检测明天是不是休息日然后关闭开启闹钟”的快捷指令。
    gtexpanse
        18
    gtexpanse  
       103 天前
    @beimenjun #17 谢谢,已经测试生效了,原来只是导入一个快捷指令,然后定时运行这个快捷指令即可,最开始看文档还以为很麻烦。感谢分享。

    另外有个小建议:第二步“添加快捷指令”的两个选项,是不是应该提示用户:首先要将自己设置好的睡眠闹钟或者普通闹钟调整为周一到周日一直开启的状态,然后通过自动化调用快捷指令来跳过休息日的闹钟(因为我默认的睡眠闹钟是跳过周六周日的,刚开始设置的时候一直以为是可以添加闹钟而非跳过)
    rukeypei
        19
    rukeypei  
       98 天前
    挺多人用 swiftui, 大佬为何没有考虑 swiftui
    beimenjun
        20
    beimenjun  
    OP
       98 天前
    @rukeypei 对我来说,我 UIKit 就能搞定解决的问题,为什么我要去用 SwiftUI 解决呢。

    而且 SwiftUI 很多时候奇形怪状的问题 debug 时间消耗更多了。
    rukeypei
        21
    rukeypei  
       98 天前
    @beimenjun 我也这么认为, 不是特别成熟, 很多很方便的 UIKit 的库都没有. 用最熟悉的一把梭就足够了.
    neochen13
        22
    neochen13  
       88 天前
    可惜没有安卓版,真的太可惜了
    wannghao
        23
    wannghao  
       88 天前
    解决了 ios 用户痛点用了一段时间了 只有一次休息日突然响铃了 我很纳闷是为什么
    可能是我 12 点执行自动化的时候 做了什么跳过了吧
    支持楼主
    kinfuy
        24
    kinfuy  
       88 天前
    @beimenjun #20 新手开发只会 swiftui ,已给 star 本来想借鉴一下 农历怎么处理,不会 uikit😂
    beimenjun
        25
    beimenjun  
    OP
       88 天前
    @wannghao 我强烈推荐前一天最后一个闹钟响了之后的某个时间点执行。不要 00:00 执行。

    然后设置两个时间点,比如 12:00 和 20:00 ,配合“明天是不是休息日”的快捷指令会比较合适。
    beimenjun
        26
    beimenjun  
    OP
       88 天前
    @kinfuy 其实你找错东西了,因为这个 App 里没有农历,我只是每年按照放假安排更新节日模板,并没有什么农历初一初二放假的逻辑。
    kinfuy
        27
    kinfuy  
       87 天前
    @beimenjun #26 怪不得没有找到,还有我 UIKIT 有什么神奇的操作
    hewitt29
        28
    hewitt29  
       87 天前
    需要 ios16=。=,可惜了,我是 ios15 ,不想升级
    jiaran
        29
    jiaran  
       87 天前 via iPhone
    iOS15 痛哭
    Rabbit52
        30
    Rabbit52  
       75 天前
    被哪个“借鉴”了?我去喷一下
    artoostark
        31
    artoostark  
       75 天前
    欢迎来我们这边也分享一下作品。
    tog
        32
    tog  
       75 天前
    其实我认为 ios 实现这个功能并不难
    是什么情况导致的?
    是不是跟"信号不好"一样的道理、
    xbtx3790
        33
    xbtx3790  
       75 天前
    大佬在这里呀 用挺久的了
    beimenjun
        34
    beimenjun  
    OP
       75 天前
    @tog 当然不容易,国产各个安卓厂,只要一个做一个大陆的闹钟就可以。但是 iOS 设计功能的时候基本是要优先考虑全球的。

    “啥时放假”这种事情,听起来很简单,但是做起来其实在信息收集这一环就是很麻烦:

    1. 每个国家/地区的节假日安排公布时间是不一样的。很多不同的州过的节日就不一样。

    2. 有些日子是会在公布后进行变化的。

    而在具体实行的时候也有问题,最常见的是不同身份的人适用的法定假期很多时候不一样。
    bhqt
        35
    bhqt  
       75 天前
    @beimenjun #17 我也是的。默认睡嘛闹钟设置的时候就跳过了周末,结果周末自动运行的时候就报错
    KevinXC
        36
    KevinXC  
       73 天前
    直接这样简单写个快捷指令,然后自动化每天凌晨执行。
    beimenjun
        37
    beimenjun  
    OP
       73 天前
    @KevinXC 无语,我又不是不知道这种写法,我就是觉得这种写法有以下缺点,才有这个 App:

    1. 维护难,需要等着 Apple 或者其他日历源喂饭。

    2. 修改麻烦,选择肢不好移植到其他快捷指令中,并且针对特定某日的调整不能做到灵活处理,比如寒暑假、自己的假期等等。

    3. 拓展性弱,我还提供下一个休息日/工作日、冲突日、更新用户标注之类的快捷指令方法。
    KevinXC
        38
    KevinXC  
       73 天前
    @beimenjun 是的,你通过程序封装好了一个接口供快捷指令调用肯定是更有优势的,我这里贴出来只是说对于一些不想安装 app 并且只有跳过闹钟需求的 v 友提供一个参考😄
    beimenjun
        39
    beimenjun  
    OP
       73 天前
    @KevinXC 不,我觉得你不是给别人另外的方案,更像是要秀一下自己的知识储备。

    不过无所谓了。反正你不是第一个这样的人,也不是最后一个。
    answer24
        40
    answer24  
       73 天前
    真心好用,之前还做了个视频推荐给其他人.
    https://www.bilibili.com/video/BV119iLeBECp/
    warron
        41
    warron  
       43 天前
    看了 OP 之前的帖子,支持 OP 。
    liushushu
        42
    liushushu  
       43 天前
    挺好的一款软件,感谢 up 。
    shirley0116
        43
    shirley0116  
       43 天前
    @Wxh16144 你这个消息提醒请问是怎么做到的,能给个思路吗
    Wxh16144
        44
    Wxh16144  
       43 天前
    @shirley0116 就是快捷指令判断,然后选择发送一个群组 [图片地址]( ), 不确定快捷指令会不会泄漏个人电话号码: https://www.icloud.com/shortcuts/696eb7f4de58437e973554053aef4d73
    jearyvon
        45
    jearyvon  
       43 天前
    五一假期 5 天能开发那么多功能 OP 太强了。
    这编码效率真的太高了。
    这么多功能要是做至少也得一个月
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1014 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 22:19 · PVG 06:19 · LAX 14:19 · JFK 17:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.