一年一度的苹果全球开发者大会(WWDC)将于北京时间6月4日凌晨1点在美国加州圣何塞开始举行,届时IT之家将应邀前往参会并全程直播,敬请关注。
学生开发者奖学金是每年WWDC的重头戏之一,目的是鼓励更多学生加入编程。在WWDC 2019召开之前,IT之家联系到了今年学生奖学金获得者之一的潘维恒。
潘维恒,今年20岁,就读于香港中文大学,专业是数学与信息工程学。潘维恒表示,开放作品提交前不久才得知WWDC奖学金的存在,当时又恰逢期中考试,所以留给我选题的时间并不多。曾经也有一些比较平凡的点子,后来都被自己否决掉了。由于他就读的专业是数学与信息工程学,比较喜欢数学中一个叫做微分几何的方向,研究的主要是曲线、曲面等几何图形的各种性质。最后灵光一闪想到了其中一个叫做包络(envelope)的概念,以此为灵感,花了一天的时间完成了Weave。
“Weave”
Weave是潘维恒此次参选WWDC19奖学金提交的Swift playground book,可以在iPad上的Swift playground中运行。用术语来讲的话,Weave的主要内容是绘制直线族的包络。简而言之,取一个圆形,在圆周上定下一些等距分布的点。每连接两个点,就会构成一条直线。如果按照某种规则,将一些点连起来的话,可以看到这些直线似乎组成了一条曲线,这条曲线就是这族直线的包络。让人意外的是,即使是很简单的连线规则也可以生成很复杂的曲线。这一过程就像是在圆周上织线,所以取了“编织”(Weave)这个名字。
在Weave中,用户可以通过自定义连线规则、点的数目在圆形、正方形或正三角形上编织,以构成各种千奇百怪的图形。例如,取圆上的一点作为起始点,连接它右侧的第1个点和第2个点、第2个点和第4个点、第3个点和第6个点……以此类推,最后会得到一条内切于这个圆的心脏线(cardioid)。同时,点的数量越多,构成的图形越明显。
Weave的目的一是让用户了解到Swift的函数式编程特性,即可以将函数或闭包(closure)作为参数传入函数中,而在Weave中需要用这种方式传入连线规则;二是希望用户能领悟到一些数学之美,对数学产生一些兴趣。
在开发应用时你遇到过哪些困难?又是如何应对的?
在开发Weave时遇到的困难不多,主要是由于Swift playground book比较新,网络上可供参考的资源不多,且其本身目前也有一些bug。
去年七月,我在开发我的第一个app“Ortho - 透视修正相机”时遇到了不少困难。相机类的app涉及到非常多API的调用,而当时我只是刚刚入门Swift,只能慢慢地实现一个一个功能。后来基本完成后,由于这个app需要用到相机,无法在模拟器上进行测试,只好向周围的朋友借各种iPhone机型进行测试,也多亏了他们的帮助,我才能完成针对双摄像头机型、全面屏机型的适配。最后的一个困难是App Store的审核过程。当时第一次提交的时候被以收集用户隐私的问题驳回,但我的app完全没有这么做。后来通过与苹果方面一封封邮件的联系才解决了这个问题。
获得苹果开发者奖学金有何感触,对国内正在学习开发的人有什么建议?
起初参选WWDC奖学金时只是抱着试试看的心态,觉得自己的作品比较简单,因此也没有抱太大希望。看到获奖邮件的那天早上,拿起手机掐掉闹钟,打开邮箱看到有一封苹果发来的邮件,心里很忐忑,打开之后看到第一个词是“congratulations”,真的是莫大的惊喜。我是苹果的老用户,在中学的时候就有了开发iOS app的想法,但由于那时课业繁重,网上也缺乏教程资源,自己也没有什么好的想法,只好作罢。一直以来都是在网上看历年的WWDC发布会,一想到其中的场景就要跳出小小的视频播放窗口出现在眼前,当然是激动不已了。十分感谢苹果能给予我这样的机会。
对国内正在学习开发的人的建议是:除了编程技能外,设计技能、审美理念、心理学知识对app开发都有很重要的作用,也应当有所涉猎。
推荐阅读:
《【WWDC 2019专访】IT之家对话21岁开发者刘恒宇:编程为实现内心想法,多“输入”才能有“输出”》
《【WWDC 2019专访】IT之家对话15岁开发者于伟奇:获得奖学金只是开始,要学习的还有很多》
《【WWDC 2019专访】IT之家对话20岁女孩刘月琦:编程无关性别,只要你想,就去做吧!》