开篇先提几个问题

1.作为 Android 开发者,Android 还没搞明白是咋回事,咋跑去学 iOS 开发了?
答:劳资喜欢,你管得着吗?

2.现在学习 iOS 开发是学 Swift 还是 OC?为啥?
答:Swift,发明 OC 的人多半是从火星来的,我讨厌一切带有头文件的语言。

3.现在大部分公司的项目还都是 OC 写的,只学 Swift 找不到工作怎么办?
答:找不到工作关我屁事?还有,我让你只学Swift了吗?

4.Swift 现在还在快速发展中,语法会不断变化,会不会不利于维护?
答:MD,哪来这么多问题,爱学学,不学拉倒。

这是一篇关于一个 Android 程序猿学习 iOS 开发的过程的记录和心得,主要是总结一下学习经验,希望能帮助到想学习 iOS 开发的小伙伴。

首先学习 iOS 开发必需品: 苹果电脑,互联网,和一个百折不挠的你 。注意!是百折不挠的你。

  • 硬件选择 MacBook 系列,不差钱的可选性能好价格高的,有经济压力的可以选择 Mac mini。不要去装什么黑苹果,虚拟机,相信我,那会浪费你很多时间的。
  • 开发环境 Xcode 7.*,就是 Mac 自带的 App store 里下载就可以,我自己使用的是 Xcode 7.3 beta3
  • Github 这是全球最大的同性交友社区,如果你爱上了这里,那么恭喜你,你将会受益匪浅。

其次,开发 iOS 应用当然要注册苹果开发者账号,具体事宜就不多说了,你可能会问,不需要买个 iPhone 吗?作为一个初学者,Xcode 的模拟器足够用了。

Ok,万事俱备,现在可以心无旁骛,一心 coding 了。

如何学习 Swift 语言

其实在 Swift 刚刚发布的时候,我就开始了解 Swift 了,苹果官方发布了 Swift 系列教程之后,国内就有一帮热心的小伙伴翻译成了中文,现在已经是 Swift2.1 版本了,知道你们都懒,链接拿去《The Swift Programming Language》中文版 ,不过英文水平好的同学建议直接阅读英文原版。我学习 Swift 语言的时候是看的 liuyubobobo 老师的 玩转 Swift。基于 Swift1.2 录制的,老师讲得很好,再加上自己看书,动手练习,慢慢的也就基本掌握了Swift 的语法。这里要强调一下,我认为学习一门计算机语言最好的方式就是敲代码,去运用它,先把基本语法熟悉了,然后开始实战项目,去提升自己的编码水平,加深对语言的理解。总之就是一个字,敲。

Xcode 如何使用

对于学习如何使用工具的问题,你去买本 iOS 开发教程基本都会有图文教学的,不过,这种事情,我还是以为视频更好,毕竟比图文多了声音,比图文更加生动形象,能够加深自己的印象。林永坚Jake 老师的 使用 Swift 开发 iOS8 App 实战 是一个很好的学习视频,都是一些小例子。学完之后不仅了解了iOS中一些基本控件的用法,对Xcode 的操作也能算是熟练了吧。

如何打造自己的第一款 iOS app

好了,这个时候你可能已经掌握了 Swift 的基本语法,和 Xcode 的基本用法,以及如何用 MainStoryBoard 来组织 App 界面了,你可能已经按捺不住内心的激动,迫切的想打造一款属于自己的 App 了,别着急,冷静一下,不要膨胀。

第一个选择,去 Github 上面找一些简单的小例子,fork 别人的项目。注意,是超级简单的那种,不要问我为什么,复杂的你看得懂吗?看看一个完整的项目是怎么写的。比如说一个简单的天气预报程序,大都是入门必备神器吧,自己也跟着别人的代码敲一遍。找一下独立开发 App 的感觉。

第二个选择,你比较有想象力,有了自己的一些想法,想自己做个 App ,建议你先看一看 Kevin 大神的给女朋友的 iOS 开发教程,还可以再看一看他的《producter》,相信这对你会有很大的帮助。看完你觉得自己梦想就要实现了,甚至可以改变世界了。你甚至已经在 Sketch 里面设计你的 App 了,一切都是那么顺利的进行着。

ok,这个时候你可能已经在 Xcode 里面新建项目了,相信我,噩梦即将来临,Xcode 可不会轻易宽容你的错误。当你真正开始写项目的时候,你会发现很多问题,有些很简单的问题你甚至要花上一天去解决。卧槽,这个库怎么无法导入项目?readme 里就是这么写的啊,这个地方怎么和书上写的不一样?我的操作没有错啊,为什么会崩溃…诸如此类的问题。这个时候,我们就需要 Google 这种神器了,什么?访问不了?自己找梯子去。相信我,你遇到的绝大部分的问题都能在这里找到答案。那找不到答案的呢?那就要看你自己有没有灵性了。

所有的过程中这个阶段是最难熬的,只要你能克服一切困难,不抛弃,不放弃,把自己的想法实现了,你就成功的成为了一名 iOS 开发者了。并且你有了一款属于自己的 App,可以拿去跟朋友们分(zhuang)享(bi)了。

以上就是我学习 iOS 开发的全部过程了,不过还是要偷偷的告诉你们,我在学习 Swift 之前偷偷的学过 OC,只是不喜欢他的语法风格就搁到一边了。虽然我不能写 OC 的代码,但是我基本看得懂别人写的 OC 代码,所以在使用一些用 OC 写的库的时候还是很顺手的。你看,多学一点总是好的。人一辈子那么长,不要总是拿来吃饭睡觉打游戏,偶尔看看电影也是可以的嘛。

最后就是小广告啦,毕竟我完全实践了上面的全部过程。没写出一个app怎么能说的过去。我常去的网站干货集中营开放了 api ,所以就写了个客户端。iOS 版用的是 Swift2.1 ,项目在 Github 上面开源,地址:

什么?你以为这样就是一个合格的 iOS 开发者了吗?
too young too naive。(挖个坑)