自动化一直是 iOS 平台效率工具领域不可忽视的一个话题,之前被 Apple 收购的 Workflow 也是很多人第一个会想到 iOS 自动化工具。而说起 iOS 平台上的自动化工具,去年底刚上架的这款 JSBox 也是不能被忽视的存在。这款应用出自国内的开发者钟颖之手,他开发的另一款效率工具 Pin 在 2 年前获得过中国区 App Store 年度十佳应用的殊荣,少数派当时也对钟颖进行了 幕后专访。

也许你还不了解 JSBox 是什么,简单来说,我们可以将 JSBox 的名字拆成两部分来理解。「JS」指的是编程语言 JavaScript,这也代表了 JSBox 的核心功能:你可以在 JSBox 里使用 JavaScript 编程语言编写可以运行的脚本,来实现各种功能。
而「Box」指的则是 JSBox 本身对于脚本的收容作用,它是一个用来存放脚本的容器。用开发者钟颖的一句话总结就是:JSBox 是一个可以用来运行 JavaScript 脚本的 iOS 应用,你可以通过他来执行标准的 JavaScript 脚本。
目前,JSBox 已经拥有诸如倒数日、换算汇率、查电影信息甚至是调试网页以及管理服务器这种在 iOS 上几乎不可能实现的复杂脚本,说它是 iOS 自动化领域最强大的应用应该也不为过。

刚好今年的 WWDC 2018 开发者大会上 Apple 推出了集成 Siri 的全新自动化工具 Shortcuts,本期幕后我们就再次请到了钟颖,和他一起聊聊 JSBox 的定位、能力,以及他对于 Shortcuts 以及更多关于自动化领域的看法。
距离 Pin 获得 App Store 年度精选也快过去 2 年了,Pin 后来还有没有更新有意思的功能,接下来有什么开发计划?
其实 Pin 3.0 里面的脚本功能就是 JSBox 的前身,这个版本之前开发了很长的时间,不过最近重心已经转移到了 JSBox 上。短期内对于 Pin 没有比较大的开发计划,长期看我应该会对 Pin 的用户界面进行一个比较大的改造,因为目前来说 Pin 存在很多交互方面的问题。
关联阅读:《像浏览器扩展一样,苹果年度应用 Pin 3.0 让你也能自由编写、安装插件》
怎么想到要做 JSBox 这款应用?
正如上面说到的,JSBox 这个应用最早的想法是来源于希望能够用 JavaScript 对 Pin 里面的文本进行一些处理,之后的一些开发路线,更像是为了开发一个能满足各种「小需求」的框架。因为我越来越注意到,不管是生活中还是工作中,总是有些需求特别的小,难以撑起一个 app。这些需求往往适合用一些简单的脚本来解决,所以 JSBox 就是要提供这样一个应用框架,让能够写脚本的人自己解决自己的问题,而无需了解 iOS 开发的各种细节。
关联阅读:《JSBox:一个创造工具的工具》
iOS 平台上有很多自动化工具,比如 Workflow 等,JSBox 和它们的区别是什么?相比之下,JSBox 的优势是什么?
JSBox 很多时候会拿来跟 Workflow 比较,但我觉得这两者还是有很大的区别,甚至可以说是不同的东西。举一个最简单的例子,JSBox 可以提供灵活的用户界面,但 Workflow 不行。

本质上来说,Workflow 提供的是一种简单的、模块化的编程,但 JSBox 提供的是真正的编程,能够让你掌控一切。我觉得这两件事情没有好坏之分,Workflow 会更适合对编程仅有一点了解的人,适用的人群可能更广泛。但 JSBox 提供的很多能力是无法用 Workflow 实现的,在处理复杂的编程逻辑时,也会比 Workflow 方便很多。
JSBox 不断在更新与编程有关的接口和功能,它是一款更偏向于开发者群体的工具吗?之后还会增加什么功能?
「让会编程的人简单地找到解决方案」是 JSBox 的目标之一,但我觉得 JSBox 不应该偏向于具体的某一个群体。如果你是愿意折腾的小白,你完全可以找到 JSBox 上面对你有用的脚本,而不需要懂编程。就目前来说,开发的主要路线有三个方面:
- 完善接口,提供更多更灵活的能力,主要满足脚本开发者的合理反馈
- 为即将到来的 iOS 12 准备,已经在 TestFlight 上面初步实现
- 提供一种更适合小白或者说更偷懒的构建脚本的方式,暂不剧透具体想法
你会用 JSBox 做什么,推荐几个你在用的 JSBox 脚本吧
我最常用的一个脚本是 JSBox 实现的 Pin,这听起来很夸张,因为你肯定无法用 Workflow 实现一个 Pin。我也在用由用户 Ryan 编写的 Progress 小插件,在通知中心使用十分方便。作为开发者,我经常会需要查看和获取应用在 App Store 的一些信息和资源,我会用到 iTunes 工具 这个脚本。最近我写了个 Shortcuts 安装器,提供的功能很简单,能够让你安装本地的 Shortcuts 文件,也许你现在还没有体验 Shortcuts,iOS 12 正式发布之后,这个脚本一定能帮到你。

除此之外,我个人还有一些自用的脚本,比如一些写好的 SSH 脚本,可以让我管理我的服务器等等。
Alfred、Keyboard Maerstro 等 macOS 软件也可以通过 JavaScript 等编程语言编写自动化脚本,JSBox 有可能也推出桌面版本吗?
这是一个「巨大」的想法,因为 iOS 和 macOS 上面很多的不一样,能共用的模块其实是很有限的,而且涉及到个人精力的问题,所以我目前没有具体的打算。
今年的 WWDC 开发者大会上 Apple 推出了主打 Siri 集成的自动化工具 Shortcuts,你怎么看待这款工具?Shortcuts 对于 JSBox 的开发有没有什么影响?
Shortcuts 就是与 Siri 深度集成的 Workflow,代表了 Apple 对移动端自动化的思考。我个人非常看好 Shortcuts,除了给用户方便,他还能让第三方应用与系统(主要指 Siri)有更深的集成。这也是一个很大的话题,JSBox 当然会抓住 Shortcuts 这个机会,具体来说会支持这几个方面:
- 通过语音在 Siri 界面运行 JSBox 脚本
- 在 Siri 和 Shortcuts 应用里面运行 JSBox 脚本
- 在 Siri 界面显示由 JSBox 脚本编写的界面
- 在 Shortcuts 应用里面利用 JSBox 运行 JavaScript
目前在 JSBox 的 TestFlight 已经可以体验了,当然,你也可以看一眼文档:https://docs.xteko.com/#/shortcuts/intro

最近又有新闻传出 Apple 希望继续推进和鼓励开发者采用订阅制,你也经常在社交网络上发表对订阅制的看法。跟少数派的读者也聊聊你对订阅制的理解吧,你的作品有可能会尝试订阅模式吗?
订阅制肯定是大势所趋,虽然很多人还不能接受这一点。出现分歧的主要原因,是目前很多人还不能认同持续地开发一个软件需要巨大的人力,这本身就是一种服务,和这个软件是否是工具类软件一点关系都没有。工具类软件不能订阅?除非你愿意接受下面两种情况之一:
- 软件发布之后很快就不更新了,比如 Clear 就是一个例子。
- 软件不断地发布 2.0、3.0、4.0 每次都独立收钱,这样的软件就太多了。
订阅制就是为了在这些矛盾中寻找一个平衡,开发者是一定要赚钱的,不然就不开发了,就这么个简单的道理。
我的软件目前都没有使用订阅制,主要是因为目前大环境(尤其是在国内)还没有起来。人们能接受几十块点个外卖,但他接受不了几十块买一个他天天都可以受用的软件,更何况是每年都几十块呢。
从你开发的 App 可以看出来,你应该是一个很注重效率的人。跟我们分享一下你在用的效率工具或 App 吧
我的确会体验很多很多的 app,但留下来的其实没有很多。除了我自己开发的几个软件,说几个最常用的:
- 我的标记:可能是最好的标记应用。
- LightScreen:非常有用的截图管理工具。
- 极光词典:简洁好用的词典。
- Potatso:不能说。
- Price Tag 团队的 Artrwork,可以说是开发者必备吧。
关于「幕后」
我们每天会接触大量的软件、硬件,但是多数时间下,都只是以固有的「使用者」视觉去体验和评判,快节奏的模式让我们没时间体会太多背后的理念。「幕后」栏目 因此而生,我们会不定期邀请一些开发者,讲述他们创造产品背后的故事。这是本栏目的第 44 篇文章。