12歲學(xué)習(xí)編程,17歲香港高中生成蘋果WWDC2020 Swift開發(fā)者挑戰(zhàn)賽贏家!
今年的蘋果WWDC學(xué)生開發(fā)者挑戰(zhàn)賽上,入選的有一名17歲的香港高中生Alan Zhang。他的作品融入了AR元素,充滿想象力,深深吸引了蘋果高管們的眼球。
深知編程要從娃娃抓起,蘋果高管們?yōu)榱斯膭?lì)年輕一代「后浪」程序員和創(chuàng)作者,也是煞費(fèi)苦心。
這位17歲的香港高中生正是來自世界各地41個(gè)國家和地區(qū)的350名Swift挑戰(zhàn)賽優(yōu)勝者中的一員,他們提交的代碼都獲得了蘋果高層的認(rèn)可。
他們提交的 Swift playgrounds 原創(chuàng)作品,運(yùn)用Swift語言融合自身創(chuàng)意,編寫屬于自己的App,從全世界青少年中脫穎而出。
Swift學(xué)生挑戰(zhàn)賽,要求參賽者年滿13歲(不滿13歲,請(qǐng)法定監(jiān)護(hù)人發(fā)送電子郵件申請(qǐng)參加)。可以使用Swift playgrounds或者Xcode中的模版做進(jìn)一步的創(chuàng)新。比如加上圖像、音頻等內(nèi)容,完成的自己的作品。
該項(xiàng)比賽必須是單人參賽,不接受小組,但是可以包含第三方開源代碼,或者有公開版權(quán)的圖像聲音,但前提要解釋為何使用第三方資源,并提供開源證明。
要是在往常,入選學(xué)生都有機(jī)會(huì)免費(fèi)飛往加州現(xiàn)場(chǎng)參加蘋果的全球開發(fā)者大會(huì)(WWDC)。這可是一張價(jià)值1599美元的門票!
2016年的WWDC
但今年,WWDC2020也改為線上虛擬舉行了。沒有了往年為期一周的大型線下社交現(xiàn)場(chǎng),而是網(wǎng)絡(luò)遠(yuǎn)程參與大會(huì)。
入選的學(xué)生也收獲了意外驚喜,收到了蘋果寄來的WWDC勛章和專屬夾克衫。集齊勛章可以召喚神龍了。
11歲印尼裔澳大利亞選手Yuma Soerianto
少年的想象力:讓虛擬角色穿越現(xiàn)實(shí)世界
大賽要求參賽者創(chuàng)建一個(gè)三分鐘內(nèi)能完成的互動(dòng)場(chǎng)景。
Zhang提交的作品十分亮眼,其中不僅包含了編程元素,而且還包含了AR功能。自從2017年推出增強(qiáng)現(xiàn)實(shí)工具包(AR Kit)以來,增強(qiáng)現(xiàn)實(shí)功能一直是蘋果關(guān)注的重點(diǎn)之一。這套開發(fā)工具旨在為 iphone 和 ipad 開發(fā)新的AR app。
WWDC 2017上發(fā)布的蘋果增強(qiáng)現(xiàn)實(shí)開發(fā)平臺(tái)AR Kit
Zhang的獲獎(jiǎng)作品的名字充滿少年的想象力,名為《庫比回到幾何星系的旅程》(Cuby’s Journey Back to The Geometry Galaxy)。
該作品要求用戶使用預(yù)先編寫好的代碼塊來引導(dǎo)Cuby(一個(gè)立方體形狀的虛擬角色)穿越現(xiàn)實(shí)世界的表面,來實(shí)現(xiàn)一個(gè)特定的目標(biāo)。
Alan Zhang在 iPad Pro 上演示了他的入選app,虛擬角色Cuby穿梭在現(xiàn)實(shí)世界中。綠色的一面表示「他」正在面對(duì)的方向。
Alan Zhang獲獎(jiǎng)作品的截圖
Swift Playgrounds:游戲化的編程
蘋果一直以來非常重視少兒編程教育項(xiàng)目。
喬布斯遺志:這個(gè)國家的每一個(gè)人都應(yīng)該學(xué)學(xué)編程...因?yàn)槟軌蚪虝?huì)你如何思考。
「而蘋果的 Swift Playgrounds 讓編程體驗(yàn)變得更加有趣,互動(dòng)性也更強(qiáng)?!?Zhang在采訪中提到。這就是蘋果所說的「游戲化編程gamified coding」,把編程學(xué)習(xí)變成了一種游戲體驗(yàn)。
Swift Playgrounds是蘋果創(chuàng)建的用于Swift的開發(fā)環(huán)境。蘋果于2014年6月2日在WWDC 2014期間宣布并發(fā)布了最初的macOS Playgrounds版本,該版本作為Xcode的集成部分推出。2016年9月,針對(duì)剛開始學(xué)習(xí)代碼的年輕學(xué)生推出了專用的iPad版本。
想用Swift語言做出自己的小游戲,可以從理解代碼所需要的基本概念開始。
這款游戲有一個(gè)明確的任務(wù): 通過代碼行控制一個(gè)虛擬角色圍繞一個(gè)像障礙物一樣的平臺(tái)。
平臺(tái)內(nèi)置課程和圖書館,初學(xué)者可以在掌握了基礎(chǔ)知識(shí)后在Swift Playgrounds完成更多挑戰(zhàn),在創(chuàng)造有趣作品的同時(shí),還能提高自己的編程技能。
蘋果全球開發(fā)者高級(jí)總監(jiān)Esther Hare表示,對(duì)于像我這種對(duì)編程一竅不通的人來講,聽起來很復(fù)雜,但其實(shí)這個(gè)app啟動(dòng)緩慢,教授的都是最基本的編程知識(shí)。
我寫的每一行代碼都會(huì)導(dǎo)致這個(gè)「虛擬角色」的實(shí)時(shí)反應(yīng)。如果犯了一個(gè)錯(cuò)誤,app會(huì)立即突出顯示出來。一個(gè)小時(shí)之后,新手就已經(jīng)可以輕松操縱角色了。
平平無奇編程小天才:12歲開始寫代碼,編程就是分解問題,解決問題
這個(gè)游戲概括了Zhang愛上編程的兩個(gè)主要原因:
首先,他認(rèn)為編程是一項(xiàng)重要的生活技能,可以幫助人們以一種更加合乎邏輯的方式看待現(xiàn)實(shí)世界,即專注于分解問題,解決問題。
這個(gè)平平無奇編程小天才表示: 「程序員看到問題,理性地、邏輯性地將問題分解,然后解決問題?!?/p>
第二,Zhang說編程點(diǎn)燃了他對(duì)教學(xué)和教育的熱情。為此,他參與了一個(gè)名為 Code + Create 的非盈利項(xiàng)目,向香港貧困地區(qū)兒童教授編程技能。
「我教的學(xué)生大約在12歲到14歲之間,他們以前從來沒學(xué)過編程,」Zhang講到。他擔(dān)當(dāng)該項(xiàng)目組的負(fù)責(zé)人,幫助設(shè)計(jì)課程?!肝視?huì)教他們句法,他們寫程序時(shí)會(huì)感到很無聊,不知道編程的意義在哪兒。」
激發(fā)興趣比學(xué)習(xí)代碼本身更重要。
Zhang 12歲的時(shí)候就開始學(xué)編程了,那時(shí)候他還住在上海,后來移居香港,就讀于中文國際學(xué)校,小小年紀(jì)就一直活躍在香港的編程社區(qū)里。
Alan Zhang認(rèn)為「隨著編程和計(jì)算的興起,技術(shù)和醫(yī)療的發(fā)展越來越緊密。我希望更深入了解生物醫(yī)學(xué),以及計(jì)算機(jī)和醫(yī)學(xué)相結(jié)合的知識(shí)?!?/p>
今年是他高中生涯的最后一個(gè)學(xué)年,之后他希望能去美國或英國留學(xué)。關(guān)于主修什么專業(yè)他還不知道,但除了教育之外,也可能會(huì)選生物醫(yī)學(xué)和計(jì)算機(jī)。
現(xiàn)在,他正在利用這個(gè)夏天準(zhǔn)備香港的第一個(gè)黑客馬拉松。至于錯(cuò)失的圣何塞之旅?好消息是蘋果公司的高層已經(jīng)表示,他們可能會(huì)邀請(qǐng)今年的贏家明年來圣何塞,屆時(shí)蘋果全球開發(fā)者大會(huì)有望恢復(fù)正常。
23名中國大陸學(xué)生入選
值得一提的是,今年的學(xué)生挑戰(zhàn)賽還有23名中國大陸學(xué)生入選。最小的有14歲的中學(xué)生,還有大學(xué)新生。
21歲馮楊洋同學(xué)的參賽作品與中國文化結(jié)合緊密,用編程模擬了剪紙操作,用戶能夠模擬現(xiàn)實(shí)中折疊紙張的方向。通過這個(gè)作品,還將傳統(tǒng)中國剪紙文化發(fā)揚(yáng)光大。
使用的工具包括AppKit, Vision, SpriteKit, AVFoundation 和PlaygroundSupport。
Github地址:https://github.com/CynricFeng/Papercutting
19歲的Tony Tang,就讀于加州大學(xué)圣迭戈分校。他的項(xiàng)目是「6 Feet Between(六尺之間)」,全部用SwiftUI制作,沒有用任何game kit。
六尺之間是一個(gè)互動(dòng)游戲,利用蘋果最新的軟件技術(shù)獲得沉浸式體驗(yàn),號(hào)召人們講衛(wèi)生并保持社交距離。
游戲背景是人們正面臨一場(chǎng)病毒危機(jī),玩家是一個(gè)忍者,試圖從實(shí)驗(yàn)室將研究樣本送到工廠以拯救人們的生命。在整個(gè)運(yùn)送過程中,忍者需要和其他行人保持至少6英尺的距離。
這款互動(dòng)游戲運(yùn)用SwiftUI的離屏渲染技術(shù),不像其他游戲那樣大多基于「SpriteKit」或「SceneKit」。同時(shí)運(yùn)用 AVFoundation 和 PlaygroundSupport,不僅做到了視覺上的交互,還將用戶操作和聲音效果集成在一起,玩家每一步操作都可以獲得音效反饋。
GitHub地址:https://github.com/TonyTang2001/SixFeetBetween_WWDC20SwiftChallenge