Swift Playgrounds是编程的多方面工具

当最初的iPhone推出时,就像大多数人一样,我对它的多点触摸界面着迷。 像滚动和缩小缩放这样的手势立刻变得有意义,不仅如此,它们还消除了使用应用程序的某种程度的间接性,而该应用程序是到目前为止所有计算机交互的一部分。 您现在不用触摸鼠标来移动光标,而是直接触摸该应用程序并与之交互。

尽管这可能看起来很小,但对可用性的影响实际上却很深远。 像通过多点触控界面平移和缩放地图或照片一样,这没有什么比。 感觉就像是一种自然的互动。

多点触摸对软件创建过程也产生了有趣的影响。 UI设计始终存在一个方面,通常被描述为“工艺”或“良好设计”,这代表着质量。 但是,触摸界面改变了它的含义,因为它真正成为了制作界面的方法,创造了一种可触摸的,几乎是(甚至不是实际上)有形的东西。

任何发现自己正在玩UI动画的人都会理解这一点的重要性。 在iOS主屏幕上向下拉几下,以模糊处理并显示聚光灯搜索字段,类似于在精心设计的物理对象上玩按钮。 软件变得有触觉。

同样,Swift游乐场-以及它们之前的iPython笔记本电脑-等同于编程的多点触控。 以相同的方式,iPhone通过删除(或隐藏)了构建步骤,从而改变了我们与应用程序交互的方式,从而使编程更加直接。 它们消除了间接的影响,使您的算法并存或与结果并存。

看起来有些小的变化实际上对您的代码使用方式,建模方式,调整方式(触摸方式)产生了深远的影响。

我最近在设计iOS组件以显示火车上的占用情况时遇到了这种情况。 在运行周期中,我没有使用PaintCode等工具或传统的构建工具,而是创建了一个Swift Playground并在此处组装了零件,并为乘客提供了一个小图形:

(实际的绘制代码非常简单,为简洁起见,仅将其隐藏在屏幕截图中。)

这项练习是一个愉快而有趣的过程,并鼓励我继续前进。 我需要一个小徽章来显示滑架编号,并用一种​​颜色指示它有多忙,这是滑架上的覆盖物:

就像乐高玩具一样,但是有代码! 让我们仅将其中几辆车粘贴在火车上即可:

在Swift Playground中设计这种视图既令人高兴又轻而易举,但不仅仅是效果很好。 您可能已经注意到,徽章与汽车的线性比例并不线性。 对于较小的尺寸,它们成比例地较大,因此数量仍然清晰可辨。 我为此使用了S型函数,很容易显示它的外观并在操场上对其进行调整:

我在Swift游乐场旁边提到了iPython笔记本,因为它们已经存在了很长时间,并且我使用它们的效果与Swift Playgrounds类似。 但是,我怀疑Swift游乐场会远远超过它们,原因有二:

  • 苹果公司对Swift的支持及其开放源代码项目引起的极大兴趣,意味着它是一种前景非常广阔的语言,很可能会比Python广泛采用。
  • iPad上的Swift Playgrounds以及在macOS上更专业的Xcode的可用性,使它们面向了全新的受众。

与现在许多没有鼠标和硬件键盘作为主要输入设备的人一样,我相信会有一代开发人员编写的代码与传统的编辑,编译,运行周期大不相同。

目前让Swift Playgrounds退缩的一件事是它们对macOS或iOS的限制。 尽管Linux上提供了Swift,但Swift Playgrounds却没有。

两全其美的是Jupyter笔记本电脑使用的Swift内核,实际上使Swift Playgrounds可以在任何可以运行支持Swift的开源堆栈的平台上使用。 那不是一个有趣的项目!