四年前,我开始接触并了解 iOS 开发时,便希望能找到一个课程,为我说明 iOS 独立开发到底在做什么,需要掌握哪些技能。然而在学习与寻找的过程中,我发现现有课程常范围过于狭窄,或过分关注于技术,却缺乏对整个应用和领域的讲解。在本系列教程中,我希望把最新的蓝图递到你手中。它是一个包含发现需求、早期设计、中期开发、后期宣传的 iOS 跨平台独立应用开发教程。给你们,每一个想把创想变现的人。

实践与经验

我认为单一专业的知识深度足够,但广度缺失,因此在学习期间,我接触并了解了各领域的独特需求,在加拿大 SFU 修了计算机和设计双专业。其次,还在商科、心理学、语言学、电影史、游戏设计、音乐理论、领导力训练等方面有涉猎。这些知识在不同程度上助益我理解应用程序创作所需的各个方面。

交互叙事,编程与交互设计的跨学科应用 - 王禹效

在大学期间,我带过二十几个程序设计专业的大学生,一对一教他们编程;与少数派合作出版了 macOS 效率手册;受温哥华本地英语授课机构 Beyond Fluency 邀请做 iOS 端程序的开发,也创作了独立应用 书空

在教导编程期间,我明确感受到到部分学生对所学知识的背景掌握并不明晰,学习时理解困难。教授通常对学生之前所学内容的了解程度有所高估,而忽略很多对理解至关重要的知识背景的讲解。在本教程中,我希望从知识背景出发,先告诉你为什么需要学习这些技术,而后再详细讲解。

在独立开发这件事情上,市面上做得比较好的免费和付费教程我基本都看过。很多新人一上来就直接学习斯坦福 iOS 公开课 CS193P,很快被内容难走,而在我创建的 斯坦福课程讨论组 中,364 人中只有十余人坚持到第五课之后的内容。

现有教程大多侧重于程序员教程序员,这听起来很合理,但实际并不完全适合独立开发。太多人跟着网课照猫画虎,做了个和视频里一模一样的应用,然后不知道接下来如何。究其原因,是教程作者普遍缺乏跨学科思考的能力,只看到眼下用所有编程技巧所创作出的范例应用,却不曾想这些应用的实用价值。作为程序员的授课老师常精通代码,却通常不具备发现市场需求的能力。

App Store 应用程序 - Apple

2020 可以看作是 iOS 开发技术彻底换代的大年,Swift 与 SwiftUI 技术的出现为未来跨平台应用打下扎实基础。在这个时间点制作教程,也和技术换代有关。然而市面上的教程许多采用较老的 UIKit 作为图形框架,语言采用 Objective-C,上手有难度且极易劝退新人。所以本次教程中,我会使用注重探讨 SwiftUI 及响应式编程的应用构建方式。并由此展开,介绍独立开发的其它维度。

在课程准备中,我发现读者虽目标都是 iOS 独立开发,但背景差异较大。有考虑独立开发的设计师、有具备其它技术背景,考虑做自己应用的程序员、有计算机专业希望进入领域的学生、还有希望了解此领域的其它职业从业者等。虽然都是 iOS 独立开发新人,但不同背景读者对知识的上手速度,心理预期差异也非常大。

我会尽量对复杂概念由浅入深的解析,但你也需要意识到,因背景不同,每个人开发独立应用所需要付出的努力也不尽相同。我也会将市面上已有的最优秀教材纳入考量,将详细用法介绍给你,作为本教程的额外学习资源。

创作初衷

太多人把编程当作掌握各种语言、科技、算法,而忽略其实际应用,这非常可惜。学习独立开发其实适用于所有人,它会教给你一种极具创造力的思维方式。你可以用自己的创造,解决他人的实际问题。

2020 年初,我曾和父亲商量过想制作一套教程的事。那时候,父亲说你应该把这教程做出来,让尽可能多的人受益。如果你不做,没有多少有相似背景的人来做这件事。直到今年 6 月 18 日我的父亲因脑溢血忽然离世,我暮然想到父亲与我讨论过学习的种种。我想让更少的人走弯路,将这件有意义的事情做出来。这套教程包含我在 iOS 独立开发中经验与总结,借此把我所知分享给所有读者。

谨以纪念我的父亲王成革。

课程简介与大纲

现有的知识体系注重培养一个人专强的能力,却忽视了知识间跨领域的关联。而知识的关联性,就如同点穿成线,线穿成网,从而形成知识的储备。值得注意的是,许多精彩的创造恰恰来自于对多领域的了解,和跨领域的碰撞。

平面设计用于艺术展品 -  Maria Jeglinska's Background Exhibition by Michelle Williams

如同影视,运用了镜头、音乐、叙事等,来将某个观念传递出去;建筑,包涵了对美学、数学、空间理论等的理解,来创作出与社会环境相和谐的设施;而切准需求、定位独特、能更好服务受众的的应用程序,依靠的不仅是你对编程,算法和计算机理论有多熟练,而是将不同领域的东西拿来,像拼积木一样组装在一起。

创作独立应用恰好就是这样,你会用商学明确产品定位,用揣摩后的设计与用户交流,用程序代码展现逻辑思路,最终用你的应用来让更多领域受益。本期教程中,我会根据自己的开发经验,以企业学的发现问题来介绍创作内容、平面与交互设计来剖析界面设计、计算机科学的基本理论及编程知识来讲程序实现、商业模式来解读应用营收、广告学的基本知识来带你了解应用宣传。

本教程会以多篇独立主题的文章呈现,内容覆盖跨平台开发的各种维度。你可以根据自身需求挑选阅读,也可以顺序阅读。下图罗列了本教程的详细大纲。

《创作者的 iOS 独立开发指南》大纲 - 王禹效

授人以鱼,不如授人以渔,我会将知识与流程给你,让你对独立开发心中有数。编程语言具备持续变化的特性,我会长期维护本教程。更新内容将独立成文,放在教程末尾。

即将开始的第一章中,我们会从零开始,学习开发中将持续用到的重要概念。准备软件,了解独立开发的完整流程,介绍 SwiftUI 及 Swift,并学习 Git 以便保存项目进展。