在 30 天内,从零开始学习 Swift

本文是翻译,版权归原作者所有



确切地说,我是在 30 天前开始学习 Swift 语言的。三天前,我的第一个对外公测版的应用被 Apple 审核通过了。这个对外公测的版本和最终产品比较起来,算不上什么,但是对我而言,这是一次极大的成就。

我没有计算机科学的学位,也没有做为开发人员所需要的专业经验,但是最近 5 年,我在软件开发组里的角色是产品经理,本着玩的心态,曾经做了一些 Ruby on Rails 方面的应用。我一直想和我忙碌的工作取得更加直接的联系,因此我决定开始写代码。

为什么选择 iOS 和 Swift?

  1. 庞大的移动;私人化的移动。我想做一款人们真正在用的软件,人们和他们的手机有着亲密感,我爱这种感觉。我们的手机太懂我们了——我们什么时候起床、睡觉,我们在哪里以及怎样去那里,我们的日程表,和朋友、家人的交谈等。这是我感兴趣的地方,我很早就是一名 Apple 用户了,当然从 iOS 开始比较好了。我短暂地体验了一把 Objective-C,它比较恐怖,而 Swift 一直都受人喜欢。

  2. 约束的好处。Apple 平台,可装入口袋的屏幕,在这种范围内去开发应用,就需要良好的约束。这些约束让我专注于要学习的东西(与之相对的是,web 开发中深不见底的兔子洞【注4】),并促使我围绕用户体验进行创新。

  3. Swift 是一门快速发展的语言。我喜欢在刚开始时参与,观察该语言的发展及演化,并成为小社区的一分子——这就是我为什么喜欢在创业公司工作的原因。创业公司允许用一种相对不太成熟的语言来攻关某个问题,加入更小的群组,尽量让人和事衔接起来。对于向语言和社区贡献一己之力的可能性,我感到兴奋。

初学者资源

7 月 1 号,我开始了这段旅程,当时的想法是做一个真正简单的应用。始终把这一点摆在最高位置,有助于激励我、并应用我学到的东西。

为了找到 Swift 相关的最好资源、教程和课程,我投入了很长时间在互联网上搜罗。有很多面向初学者的优秀资料,但是大部分都假设你从来没有写过一行代码,起点非常低。比如,这是一个变量,看下变量跳转。另一些资料是技术文章和参考材料(包括 Apple 的文档),貌似有个前提:你有丰富经验、或从 Objective-C 转到了 Swift。

下面是一些不错的资源,对于我这种水平的初学者,我觉得非常有用:

  1. Paul Hegarty 的斯坦福大学课程《Developing iOS8 Apps with Swift》,可免费在 iTunes U 【注1】里获取。我从这里开始,在一个多星期里,听了前五节课,又做了一份家庭作业。这份教程很快就变得有挑战了,因此在我入门之后,为了找到下面更实用的教程,我暂停了这个进度。不过,这是一份非常棒的课程,Paul Hegarty 教授熟悉他的资料,因此我打算回头继续学。如果你在练习上遇到了困难(你在 iTunes U 里找不到解决方案),那么这个网站解释了每个问题的设置和方法。

  2. Apple 推出的 Swift 编程语言教程。如果你之前有过一些编程经验,这本 Swift 语言的书,和 Apple 的 iOS SDK 文档相比,将非常易于阅读。它清晰、扼要、可快速浏览,当你碰到问题时,你能明白在哪里能够找到某些概念。Big Nerd Ranch 针对其训练营打造了一份《Swift Pre-reading Assignment》,包含了类似概念,但为初学者准备了更多实用的例子,供你练习。

  3. www.raywenderlich.com。这像是某个家伙的个人网站,但是不要被它的外表欺骗了。这个网站是我曾经遇到过的、最好的资源站。如果你从未创建过 iOS 应用,那就注册 newsletter,访问「史诗般的教程」吧——有那么一刻,感觉其极具史诗风格,但是,如果你愿意,用一天时间就能搞定。这个教程让我初次深入 iOS 开发的古怪世界,为我们揭开了很多容易让初学者望而生畏的秘密。我自己在开发自己的应用时,会参考这份教程,以唤醒我对 Xcode 里的某些特性或功能的记忆。在你学完这一份教程之后,该网站还有大量另外的免费教程,我精心挑选着学了一些概念,它们对于我做应用的想法有帮助。有如此多的优秀内容,以致于我早点儿想回去看看。

(大概的)时间线

在 7 月份(根据 RescueTime 统计),我在 Xcode 花了 25 小时,在 iOS 模拟器上花了 2 小时 52 分钟,在预览【注5】上花了 4 小时 23 分钟(阅读教程),在 Stack Overflow 上花了 51 分钟。我还在手机上阅读了很多资料。

Swift 社区

我还做了一些其它事情,让自己融入 Swift 社区:

说了这么多,都是我觉得有帮助的。如果你有其它的优秀资源想推荐,请在评论里,把你喜欢的东东、以及它为什么好的理由都写上。

我第一次参加的 meetup 是由 Dave Grandinetti 发表的「Learning Swift the Euler Way」演讲。Dave 开发了一个工具 EulerKit,我很激动地签出了,它包含了一些 helper 方法,能为解决 Project Euler 问题助一臂之力。我参加了前两次,此后就有些吃力。

最后,我的第一个应用——RoundTrip

我的应用,名字是 RoundTrip,面向那些乘坐大都会运输署(MTA)【注3】的公交、且喜欢优化他们地铁费用的纽约人。这是一款非常简单的工具应用。

[caption id=”attachment_2490” align=”alignnone” width=”294”]RoundTrip — MTA App RoundTrip — MTA 的应用,敬请期待![/caption]

  1. 算出向你的 MetroCard 充入多少钱,以致于不会剩下用不到的钱。如果你充值超过 5.5 美元,MTA 将给你 11% 的奖金,且充值的最小幅度只能是 5 美分。这两个条件交织在一起,让匆忙行走的人们做心算,情何以堪呀。

  2. 评估你每月的乘坐次数,和买一张 30 天的、无限制的 MetroCard 做对比,看能否省钱。你还能记录你的行程,查看你乘坐频率的统计。

如果你想成为公测人员、或想知道什么时候可以获取这个应用,请在这里注册、或关注 @helloroundtrip

感谢了解我的旅程,感谢 @cm@amrithap,帮我评审本文的初稿。

我正在寻找一份工作、或以实习生身份做 iOS 开发人员!如果你有机会,请联系 katie@katiesmillie.com 。

我的 twitter 是 @katiesmillie,网站是 katiesmillie.com


译文:在 30 天内,从零开始学习 Swift 》| 腊八粥