今年的苹果WWDC学生开发者挑战赛上,入选的有一名17岁的香港高中生Alan Zhang。他的作品融入了AR元素,充满想象力,深深吸引了苹果高管们的眼球。
深知编程要从娃娃抓起,苹果高管们为了鼓励年轻一代「后浪」程序员和创作者,也是煞费苦心。
这位17岁的香港高中生正是来自世界各地41个国家和地区的350名Swift挑战赛优胜者中的一员,他们提交的代码都获得了苹果高层的认可。
他们提交的 Swift playgrounds 原创作品,运用Swift语言融合自身创意,编写属于自己的App,从全世界青少年中脱颖而出。
Swift学生挑战赛,要求参赛者年满13岁(不满13岁,请法定监护人发送电子邮件申请参加)。可以使用Swift playgrounds或者Xcode中的模版做进一步的创新。比如加上图像、音频等内容,完成的自己的作品。
该项比赛必须是单人参赛,不接受小组,但是可以包含第三方开源代码,或者有公开版权的图像声音,但前提要解释为何使用第三方资源,并提供开源证明。
要是在往常,入选学生都有机会免费飞往加州现场参加苹果的全球开发者大会(WWDC)。这可是一张价值1599美元的门票!
2016年的WWDC
但今年,WWDC2020也改为线上虚拟举行了。没有了往年为期一周的大型线下社交现场,而是网络远程参与大会。
入选的学生也收获了意外惊喜,收到了苹果寄来的WWDC勋章和专属夹克衫。集齐勋章可以召唤神龙了。
11岁印尼裔澳大利亚选手Yuma Soerianto
少年的想象力:让虚拟角色穿越现实世界
大赛要求参赛者创建一个三分钟内能完成的互动场景。
Zhang提交的作品十分亮眼,其中不仅包含了编程元素,而且还包含了AR功能。自从2017年推出增强现实工具包(AR Kit)以来,增强现实功能一直是苹果关注的重点之一。这套开发工具旨在为 iphone 和 ipad 开发新的AR app。
WWDC 2017上发布的苹果增强现实开发平台AR Kit
Zhang的获奖作品的名字充满少年的想象力,名为《库比回到几何星系的旅程》(Cuby’s Journey Back to The Geometry Galaxy)。
该作品要求用户使用预先编写好的代码块来引导Cuby(一个立方体形状的虚拟角色)穿越现实世界的表面,来实现一个特定的目标。
Alan Zhang在 iPad Pro 上演示了他的入选app,虚拟角色Cuby穿梭在现实世界中。绿色的一面表示「他」正在面对的方向。
Alan Zhang获奖作品的截图
Swift Playgrounds:游戏化的编程
苹果一直以来非常重视少儿编程教育项目。
乔布斯遗志:这个国家的每一个人都应该学学编程...因为能够教会你如何思考。
「而苹果的 Swift Playgrounds 让编程体验变得更加有趣,互动性也更强。」 Zhang在采访中提到。这就是苹果所说的「游戏化编程gamified coding」,把编程学习变成了一种游戏体验。
Swift Playgrounds是苹果创建的用于Swift的开发环境。苹果于2014年6月2日在WWDC 2014期间宣布并发布了最初的macOS Playgrounds版本,该版本作为Xcode的集成部分推出。2016年9月,针对刚开始学习代码的年轻学生推出了专用的iPad版本。
想用Swift语言做出自己的小游戏,可以从理解代码所需要的基本概念开始。
这款游戏有一个明确的任务: 通过代码行控制一个虚拟角色围绕一个像障碍物一样的平台。
平台内置课程和图书馆,初学者可以在掌握了基础知识后在Swift Playgrounds完成更多挑战,在创造有趣作品的同时,还能提高自己的编程技能。
苹果全球开发者高级总监Esther Hare表示,对于像我这种对编程一窍不通的人来讲,听起来很复杂,但其实这个app启动缓慢,教授的都是最基本的编程知识。
我写的每一行代码都会导致这个「虚拟角色」的实时反应。如果犯了一个错误,app会立即突出显示出来。一个小时之后,新手就已经可以轻松操纵角色了。
平平无奇编程小天才:12岁开始写代码,编程就是分解问题,解决问题
这个游戏概括了Zhang爱上编程的两个主要原因:
首先,他认为编程是一项重要的生活技能,可以帮助人们以一种更加合乎逻辑的方式看待现实世界,即专注于分解问题,解决问题。
这个平平无奇编程小天才表示: 「程序员看到问题,理性地、逻辑性地将问题分解,然后解决问题。」
第二,Zhang说编程点燃了他对教学和教育的热情。为此,他参与了一个名为 Code + Create 的非盈利项目,向香港贫困地区儿童教授编程技能。
「我教的学生大约在12岁到14岁之间,他们以前从来没学过编程,」Zhang讲到。他担当该项目组的负责人,帮助设计课程。「我会教他们句法,他们写程序时会感到很无聊,不知道编程的意义在哪儿。」
激发兴趣比学习代码本身更重要。
Zhang 12岁的时候就开始学编程了,那时候他还住在上海,后来移居香港,就读于中文国际学校,小小年纪就一直活跃在香港的编程社区里。
Alan Zhang认为「随着编程和计算的兴起,技术和医疗的发展越来越紧密。我希望更深入了解生物医学,以及计算机和医学相结合的知识。」
今年是他高中生涯的最后一个学年,之后他希望能去美国或英国留学。关于主修什么专业他还不知道,但除了教育之外,也可能会选生物医学和计算机。
现在,他正在利用这个夏天准备香港的第一个黑客马拉松。至于错失的圣何塞之旅?好消息是苹果公司的高层已经表示,他们可能会邀请今年的赢家明年来圣何塞,届时苹果全球开发者大会有望恢复正常。
23名中国大陆学生入选
值得一提的是,今年的学生挑战赛还有23名中国大陆学生入选。最小的有14岁的中学生,还有大学新生。
21岁冯杨洋同学的参赛作品与中国文化结合紧密,用编程模拟了剪纸操作,用户能够模拟现实中折叠纸张的方向。通过这个作品,还将传统中国剪纸文化发扬光大。
使用的工具包括AppKit, Vision, SpriteKit, AVFoundation 和PlaygroundSupport。
Github地址:https://github.com/CynricFeng/Papercutting
19岁的Tony Tang,就读于加州大学圣迭戈分校。他的项目是「6 Feet Between(六尺之间)」,全部用SwiftUI制作,没有用任何game kit。
六尺之间是一个互动游戏,利用苹果最新的软件技术获得沉浸式体验,号召人们讲卫生并保持社交距离。
游戏背景是人们正面临一场病毒危机,玩家是一个忍者,试图从实验室将研究样本送到工厂以拯救人们的生命。在整个运送过程中,忍者需要和其他行人保持至少6英尺的距离。
这款互动游戏运用SwiftUI的离屏渲染技术,不像其他游戏那样大多基于「SpriteKit」或「SceneKit」。同时运用 AVFoundation 和 PlaygroundSupport,不仅做到了视觉上的交互,还将用户操作和声音效果集成在一起,玩家每一步操作都可以获得音效反馈。
GitHub地址:https://github.com/TonyTang2001/SixFeetBetween_WWDC20SwiftChallenge