ProgressProgress 脚本自首次发布以来已经过去挺长一段时间了,它是一个小巧的进度显示小部件,原来分为「周进度」和「年进度」两个视图,工程量不太大。近日,为了让大家可以更方便地进行个性化配置,增加了大量配置说明,于是整个工作量也成倍地增长。为了让它配置起来更加简单,在其中花费的心力并不比开发主功能来得少,希望这点工作对大家有所帮助吧。言归正传,这篇文章一直没有写,是因为之前没有直接的配置方法,而今天文章的目的也如此,主要介绍各项配置方法和新加入的「月进度」。

介绍

Progress 分为两种运行环境,小部件为正常显示的运行环境,而主应用为配置入口的运行环境。在首次使用(或更新)时,建议在主应用运行来完成必要的配置工作。主应用运行

在「首页」中,我们可以根据自己的需求选择三个进度视图中的一个或多个,并通过长按操作进行视图排序。修改过后,上方预览视图将会刷新,小部件的显示也将同步更新。与此同时,我们也可以借助「日期模拟」一项来对配置进行调试,通过时间的调整模拟实际小部件运行效果,以此来测试修改结果是否合理或正确。

在「设置页」中,我们即可分别对三个不同进度视图进行个性化配置。

周进度 (Week Progress)

周进度显示的时间周期为一周,它最大的特点是时间周期短,因此我们能够真切感受到「时间在运动」,用来表达我们对翘首以待的周末时光的感情最合适不过。因为一周的生活方式因人而异,所以配置的个性化程度也比较高。我们在设置——周进度进入后可以对各个时间节点进行增减和修改。周进度配置引导

如上方引导所示,我们可以以日为单位增加和修改时间节点,配置相应时间节点的表情和描述。每个时间节点以「结束时间」分界,某一时刻显示的结果为结束时间不小于该时间的最小时间节点,否则将退回到最接近的时间节点。具体含义通过「时间模拟」来测试不同结束时间可以比较好地理解。

需要重点说明的地方在时间节点的描述上,我们通过闭合的$$文本形式来传递不同的时间变量,以此保证描述对于时间是可变的。支持的变量十分简单且有限,主要分为三部分,模式、参数和运算。

  • 纯模式形式:
模式说明
$d$距离星期日的天数,如在星期一时该变量为 7
$h$距离 24:00 的小时数,如在 01:00 时该变量为 23
  • 模式 + 参数形式:
参数说明
$h-$向下取整,如在 01:30 时该变量为 22
$h+$向上取整,如在 01:30 时该变量为 23
  • 模式 + 运算形式:
运算说明
$h-2$配合数字进行加减运算,如在 01:30 时该变量为 20

以程序员之痛「996」为例,配置可以这样描述。996 工作模式配置样例

  1. 星期一至星期五显示单位为天,$d-1$表示距离星期六的天数。
  2. 进入星期六时显示单位为小时,$h-2$表示距离 21:00 的小时数,因为向下取整的原因这里应该为-2而不是-3;而超过 21:00 则正式进入周末。
  3. 星期日对剩余周末进行倒计时,$h-$表示向下取整,$h+$表示向上取整,用以显示周末剩余的小时数。

从上面的配置我们就能大概明白,996 的程序员有多壮烈了。诶不对,我们大概能明白如何配置个性化描述了。

月进度 (Month Progress)

月进度为新增进度视图,实际上它与「月」没有严格关系,是一个设置事件倒计时的视图,只是它的时间周期较长,一般以月为单位。进入设置——月进度,我们可以记录多个历史事件,设置相应的日期和名称。但小部件只能显示唯一一个事件,我们可以通过「设置为小部件显示」选项将其置顶,来配置需要显示在小部件的事件。将事件设置为小部件显示

一般的倒数日时间线从创建时刻开始计算,而这里月进度时间横轴是动态的,通过跨月的方式进行进度显示。比如 2018-12-25 的事件在进入 11 月时,进度会以 11-01 为起点放大时间进度,到 12 月时再调整为 12-01,直至到达事件设置的日期。这样的设计,也是取名为月进度的其中一个来由。月进度动态时间横轴

年进度 (Year Progress)

年进度是常规的进度显示,所不同的是它还包含了法定假日倒数显示。也恰因为年进度的显示一切都以当年法定假日为依据,所以没有过多的个性化配置。但需要说明的一点是,配置一般需要在新一年法定假日公布后进行更新,届时我们可以通设置——年进度选项进行本地配置更新。一般情况下,更新只会在年末推送。年进度配置更新

所有配置完成后均可到「首页」刷新视图来进行模拟调试,检查配置的效果。其余的通用设置项还包括「清除缓存」。为了提升小部件的运行效率,每个进度视图都设计有相应的缓存策略,如果某些修改没能及时生效,我们可以按需进行缓存清除。

说明

  • Progress 专门为小部件运行优化了许多地方,因此建议将小部件模式设置为「普通模式」,此时使用效果更佳。
  • 在实际小部件运行过程中,并非全部视图都同时渲染,因此不同于主应用运行时模拟视图的横向滚动切换方式,小部件需要通过点击视图来载入和切换进度视图。
  • iPhone X 上小部件高度参考值为 180,可在config.json中进行调整。一般情况下,我们不展开小部件就是最佳的显示效果。

附件

JSBox:Progress

V2.0 [2018-11-12 17:00]

  • Added「Month Progress」.
  • Added several settings, now all progress views are configurable.

如有问题,欢迎留言或邮件咨询