用 Swift playground 改变世界

今年早些时候,世界各地的学生们在 WWDC20 Swift 学生挑战赛中投入高度的热情、才华与决心,精心制作各自的 Swift playground 项目。来自 60 个国家与地区的学生各显身手,根据挑战赛规定完成一个个 3 分钟内的互动场景,发挥想象力并探索 Apple 框架与技术。最终脱颖而出的 350 名 Swift 学生挑战赛获奖者的作品创造了 AR 体验、机器学习驱动的项目、教育材料、虚拟乐器、8-bit 游戏等大量精彩项目。

滑动以解锁

2019 年,Henrique Conte 仅在巴西阿雷格里港的 Apple Developer Academy 学习了 1 个月时间,便提交了自己的第一个 Swift playground 项目。虽然他没能获得当年的 WWDC 奖学金,但那段经历激励了他,让他继续探索并改进自己的代码。

“今年,在阅读并研究了大量不同的 Apple 框架之后,我感觉自己应该试着去实现 WWDC19 的主题——‘编写代码,震惊世界。’(Write code. Blow minds.)”他告诉我们。他也的确做到了——他的获奖作品,一款专为 MacBook Pro 触控栏设计的 3 分钟小游戏,在对技术的敏感与创意方面都堪称出类拔萃。

在这个 playground 里,玩家要帮助年轻的开发者 Eleanor 逃离洞穴——妙就妙在这个“洞穴”关卡完全位于触控栏内。“我选择使用不寻常的框架,来证明用它们可以做出非常神奇的事情。”Conte 说道,“我感觉(触控栏)还有很多潜力有待发现,我希望能展示它的一些潜能。”

Henrique Conte 的获奖作品《ESCape, Eleanor!》

虽然此前没有 macOS 的开发经验,但 Conte 选择了迎难而上。他在开始时遇到了一些障碍,这在学习新开发概念时自然在所难免——“当我(在试图把 UIKit 添加到项目时)收到‘没有 UIKit 模块’的提示时,我意识到接下来的事会变得很有趣了。”他开玩笑道——但他很快学会了 Mac 编程的基础知识,使用 AppKit 和 SpriteKit 构建出一个完整的互动体验,包括轻点、滑动、键盘集成与多屏叙事。同时,他还在设计方面投入了不少精力,这对他的重要性正在日益提升。

“我肯定不是个设计师。”Conte 说道,“但在过去几年里,我认识到了遵守 Apple Human Interface Guidelines 并提供出色的使用体验有多么关键。如果人们难以使用你的应用,再完美的代码也将毫无意义!”

你可以在 App Store 上找到 Conte 的更多作品:在过去一年里,他创作了 4 款 App,包括一款帮助自闭症儿童进行交流的工具。目前他正在制作自己的下一个项目,这是一款旨在处理食物浪费问题的应用,在 iOS 与 macOS 上都可使用。此外,他很高兴地告诉我们,macOS 版本将会用到触控栏。

上下颠倒的世界

来自法国里昂的 Louise Pieri 今年 21 岁,她从小就爱上了计算机科学,并在法国商业巨子 Xavier Niel 创办的编程学校 École 42 里继续深造。Pieri 的获奖项目《Meep》灵感来自她读过的一篇关于平行宇宙可能性的科学笔记,以及她本人作为一名跨性别女性的私人经历。

“《Meep》是一款包括两个关卡的游戏。在第一关里,所有东西都上下颠倒、左右翻转;在第二关里,一切都恢复了正常。”Pieri 介绍道,“故事讲述的是一个蓝色的跨性别小怪物想要到达最后关卡并变成粉色……这是个美丽的隐喻,象征着跨性别者的生活。”

Louise Pier 的获奖作品《Meep》

虽然 Pieri 此前从未使用过 SpriteKit 或 AVKit,但她知道自己想做一款游戏作为 Swift playground 参赛作品。她花了两天时间构思创意,想出了《Meep》的概念,然后便开始投入框架与界面的制作。她原本希望在屏幕上同时展示《Meep》的两个宇宙,但最终决定改为多关卡设计,包括一个完全颠倒的关卡。

除了设计与编写游戏,Pieri 还使用《Adobe Illustrator》为每个关卡绘制了 2D 插画,并为游戏创作了背景故事——她在两周时间内完成了这一切。

Pieri 今年在法国观看了 WWDC20,她渴望进一步了解 Apple 平台的未来。“我迫不及待地想了解 iOS 14。”她说道。这事关她的下一项计划——把《Meep》带到 App Store。

会思考的机器人

Devin Green 对开发工作的热爱源于他自小对“会思考的机器”的痴迷。“我一向十分敬畏人工智能。”他告诉我们。这位 18 岁少年的获奖项目——一个名为 Stanny 的 AI 机器人——就脱胎于这个想法。

“在当前的情况下,我认为隔离在家的人如果能和一个聪明的 AI 伙伴说说话,也许对他们的精神健康有好处。”他说道。Green 今年秋天将开始在斯坦福大学学习计算机科学与工程。他花了大约一周时间来制作自己的 playground——其中大部分时间都花在了调试赋予 Stanny“智慧”的机器学习模型上。

“这个模型由一个数据文件进行训练,这个文件里包括了所有你可能对 Stanny 说的话。”Green 说道。在研究了他人如何训练聊天机器人之后,Green 用 TensorFlow 创建了自己的模型,然后通过 Core ML 转换器把它放进了自己的 Xcode playground。

Devin Green 的获奖作品《Stanny》

对机器学习模型试验本已十分熟悉的 Green 利用这个项目进一步了解了 Apple ML 的更多可能。“我希望尽可能地简化从数据到可用的人工智能之间的过程。”他告诉我们。他用 NSLinguisticsTagger 构建了一个可用的模型,然后创建了一个生成的 Core ML 模型,以根据使用者的查询内容预测其意图,并用 SwiftUI 设计了他的 playground。

在 Green 看来,Swift 就是机器学习与 AI 应用的未来。“Swift 不仅是一种非常简单易用的语言,用途还非常广泛。”他告诉我们,“作为构建的基础,它几乎无所不能。”

相比之下,Stanny 就没有这么全面了:这个爱说笑的 AI 只能预测有限的 63 种意图。但是 Green 还有更大的计划——他已经迫不及待地想加入 WWDC20 上公开的一些技术了。“自然语言框架太惊人了。”他告诉我们,“即使我对使用 Swift 进行机器学习有过任何疑虑,它们也在我观看一款自然语言处理应用理解大约 5 行代码的文本时烟消云散了……我制作的项目,比如 Stanny,即将变得比现在强大 100 倍!”

编程即设计

在首次获奖的 Renata Pôrto 看来,这次挑战赛给了她直面自我怀疑的机会。“作为设计师,我总有些怀疑自己编写代码执行复杂创意的能力。”她说道。过去几年中,她曾两次提交 Swift playground 项目,却均告失利。这位来自巴西累西腓市伯南布哥联邦大学的 21 岁学生并未因此灰心,而是决定第三次参加挑战。不过,在这次工作开始几天之后,她又放弃了自己的项目。

“我对自己继续‘安全’创意的决定很不满意。”她告诉我们。于是,她开始思考自己希望了解但尚未探索过的概念——其中就包括生成艺术。“我一直认为,程序设计的一个神奇之处就在于把一行行的代码转换为视觉与互动体验的可能性。”她说道。仅仅 6 天之后,她就做出了《Polar Patterns》。这个 Swift playground 能帮助人们深入了解数学玫瑰线,并生成自己的视觉艺术画。

“SpriteKit 让我能把数学玫瑰线的极坐标方程转换为 SKShapes,把方程的解变成视觉元素。”她说道。Pôrto 仅设计了两幅图,就凭借她的算法代码与一些 UIKit 元素创造出了整个视觉化体验。

对 Pôrto 来说,设计完整的程序艺术界面是走出舒适区的体验。“我习惯在编程之前先做测试。”她告诉我们。但是这个项目的动态变化则取决于使用者在 playground 内采取的操作。这意味着 Pôrto 必须不断设想与尝试,打造完善的界面。

Renata Pôrto 的获奖作品《Polar Patterns》

最终,这个 Swift playground 不但展示了极坐标玫瑰线的精美与复杂,还让 Pôrto 成为了挑战赛的获奖者。“了解开发工作让我非常开心,虽然我是学设计的。”她告诉我们,“学习设计的经历让我能够把(对人的)同理心应用到项目中,并懂得使用哪些资源、如何加以利用,以获得更好的成果。”

这份同理心还让她与一个当地开发者团体合作,为社区的新手开发者们创造教育工具。“我总想把自己的设计知识传授给开发者,把开发知识传授给设计师。”她说道,“希望有一天,他们能做出好的产品,让他人的生活变得更美好。”


进一步了解 Swift 学生挑战赛获奖者。

Swift 学生挑战赛获奖者塑造未来

View now

App Store: Meet the Swift Student Challenge winners