关于参加 WWDC 的介绍,特别是对于国内的朋友们,建议去看看喵神的这篇文章。本文主要是写给对 其奖学金 感兴趣的同学们。没错,你必须是在校学生或者 STEM 组织的成员才能申请。
这篇文章会有些长,请大家做好心理准备。
简单的介绍
建议大家仔细阅读 官方的描述 以及 各种条款,但总的来说你需要用 英文 和 Swift 编写一个有 创意 和 技术水平 的 Playground。你需要在北京时间 4 月 2 日早上 8 点之前上交,然后苹果就会在 4 月 21 日通知你是否被选中了!
需要的软件
如果你有一台 Mac,你需要 从 Mac App Store(还记得 XcodeGhost 么?)下载 Xcode;如果你有一台 iPad, 则需要从 App Store 免费下载 Swift Playgrounds;如果你只有 Windows 电脑,那么可以尝试使用虚拟机等(百度 Swift 吧有介绍)。
学习 Swift
如果你有 iPad 的话,我强烈建议你尝试下 Swift Playgrounds 里的 “学习编程”,这样你就能在学习 Swift 的同时体验一下 Playground 与普通程序的不同之处。
不过还是有必要更系统的学习 Swift。如果看的懂英文的话,建议去 (i)Books 下载 《The Swift Programming Language》;看不懂英文也没问题?,这里有中文版。对于有编程基础的同学,只需阅读 A Swift Tour(Swift 概览)应该就可以掌握这门简单的编程语言了;从未接触过编程的话这个章节可以略读,带着问题阅读 Language Guide(Swift 指南)是个不错的选择。
当然,你完全没有必要读 Language Reference(语言参考)和 Revision History(版本修订历史)。
其他要学的
开发 2D 平面游戏的话可以使用 SpriteKit,3D 游戏的话有 SceneKit,WWDC17 也有讲在 Swift Playgrounds 里使用 SceneKit,但我觉得你应该已经略有了解,而且知道去哪里找 3D 模型。但其实 UIKit 本身已经能满足大部分的需求。这么短的时间肝 斯坦福的 CS193p 是来不及了,但官方还有 Start Developing iOS Apps (Swift)。
其实有时间的话,还应该去看看 视图控制器的工作原理,进一步了解 TableView,以及 iOS 程序开发。
Playground
Playground 里的文档是支持 Markup 的,请避免使用 print,并改用这种方式 + CustomPlaygroundQuickLookable/CustomPlaygroundDisplayConvertible 引导用户。
Mac, Xcode, 和 Playground
Xcode 里的 Playground 是在 2014 年的 WWDC 上介绍的, 并且在 2015 年引入了上面的注释格式来帮助你 编写更加美观的 Playground。 除了 Xcode 里的模版之外,官方还有一个 简单的案例 可供参考。如果你去翻 Swift 的博客 的话,那里也有些没法编译但还是很有趣的 Playground。
iPad 和 Swift Playgrounds
然后 2016 年 WWDC 就介绍了 Swift Playgrounds 这个 iPad 上的程序,当然 去年也有更新。相比之下,iPad 上的 Playground 有很多优势,比如 特殊的数据传递方法,cut scene(用 HTML 编写的“剧情画面”,引入接下来的内容),封面图和术语表等。详情可以参考 Playground Book Format Reference。
个人瞎分析
断网离线判定和 3 分钟时限的规则还在,大家请多注意,但今年不知道为啥提到用苹果新科技这一点……不过我估计还是会有不少 增强现实 和 机器学习 类的 Playground。
不过说实话,要交的并不是普通的程序,而是你自己写的 Playground。作为可交互式的程序,去年很多被录取了的根本没有体现出 Playground 的特点,但我建议大家还是尽量:
- 利用 Playground 的各种特性来引导用户,说明接下来要干什么,能达到什么目标
- 让用户通过编程来主动 学习新的内容
- 通过有趣的内容激发兴趣,鼓励用户更多地去了解,学习和参与编程
- ……
去年的 Playground 肯定是非常有价值的参考对象。代码的话大部分应该都在 GitHub 上这个项目里,某Tube 上也有个 播放列表,不过不知道为啥 这个挺不错的 却没在里面。App Store 里的故事 大家也可以去瞧一瞧,看看过去获奖者的经历。
与此同时,我觉得这个和美国申请大学差不多,硬性条件 Playground 达到某种水平之后就完全靠 “Beyond WWDC” 这篇文章来分高下了。不多,500 词的英语写作,请大家感情丰富,有理有据地描述你如何分享你了解的编程知识以及用对 CS 的热情感化大众。建议大家不要无中生有,还是实事求是的好,不过同一件事情描述的角度不同,体现出来的效果自然是不一样的。大家可以把文章拿去让其他人读一读,参考下大家的意见多修改几遍比较好。
最后说几句
你问我难不难,那我肯定说难,不过也并不是说是传达不了的。但也不能说就因为难就去抄,你看去年那个 2048 就被拒了吧。
如果你还有什么其他问题的话,我都会尽快回答,可能的话我也会更新文章的内容。
最后,祝大家能心想事成,也希望我们能相约六月的圣何塞。