Skip to content

Latest commit

 

History

History
125 lines (67 loc) · 8.63 KB

jsbox.md

File metadata and controls

125 lines (67 loc) · 8.63 KB

JSBox 是什么

JSBox 是一个可以用来运行 JavaScript 脚本的 iOS 应用,你可以通过他来执行标准的 JavaScript 脚本。

这种执行不是指跑在浏览器上,而是执行在一个完全原生的环境,效率很高。

并且我们提供了很多 iOS 原生的接口,这意味着你可以通过他做很多事情,包括但不限于:

  • 写一个用来查询汇率的脚本
  • 写一个用于计算小费的脚本
  • 通过接口实现一个小小的应用,提供丰富的界面
  • 写一个文本收藏工具,用于收藏常用的文字
  • 写一个下载 Twitter 视频的小工具

其实 JSBox 是完完全全可编程的一个应用,他能做很多事情,所限制产出的往往只是动手能力。

为了更好的编写脚本,我们甚至提供了配套的 VSCode 插件,用于更高效率的编写和测试 JSBox 脚本,可以做的桌面端编写 iOS 端实时刷新。因为我们始终相信无论移动端的编辑器做的多么强大,编写代码的效率也始终被桌面端碾压。

所以,JSBox 并不是像 Pythonista 那样为了编写代码而生的应用,编写代码只是实现功能的手段,我们的一切最终都是为了效率的提高。

有趣的示例

我希望通过一些 GIF 图片来展现一下 JSBox 实现的一些有趣的样例,借此能对 JSBox 有一个认识(请忽略 GIF 质量带来的色差和卡顿)。

从 App Store 获取资源

image

以图搜图

image

汇率转换

image

小费计算器

image

拼音转换

image

当然,JSBox 能做的事情还有很多,我们之后将会提供更多的样例脚本和更详细的教程。

为什么要开发这个应用

其实 JSBox 诞生和 Pin 3.0 有着千丝万缕的关系。

关注过 Pin 这款应用的朋友们可能知道,我们在 3.0 版本里面引入了执行 JavaScript 脚本的能力,尽管 Pin 不是第一个这么做的,也不是唯一一个这么做的,但之后我们还是在审核方面碰到了很多来自 Apple 的阻碍。

熟悉 iOS 平台的朋友可能知道,审核条款里面有一项就是关于应用不能下载执行代码的,但是 JavaScript 这种不需要编译的脚本语言,却处于一个模糊的区域。有很多应用提供了类似的流程却没有问题,我想一个可能的点是:Pin 之前作为一个效率应用,提供了太过方便的脚本安装方式。

这导致 Apple 认为这是不安全的,用户不能从外部安装一个脚本。

在长期提交修复不得通过之后,我不得不重新思考了这个问题,或许我应该做一个完完全全的编程类应用,这个应用并不提供很多方便安装脚本的方式,取而代之的是提供一些接口,让用户自己去实现需要的功能。

这样一个完完全全的编程类应用是教育类的,正如 App Store 推荐过的很多编程类应用一样,用户在使用一个脚本的时候,完全知道自己正在做什么。

在经过一段时间的重写和内测之后 JSBox 诞生了,这个应用里面,我们并不提供直接的功能,而是提供一些接口(能力),由用户去组织他需要的功能。

JSBox 是为谁而做的

显然,这样的应用不会是一个适应所有人的应用,他的小众程度可能要比 Pin 这样的剪贴板应用还要严重。但是这些并不成为阻止我开发这个应用的决心,因为我非常清晰地知道,我自己很需要这种应用。

随着人们对移动端生产力需求的提高,我们往往会花很多精力投入在生产力建设上面,希望通过效率工具来武装自己,近年来 Workflow 一类应用的崛起充分挖掘了这方面的需求。

但是依然有这么一个问题困扰着我,我这一类人是不适合在 Workflow 上面拖来拖去的,因为 Workflow 提供的并不是完备的编程能力,这对我这个程序员来说并不是一个完美的状态,我希望我的效率工具是可以完全由自己决定他的功能,他的界面,他的一切。

你可能会说,那就开发一个应用不就好了?但是有些需求的大小是不足以撑起一个应用的,例如:把最近拍的几张照片拼接起来,分享出去。这样规模的需求非常适合用 JSBox 这样的工具来实现,你只需简单的几行脚本,就能提供类似的功能。

与上述描述最接近的产品形态,其实是微信的小程序。但是微信小程序其实不是设计给我这种效率狂的,更确切地说,微信小程序有很多硬伤是我接收不了的:

  • 微信不会提供一个 URL Scheme 让你启动一个小程序
  • 你永远也无法通过微信小程序实现一个分享面板上的扩展
  • 有很多小程序基于某些原因微信是不会让你上线的
  • 有很多接口小程序微信基于自己的考虑而不会提供

如果你会写一点代码,希望完全定制自己的工具,希望有比 Workflow 更灵活的编程模式,以及极其方便的各种启动方式,那 JSBox 就是为你做的。

如果你虽然不懂代码,但是非常愿意折腾,有较强的动手能力来使用别人编写好的代码,希望通过技术手段来提升自己生活、工作的效率,那 JSBox 也是为你做的。

JSBox 不是为这一类人做的:希望应用打开后就是一个完美的状态,有你各种想要的功能。对不起,这不是 JSBox 要做的事情。

JSBox 究竟能做什么

上面举了一些 JSBox 能做到效果的例子,但是其实能做到什么程度并不是几句话可以说的清楚的,因为一个编程工具理论上他能做到的事情,是取决于用他编程的人。

我们在 JSBox 里面大概内置了 7 个样例脚本,但这是远远不够的,甚至不能作为了解接口设计的必备内容,除此之外我们还准备了两个内容用于提供教程和样例:

同时欢迎各路对编程感兴趣的朋友来完善这个项目,尤其当你发现自己的一个需求用 JSBox 实现不了时,请一定通过应用内的反馈方式联系到我,合理的需求都会被尽快满足。

出于审核限制的原因,我们并不会将上述的一些样例代码以在线下载的方式集成到 JSBox 应用内,但你完全可以自己实现一个下载工具把脚本安装进去。

下一个里程碑

上面说了很多关于 JSBox 适合的人群,其实还有一类人群是目前没有很好的照顾到:完全没有任何编程经验的新手

这个其实算是一个愿景了,因为我已经在这个行业工作多年,深知传播编程并不是一件容易的事情,但这件事情的重要性正在不断地变高。

可能下个十年,编程几乎会成为人人都会的一种基础能力,就像英语那样成为世界性的语言。

我也始终相信,兴趣永远是最好的老师,任何事情都是如此,这句话其实是最近玩 Human Resource Machine 有感而发(顺便说下这个游戏实在是太棒了必须推荐)。

所以在之后,JSBox 里面将会提供一个循序渐进的学习环境,引导用户一点点地去实现一个个的功能。这很难,但我对此很感兴趣。

关于售价

我近一年的探索基本都和 JSBox 有关,这是我真正想做的事情,这个意义远远地超过了他能带来多少收入,当然,收入越多越好。

他的售价不会太便宜也不会太贵,目前首周促销的价格是 30 元人民币,之后将恢复 40 元人民币的售价,同时如果你通过 18 元购买过 Pin 的话,可以通过补齐应用套装来优惠 18 元。

后记

关于为什么要做这么一款应用,我其实还有一个私心。

我始终都记得童年时代用电子词典玩各种程序的日子,那段时光很美好,也在一定程度上培养了我们的兴趣。

当时的电子词典上也有各种各样的编程平台,例如 GVBASIC/LAVA/BBASIC,尽管童年一去不复,这些名字也已经被人所遗忘,但是对于编程的热情却不会停止,指引我们在这件事上做出更有趣的东西。

我始终相信,这些驱动我们去不断折腾的精神,是让世界变得更美好的原因之一。所以我们为真正的极客,做了这个应用。