您的位置:首页 > 移动开发 > IOS开发

iOS 开发怎么入门?

2016-08-06 13:14 555 查看
作者:Fang

链接:https://www.zhihu.com/question/20264108/answer/30263999

来源:知乎

著作权归作者所有,转载请联系作者获得授权。

这次更新把大多数推荐书籍及网站的图贴了出来,又给大家介绍了很多iOS新的学习资源,我觉得这已经是知乎上最权威的iOS教学资源锦集了吧,令人震惊的是居然有人会反对这篇答案。其实这篇回答已经远远不仅是告诉大家如何入门了,希望不管大家处于什么样的水平当看完这篇回答以后都能有所收获。

------------- 2016.5.3 更新 -------------

------------- 原文 -------------

反对以上所有答案。

我反对理由如下:不管是斯坦福大学的CS193p公开课、苹果官方文档、绝大多数市场上庞杂的教学书籍都不是很适合入门同学看,想入门的话应该选用学习成本最低的方法,从最最基本开始讲起,并不是一味的讲解语法与知识,而是一边实践一边学习知识才是最好的学习方法。

并且我想告诉题主,你问的是iOS 开发怎么入门,但是你补充说明里说道的设计模式、内存管理等内容暂时不用你关心,等你真正iOS入门了以后在研究吧。也许我可以这么定义你的问题:

一个略懂编程的人并且完全没有接触过IOS开发的人想要学习IOS开发应如何学习?

(一)objective-c语言开发iOS应用

为什么不让初学者看斯坦福教程:我以为,斯坦福大学IOS公开课不适合入门的同学看,里面第一课讲解的就是MVC模式。对于一个刚入门想要学习的IOS的同学可能就完全懵了,心里想:“我特么第一课都听不懂我后面还学个P啊”。如果以前没接触过面向对象的语言学习的热情肯定大打折扣。

为什么不让初学者看苹果官方文档:苹果文档是学习iOS最权威的教程,许多许多iOS高手都是常年抱着它去看,但是我觉得它的内容虽然权威但example对初学者一点都不友好,相信你很快就会失去兴趣与耐心因为你光看了好多语法但是收不到的学习效果反馈。而且个人认为中文译文翻译不是令初学者很容易理解。初学阶段,教程的易理解程度我认为是非常重要的一点。(实在要看请看英文原版。)

我不否认以上两者是极好的学习材料,如果你入门了iOS开发并且有一定的英文功底,我是非常推荐你去看的,尤其官方文档,应该经常翻阅。但是我认为保持学习的热情是最重要的。本着这个理念,我推荐的学习方法难度非常低,希望你们能满意。

第一阶段: RayWenderlich网站中的 The iOS Apprentice教程

<img src="https://pic3.zhimg.com/96f96cef2cc0008fa89d9a7fa79d693a_b.jpg" data-rawwidth="646" data-rawheight="560" class="origin_image zh-lightbox-thumb" width="646" data-original="https://pic3.zhimg.com/96f96cef2cc0008fa89d9a7fa79d693a_r.jpg">这个教程截止目前已经不更新OC语言的版本了,但是如果你是抱着求职为目的的学习还是请看OC版本的(两年前的版本)。The
iOS Apprentice的教程针对完全没有编程经验的人设计。这个教程是外国人写的并且有免费试读版,感兴趣的人要看看。里面说的东西都非常非常基本,里面一个共讲解了4个不同类型app,强烈建议一步一步按照上面所写的步骤敲一遍代码。其中你会遇到很多复杂的语句和长的可怕的函数,你不用感到恐慌,照着敲,知道它干嘛用完全OK了,随着你编程时间以及经验的增加,你都会懂得。

这个教程截止目前已经不更新OC语言的版本了,但是如果你是抱着求职为目的的学习还是请看OC版本的(两年前的版本)。The
iOS Apprentice的教程针对完全没有编程经验的人设计。这个教程是外国人写的并且有免费试读版,感兴趣的人要看看。里面说的东西都非常非常基本,里面一个共讲解了4个不同类型app,强烈建议一步一步按照上面所写的步骤敲一遍代码。其中你会遇到很多复杂的语句和长的可怕的函数,你不用感到恐慌,照着敲,知道它干嘛用完全OK了,随着你编程时间以及经验的增加,你都会懂得。

附链接:http://www.raywenderlich.com/store/ios-apprentice

注:这个教程是英文原版,并且收费,只免费提供一个app的教程。如果看完了这个免费的教程觉得还挺想继续学的请参考
@王寒 老师的翻译教程(只有前3个app教程,第4个教程刚出,国内应该还没有人翻译,如果想看只能付费)。PS:(现在开发iOS应用基本都是用Objective-C,至于刚出来的Swift现阶段暂时不推荐学习,如果想了解王寒老师也做了swift版本的The iOS Apprentice教程翻译,自己去找)

附上王寒老师教程下载地址:https://github.com/eseedo/kidscoding

第二阶段:培训班的网络课程及入门书籍

经过第一个阶段你应该已经大致掌握IOS开发流程,能编写一个非常简单的应用了。这时候相信你的热情应该会很高涨,但接下来的学习可能会很枯燥,做好准备。网络课程的话推荐李明杰的课程,不推荐其他的。(他目前在广州创业建立自己的培训品牌,没有自制力看网络课程的请去找他。杰哥开源了一些非常优秀的框架如:MJExtension )之所以不推荐其他培训班是因为优秀讲师实在是少的可怜,至少我目前接触过的人来说,许多人都是刚从培训班出来就拿着不菲的薪水去当讲师,所以还不如自己学。

建议首先要恶补基础知识。经过第一个阶段你可能觉得你懂不少了,但是只是表面,尤其是没学过编程的应该好好学习一下视频前面的课程,主要看看语法。等你看恶心了看烦了就去看视频里UI部分,这里相对于来说比较轻松,一定要把视频里写的语句打一遍,相信这样你理解会更深刻。里面说的不清楚的地方上网可以百度,可以查书(如果你有书的话)。

Q:视频教程是用来做什么的?

A:光有实践没有知识是写不好程序的,第一阶段基本都是实践,第二部分则是用来查缺补漏。 之所以推荐网络课程是因为讲解的比较系统,各种入门知识都会涉及。因为iOS所涉及内容庞 大单看几本书还是涉及不全的。

Q:上不上培训班?

A:个人意见是不推荐去,自学足够了。现在学习iOS的环境比前几年好太多了,光凭借网上的资料是 完全可以的学得很好的,如果你连这点学习能力还没有我也不相信你将来能成为一个很优秀的工程师。而且你会发现在社会上一些互联网公司是拒绝接收培训班出来的人,如果你简历造假被揭穿以后会更要命,你当真不知道面试官看不出你水平到底是学了4个月的还是2年的么?

推荐入门书籍:

tips:以下所有书籍有英文版看英文版,有最新版看最新版。不光是iOS,你只要进了编程圈你的英文不好会很大程度上限制你的发展。而且市面上能买到的中文教程真的没几本能看的,浑水摸鱼的厉害。

1、《iOS Programming》

<img src="https://pic2.zhimg.com/a42f20a39f8296caf7d52b2d7daf58fd_b.png" data-rawwidth="244" data-rawheight="347" class="content_image" width="244">


2、《iOS 8应用开发入门经典》

我没找到最新,如果有最新的看最新的

<img src="https://pic2.zhimg.com/a792793ab126516ad3d7d68d55dd815d_b.png" data-rawwidth="283" data-rawheight="350" class="content_image" width="283">


3、《iOS开发指南-0基础到AppStore上架》

<img src="https://pic3.zhimg.com/f793daa211a20526dcddfe901be2bb9a_b.png" data-rawwidth="268" data-rawheight="351" class="content_image" width="268">这本书非常有意思,它不光告诉你知识点还会告诉你想问题的思路,尤其是后面的敏捷开发思想,对于初学者来讲还是能学到很多的,而且这本书还是双语的,建议大家看一下。

这本书非常有意思,它不光告诉你知识点还会告诉你想问题的思路,尤其是后面的敏捷开发思想,对于初学者来讲还是能学到很多的,而且这本书还是双语的,建议大家看一下。

4、《iOS编程实战》

<img src="https://pic1.zhimg.com/4e3a39a9de01371a3fa53a22871dc29c_b.png" data-rawwidth="284" data-rawheight="350" class="content_image" width="284">这本书好像也没新的了,旧的可以看看,绝大部分都差不多。

这本书好像也没新的了,旧的可以看看,绝大部分都差不多。

其实除了这基本书还有很多质量很好的书(比如封面都是水果类的哪些书)..

这里我想多说一句,买iOS开发的辅导书千万别买过时太久的,我看以上有答案还推荐iOS4系列丛书呢...拜托现在都什么年代了,现在iOS8教程都要出来了,你iOS6的教程都过时好久了更别提iOS4了...对于新出的swift语言好多人难以选择不知道该学OC好还是Swift好。我个人建议现在学OC,一门新语言的诞生需要经过时间的考验与洗礼。等你学好了OC以后再看也不迟。

第三阶段及以后

到这个阶段你应该拥有了充分的自学能力,已经达到了入门水平。

这时候以下网址将成为你的家常便饭:

Github,StackOverFlow

如果你编程遇到困难,在StackOverFlow上面应该都能找到合适的解答。(前提是你英文不要太差)。Github上好多开源代码足够丰富你的眼界。如果你想成为一个iOS开发者的话这上面两个网站是你经常以及必须会用到的。

Github上怎么搜牛人们的项目:

<img src="https://pic2.zhimg.com/5a6b3c8a9440c22c284a118337f11285_b.jpg" data-rawwidth="425" data-rawheight="360" class="origin_image zh-lightbox-thumb" width="425" data-original="https://pic2.zhimg.com/5a6b3c8a9440c22c284a118337f11285_r.jpg">


到此为止你的入门已经结束了,相信你已经知道怎么开发一个App出来了,但是我还想给大家介绍一些东西,如果你以后想在iOS开发这条道路上越走越远的话。

---------------------------- 提升篇 ---------------------------

因为iOS开发知识更新速度非常之快,每年到6-7月份WWDC大会开幕以后都会有很多新东西要学,这时候最简单的方法有两个:

(1) WWDC session系列视频。 https://developer.apple.com/videos/
<img src="https://pic1.zhimg.com/7615682ee5c8a6986a9b22dd3b5131f0_b.png" data-rawwidth="1012" data-rawheight="406" class="origin_image zh-lightbox-thumb" width="1012" data-original="https://pic1.zhimg.com/7615682ee5c8a6986a9b22dd3b5131f0_r.png">


(2) iOS by Tutorials

<img src="https://pic1.zhimg.com/d358d4c08a236ed117508a361dbb144c_b.png" data-rawwidth="312" data-rawheight="398" class="content_image" width="312">所有新特性囊括其中。

所有新特性囊括其中。

3、其他适配系列教程
ChenYilong的github上每次有新特性介绍的时候都会有详细的适配系列文章,不知道今年还写不写。
GitHub - ChenYilong/iOS9AdaptationTips: iOS9适配系列教程(iOS9开发学习交流群:541317935)

想学一点UI的同学可以看:

1、design+code 网址:https://designcode.io/

<img src="https://pic1.zhimg.com/cd89885723e9d14b201c5eb52329f50c_b.png" data-rawwidth="365" data-rawheight="334" class="content_image" width="365">


2、《DESIGN TEARDOWNS》<img src="https://pic2.zhimg.com/302e6afe8ecad6b43b09afd5fffac121_b.png" data-rawwidth="302" data-rawheight="349" class="content_image" width="302">


想学一点动效/交互的同学可以看:

1、下载QuartzComposer及相关插件如Origami,教程:
Quartz Composer学习

<img src="https://pic2.zhimg.com/4f2274265fca2a6b383b6d5a0650db2d_b.png" data-rawwidth="699" data-rawheight="460" class="origin_image zh-lightbox-thumb" width="699" data-original="https://pic2.zhimg.com/4f2274265fca2a6b383b6d5a0650db2d_r.png">


其他推荐网站:

1、NSHipster

<img src="https://pic3.zhimg.com/7c90f305dacc5bb1378aeb0141690542_b.png" data-rawwidth="967" data-rawheight="249" class="origin_image zh-lightbox-thumb" width="967" data-original="https://pic3.zhimg.com/7c90f305dacc5bb1378aeb0141690542_r.png">


进价书单:

0、《REVCON》

又是一本Ray的书。这本书刚刚推出,内容非常好里面有800多页干货,都是以tips形式进行归纳。

<img src="https://pic4.zhimg.com/ea921bbee3d8c3c8153a00e4977bd167_b.png" data-rawwidth="357" data-rawheight="237" class="content_image" width="357">


1、《Effective Objective-C 2.0》(必看)

<img src="https://pic2.zhimg.com/da747649a46d6ebd70ea299124df881d_b.png" data-rawwidth="351" data-rawheight="344" class="content_image" width="351">

<img
src="https://pic4.zhimg.com/aeabf1cbf14de06d31b3253095d843c7_b.png" data-rawwidth="284" data-rawheight="345" class="content_image" width="284">下面是中文版,翻译不好,点名批评。

下面是中文版,翻译不好,点名批评。

2、《Objective-C高级编程 iOS与OS X多线程和内存管理》(必看)

<img src="https://pic2.zhimg.com/ae1ea44377e5d784a890286bf1697539_b.png" data-rawwidth="284" data-rawheight="329" class="content_image" width="284">日本人写的一本书,推荐看。

日本人写的一本书,推荐看。

3、《iOS开发进阶》

<img src="https://pic4.zhimg.com/66d588466e06f832db2aa1a7c8d7acbf_b.png" data-rawwidth="301" data-rawheight="351" class="content_image" width="301">很多人吐槽这本书没干货,其实我觉得你看完了以后有收获就好了啊,这本书巧哥会告诉你一些编程工具一些技巧以及一些tips。

很多人吐槽这本书没干货,其实我觉得你看完了以后有收获就好了啊,这本书巧哥会告诉你一些编程工具一些技巧以及一些tips。

4、《iOS应用逆向工程》

<img src="https://pic4.zhimg.com/9d62fdafa5b1497d931c5f74a22716bf_b.png" data-rawwidth="275" data-rawheight="353" class="content_image" width="275">


5、《iOS应用安全攻防实战》

<img src="https://pic3.zhimg.com/13d1e380d565d756548ead5fc438778a_b.png" data-rawwidth="281" data-rawheight="348" class="content_image" width="281"> iOS安全方面推荐以上两本书


iOS安全方面推荐以上两本书

6、《iOS》

<img src="https://pic1.zhimg.com/3c4be5a66dee0d8d4fb4cdc80ae2cec4_b.png" data-rawwidth="260" data-rawheight="354" class="content_image" width="260">


推荐博客及网站:

1、Github:https://github.com/

2、StackOverFlow:http://stackoverflow.com/

3、Code4App:http://code4app.com/

4、cocoachina:http://www.cocoachina.com/

5、objc中国:http://objcio.cn/

进阶博客(排名不分先后..)

1、王巍的博客(我们都叫它喵神,他很萌哒)

链接:http://onevcat.com/

理由:他的swift的新书讲解的非常好,但不适合入门,进阶的话这是很适合的一本书。其他关于OC的内容可以翻看喵神的博客。

2、唐巧哥的技术博客

链接:
iOS开发如何提高

理由:据传说是iOS圈的刘德华。巧哥05年1月会出一本进阶的书,可以关注以下。

3、叶孤城的技术博客 :

链接:叶孤城带你读源码之RESideMenu

理由:叶孤城童鞋的风格就是讲解细腻,通俗易懂。

4、破船之家:

链接:beyondvincent.com 的页面

理由:破船的博客内容很全面,一些开发笔记,技巧他都会教给你。

5、Xcode Dev

链接:
Xcode Dev

理由:也是一位大神的原创博客,内容很值得学习。

6、txx's 的博客(我们都叫它虾神,他也超萌哒)

链接:
txx's blog

理由: 90后非常优秀的iOS开发者,看看他的大学时期的经历才发现我们过的是多么懈怠,大神之所以为大神也是有原因的。

7、Kevin的博客

链接:
Kevin Blog

理由:周楷雯是一个非常厉害的90后iOS开发者,他前些年写的项目在Github上拥有2500+star (PNchat?忘了)非常恐怖。

8、念茜姐姐的blog

链接: 新博客:http://nianxi.net
旧博客:
念茜的博客

理由: iOS圈里的女神级人物,她写的iOS安全类的文章非常值得一看。

9、孙源的blog

链接:
sunnyxx的技术博客

理由:90后iOS开发者,技术同样非常强,目前似乎在百度知道任职。

其他的博客我就不列举了,因为他们自己都有一个圈子大家自己去找吧很容易一找找到一堆,前提是你要有心。

(二)swift语言开发iOS应用

这里推荐两个入门学习比较好的方法

1、http://appcoda.com的网站(难度指数:※)

非常浅显易懂的入门级swift教程:http://www.appcoda.com/tutorials/

这个网站可以看两方面:

(1)、随时更新的swift tips (有一定水平在看)

(2)、新手主要看以下这本书<img src="https://pic1.zhimg.com/526ee7ef7fa09a12b5a31d7c2b179120_b.jpg" data-rawwidth="390" data-rawheight="434" class="content_image" width="390">


2、《Swift Tutorials》 依然是raywenderlich出品,目前只有英文版。

<img src="https://pic3.zhimg.com/5cda00a594c469c1c2c8105933ea49ae_b.png" data-rawwidth="561" data-rawheight="421" class="origin_image zh-lightbox-thumb" width="561" data-original="https://pic3.zhimg.com/5cda00a594c469c1c2c8105933ea49ae_r.png">


3、官方swift译文教程
《The Swift Programming Language》中文版

4、上文提到的王巍的博客(喵神)《Swifter - 100 个 Swift 必备 tips》以及http://objc.io相关书籍《函数式Swift》

这两本书是swift里面非常难得的学习资源,好好研读可以让你少走很多弯路,必看。

<img src="https://pic2.zhimg.com/33668f85b5a6b449ec64e5a669b38cb9_b.png" data-rawwidth="622" data-rawheight="448" class="origin_image zh-lightbox-thumb" width="622" data-original="https://pic2.zhimg.com/33668f85b5a6b449ec64e5a669b38cb9_r.png">

ObjC
中国 - 书籍

以上是链接,给喵神打广告我也是心甘情愿的..因为想套路他妹妹已经很久了:-D

等我想到再补充。以上。

编辑于 2016-05-03226
条评论感谢

分享
 

收藏没有帮助举报作者保留权利
收起

198赞同
反对,不会显示你的姓名



游薪渝万物静观皆自得http://azureyu.com/
198 人赞同


--果然收藏是赞的三倍--之前一直关注着这个问题,也从中获益很多。现在,投入了约200个小时,我上架了自己的第一个简单的App,终于可以来回答了。---目录:确认个人目标分析个人情况设计自己的路线记录学习的过程2.
开始吧语言了解你的工具——Xcode基于项…显示全部
--果然收藏是赞的三倍--

之前一直关注着这个问题,也从中获益很多。现在,投入了约200个小时,我上架了自己的第一个简单的App,终于可以来回答了。

---

目录:
确认个人目标
分析个人情况
设计自己的路线
记录学习的过程

2. 开始吧
语言
了解你的工具——Xcode
基于项目的学习
从简单App开始, 分析其生命周期
学习框架
理解概念
动手,不断犯错,不断改进

3. 界面

4. 资源

课程
网站
文章

---
正文

1. 确认个人目标

分析个人情况

在听取建议之前,想一想自己的情况会更有效。比如,你有面向对象的编程经验吗?如果有,那么语言学习就不需花太多时间。英语如何?基本的英文文档能读懂吗?适合你自己的学习方式是什么?

对我而言,软件工程在读,基础课程都学过,入门较快。学校更多是在教理论,我更偏向在实践中学习(learning by doing)。

设计自己的路线

了解自己的基本情况之后,就可以设计自己的学习路线了。一开始不会有完整的路线,需要根据自己的情况不断的调整。不妨读一读其他人入门的文章,吸取经验。

记录学习的过程

<img src="https://pic1.zhimg.com/33b43f82ae28ae01f5f40abb0ceef940_b.jpg" data-rawwidth="1242" data-rawheight="790" class="origin_image zh-lightbox-thumb" width="1242" data-original="https://pic1.zhimg.com/33b43f82ae28ae01f5f40abb0ceef940_r.jpg">


你怎么知道自己学得如何?传统教育,会有传统考试作为检验。我的做法是,记录过程,设置检验点,寻找概念的共通性,举一反三,问问题以及写作总结。

2. 开始吧

一开始熟悉编程语言,然后了解开发工具Xcode,理解大概的项目框架,App生命周期,界面如何和代码交互。理解设计模式,例如MVC。之后,就可以开始与Cocoa框架交互。最后,根据你想要写的App类型,再针对性的学习。

语言

<img src="https://pic3.zhimg.com/2cb1cc3e5f4cd8182810db2dae1a51de_b.png" data-rawwidth="1056" data-rawheight="541" class="origin_image zh-lightbox-thumb" width="1056" data-original="https://pic3.zhimg.com/2cb1cc3e5f4cd8182810db2dae1a51de_r.png">


如果把写App比作是建房子,那么语言就是基本的砖块。那么,应该学习Swift还是Objective-C呢?我个人的建议是先Swift,之后再熟悉OC。相比较OC,Swift更易上手,社区也日渐活跃。如果你有编程经验,这一步应该不会花去太多的时间,get your hands dirty才是关键。

了解你的工具——Xcode

工欲善其事必先利其器,快速的熟悉Xcode界面,各面板功能,常用的快捷键等等,会提高不少效率。

<img src="https://pic2.zhimg.com/abe1ba6a6049e6aeac4ef76df83a0a8d_b.png" data-rawwidth="1101" data-rawheight="834" class="origin_image zh-lightbox-thumb" width="1101" data-original="https://pic2.zhimg.com/abe1ba6a6049e6aeac4ef76df83a0a8d_r.png">


基于项目的学习

除了斯坦福大学的iOS开发入门之外,我个人很喜欢的一套教程是[Teaching App Development with Swift](Swift Education)。它主要的观念就是基于项目的学习,每课时都有不同的项目,一个项目多个课时,清晰的步骤一步步搭建起完整功能。由实践引出知识点,最后给出延生思考和资料。

从简单App开始, 分析其[生命周期](https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html#//apple_ref/doc/uid/TP40007072-CH2-SW1)

学习框架

框架是什么?

很多系统的功能,都是不需要你实现的。想象你自己在拼一辆四驱车,马达啊,轮子啊,车身啊,一开始,这些你都不需要自己造。你需要知道的只是,每一部分的功能是什么,怎么把他们拼装在一起,哪一部分拼在哪里。同样的,框架就像是各种各样的零件,比如UIKit,可以改造车身外观,多媒体需要用AV Foundation。

总之,要弄清两个问题:

1. 什么时候用什么?(When to use what?)

2. 怎么用?(How?)


理解概念

一边练习一边思考思考,各概念之间的联系与区别,多问几个为什么。比如:delegate、protocol、tagart-action、closure 。

例如,其中的Protocol,我是读了[iOS 8 Programming Fundation with Swift (Matt Neuburg)](iOS 9 Programming
Fundamentals with Swift - O'Reilly Media)中的介绍,才彻底理解。

动手,不断犯错,不断改进

<img src="https://pic3.zhimg.com/284f5946d914e9e53b2c598477e0f0b6_b.png" data-rawwidth="1345" data-rawheight="828" class="origin_image zh-lightbox-thumb" width="1345" data-original="https://pic3.zhimg.com/284f5946d914e9e53b2c598477e0f0b6_r.png">


做完整的项目,而不只是一个功能点的练习。完整的项目,需要综合的考虑。界面的设计,类的设计,对象之间的交互等等。 一开始不知道如何实现时,不妨先看看其他人的实现。你可以查找书籍,在Github上阅读相关功能的源码,上StackOverFlow提问等等。

3. 界面

Apple很重视用户体验,学习基本的界面设计也是很必要的。之前完整的看了[DesignCode](https://designcode.io)的教程,了解了基本的设计以及Sketch的使用。iOS Human Interface Guide也是开发之前的必读书。

界面布局的时候,不得不提一句AutoLayout,一开始使用很可能会出现各种问题,不过领路要领之后,你会发现它的强大之处。

---

<img src="https://pic3.zhimg.com/56e15bb770bd5c0ca6b2ae4617fe9e5e_b.png" data-rawwidth="1081" data-rawheight="696" class="origin_image zh-lightbox-thumb" width="1081" data-original="https://pic3.zhimg.com/56e15bb770bd5c0ca6b2ae4617fe9e5e_r.png">


资源:

网站:
http://www.developer.apple.com/ 官方资料。文档阅读,一开始可能不知道如何下手。有一篇[博文](苹果Xcode帮助文档阅读指南)写得十分详细。当然,[iOS
8 Programming Fundation with Swift](Matt Neuburg)书中第八章也是有介绍的。
http://github.com 程序员界Facebook。
GitHub - ipader/SwiftGuide: 这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排。http://dev.swiftguide.cn

GitHub - matteocrippa/awesome-swift: A collaborative list of awesome swift resources. Feel free to contribute!

Stack Overflow 技术问题版知乎http://www.raywenderlich.com/ 声名在外的系列教程。NSHipster 你不知道Mattt Thompson?快去看看吧。https://www.objc.io/ 基础到进阶推荐。https://designcode.io/ 了解设计流程,基本界面交互、动画等。当时完整的跟着做了一遍,收获良多。
<img src="https://pic2.zhimg.com/06abe6b20d8e460cd6c17d0a73b2d1d5_b.jpg" data-rawwidth="500" data-rawheight="656" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/06abe6b20d8e460cd6c17d0a73b2d1d5_r.jpg">


书:
The swift programming language

[iOS 8 Programming Fundation with Swift (Matt Neuburg)](iOS 9 Programming Fundamentals
with Swift - O'Reilly Media)

[Programming iOS 9 (Matt Neuburg)](Programming iOS 9 - O'Reilly Media) 个人强烈推荐的两本书,一直不断的在看,讲解细致,覆盖全面。
Learning iOS UI Development (Yari D'areglia)
Yair D'areglia的博客也值得一读:Think & Build

Post:
[Things I wish I had known before starting iOS development](Things
I wish I had known before starting iOS development — Part 1 — iOS App Development)

[iOS开发如何入门?——知乎](iOS 开发怎么入门? - Franz Fang 的回答)

[自学iOS开发的经验](Limboy's HQ)

我只列出了常用的资源,资料不在于多,而在于合理的利用。一个想法的开始很简单,按下收藏也很简单。不简单的是,开始去做,开始去实现。相信,如果你也愿意付出200小时,你也能完整的将自己的想法实现为应用。

希望对你有帮助: ~)

----
PS:我的第一个App地址:https://appsto.re/cn/jnCgbb.i

当然,这不是我写的第一个App,你可以在[我的github](Yogayu (Xinyu You) · GitHub)上看更多的项目,比如开源的[EmotionNote](GitHub
- Yogayu/EmotionNote: This is a notebook that can feel your emotion!)。

最近App更新了2.0版本~

如果你想进一步了解开发过程,可以阅读我写的《独立开发纪录》http://www.jianshu.com/p/35e9b1f821c4

<img src="https://pic2.zhimg.com/1ac4a19c333e0ac81eda71c77f59e9fd_b.png" data-rawwidth="1440" data-rawheight="900" class="origin_image zh-lightbox-thumb" width="1440" data-original="https://pic2.zhimg.com/1ac4a19c333e0ac81eda71c77f59e9fd_r.png">


编辑于 2016-06-2620
条评论感谢

分享
 

收藏没有帮助举报禁止转载
收起

646赞同
反对,不会显示你的姓名



jakehao曾经的注册会计师,如今鹅厂iOS工程师
646 人赞同

------- 2015年7月22日更新 ------刚开始做程序员的时候,曾经把自己自学iOS开发的一点经验写在这里分享。不知不觉,至今也获得了400多赞。后来陆陆续续有人私信我咨询iOS学习的问题,最近有一位大四的学生给我发私信,我觉得他遇到的问题比较典型,下面我…显示全部
------- 2015年7月22日更新 ------

刚开始做程序员的时候,曾经把自己自学iOS开发的一点经验写在这里分享。不知不觉,至今也获得了400多赞。后来陆陆续续有人私信我咨询iOS学习的问题,最近有一位大四的学生给我发私信,我觉得他遇到的问题比较典型,下面我把他的问题和我的回复贴出来,供参考。

我的计划大概是这样的:先看计算机导论课程,然后开始学习C语言编程,后续大概通读一遍SICP、CASPP、算法导论,然后学C++ primer。学到这里就开始学习object-c/swift,然后自己做一个app,带着这个去找一份工作。 我的计划会不会太偏重原理了呢? 我总是担心基础不好的话后续职业发展会受印象,却又怕一年时间完成不了这么多,到时候连工作都找不到。 请问我应该怎样平衡呢? 或者我可以先学一部分基础,然后先尝试实践完成app开发,以后再补回来? 您觉得在iOS开发过程中哪些基础是比较重要的呢?

你好,我将我这两年的一点经验尽量说明白供你参考。

先说我的看法,不客气地说,你的学习计划过于庞大,要学完这些知识,不要说一年,三年可能都不够。所以非常不建议看完你罗列的所有知识才开始进行app开发。

就我的经验来说,我是用晚上和周末来学习的。我用业余时间看算法导论,半年只学了1/5,后来还是放弃了。去年花了足足半年学习Code Complete。今年开始学习CSAPP,花了半年时间学了差不多一半。

基础知识对于职业生涯确实非常重要,所以我会在今后的职业生涯一直保持学习。但是如果不是已经在从事iOS开发工作,我肯定不会看这些书。

所以对于你来说,如果想从事这份职业,要先学习写一个iOS app最必需的技能,通过解决问题驱动自己学习!学习这些技能,对于一个零基础的人,我想fulltime学习3、4个月应该足够了。这些知识包括:Objective-C或swift的基本语言知识、Cocoa框架的基本知识、xcode的基本用法。在这个阶段,找编程的感觉,跟网上课程编一些课后作业demo app是一个好选择。

在这个阶段,你甚至可以不用学习C、算法、计算机系统等。

但是可以花时间想想自己用4个月时间,从产品角度想想,可以做出一个什么样的app?在纸上画一下app产品流程图,争取弄一个出来。

遇到问题怎么办?自己查资料,问人,解决。

然后你会发觉需要解决的问题越来越多,需要了解的知识越来越多,你之前罗列的资料自然就有动力每天学习下去了。

非常欣赏你学习基础知识的渴望,但是要注意办法,不要尝试一口吃下整个大象。

--------原答案-------------

自己去年12月的时候说要更新一个详细的答案,结果就被我自己烂尾忘记了,最初写这份答案的时候自己还是在摸索阶段,推荐了下面这些材料:
斯坦福大学的CS193p公开课:最新版是2013年winter。课程不仅包括iOS入门基础知识,而且还会布置由该教授亲自设计、涵盖整个课程的作业。
苹果官方文档:每一份GUIDE都是一本迷你的教材,写得很精致,而且每一份guide都会延伸到其他知识。可以从这篇开始:马上着手开发 iOS 应用程序。
Ray Wenderlich:很多step by step的教程,适合掌握一定知识之后跟着教程做着玩。

上面这三分资料,确实就是我刚开始学习iOS开发的时候用得最多的资料,在着手开始iOS Code之前,需要学习相关Objective-C的知识。

对我帮助最大的可以说是CS193p这个课程(免费的哦),我跟着这个课程一行一行代码完成布置的作业,课程完成之后我就能够自己写一个简单的app出来,并且我也知道该在哪里问问题、怎样找答案(很重要)。

当我了解整个app的制作流程之后,我就给自己定计划,1个月之内必须开发出一个app,从原型设计、界面设计、到CODE。

最终我做了几个实验性的app,虽然没有在app store上架,但是能够在自己的ipad、iphone上运行展示,我就拿着这几个app去面试,很幸运地找到现在的工作。

工作之后一直在使用的材料:
苹果官方文档,必须的参考书;
StackOverFlow,一有问题就问他;
Github,搜索关键词iOS或者objective-c,会发现很多高手已经把大部分基础性功能实现并且贡献出来了;

另外teamtreehouse提供收费的在线教程,应该比较容易入手。

所以我认为,其实用什么材料虽然也很重要,但是市面上优质的材料呢,不外乎那么几份,最重要的是自己有一个idea要落实下来把它完成、写成一个app,这个过程当中自己自然就会去找答案、找材料、解决答案啦。

希望能帮助到跟我一样初学入门的朋友。

编辑于 2015-07-2265
条评论感谢

分享
 

收藏没有帮助举报作者保留权利
收起

751赞同
反对,不会显示你的姓名


少刷知乎多读书
751 人赞同

在答题之前,我要先感谢知乎上关于iOS开发入门的所有提问和答案。没有这些提问,我不会萌发自学iOS开发的念头;没有这些优秀的答案和答主们的励志经历,我也坚持不到最后。在这里,尤其要感谢 @郝健宗 @苏菲 @王杰 @Judy Zhu @张中宝 @Wang Hailong 这几位…显示全部
在答题之前,我要先感谢知乎上关于iOS开发入门的所有提问和答案。没有这些提问,我不会萌发自学iOS开发的念头;没有这些优秀的答案和答主们的励志经历,我也坚持不到最后。在这里,尤其要感谢 @郝健宗 @苏菲 @王杰 @Judy Zhu @张中宝 @Wang Hailong 这几位前辈的答案,对我帮助很大。

最近我找到了一份iOS开发的正式工作,所以想把自己学习iOS开发过程中的经验和心得写出来,希望能够帮助那些努力但迷茫的初学者。

首先介绍一下自己的背景,我大学学的是机械专业,与计算机有关的课程只有一门C语言,在接触iOS开发之前,我已经在一家机械制造行业的公司工作一年多,做的工作也与计算机毫无关系,所以我属于零基础转行。

2014年10月,出于对机械行业的种种失望和对互联网行业的浓厚兴趣,我萌发了转行的念头,于是开始利用下班时间自学计算机知识(Java、Python、数据结构与算法)。学了大概两个月,基本的东西有了大致的了解,但是感觉要熟练掌握还是任重道远。由于时间安排上的原因,我就将重心转移到iOS开发上面。

2015年1月,我开始开发我的第一个iOS应用,这款APP从第一行代码到苹果App Store上架用了大概两个月的时间,但总的时间跨度有接近4个月(春节期间停滞了一个多月,等待苹果审核10天)。APP上架后,我就开始投简历,并拿着我的APP去面试,很幸运地拿到了几个还不错的Offer,然后就挑了一个去上班了。

下面就是我自学iOS开发的一些经验和心得。

一、 准备工作

1. Mac、iOS设备、开发者账号

这些是做iOS开发必须要有的,而且是一大笔钱,但不要怕花钱,因为这些都是值得的。如果能够学有所成,一两个月的工资基本就回本了。就当是自己交的一笔“培训费”吧。

2. 心态上的准备

如果你和我一样是零基础转行iOS,那么一定要有破釜沉舟的勇气和决心,并做好打持久战的心理准备。如果畏手畏脚、瞻前顾后,我劝你还是想好了再来,免得浪费时间和金钱。我当初收入很低,是拿了3个月的工资买的Macbook,还天天担心丢了或者弄坏;后来学习到小有所成时毅然选择了裸辞,孤身一人来到陌生的上海,经过2个月的待业状态才找到工作。这一路走来都承受着巨大的精神压力和物质压力。

二、 学习路线

1. 对编程的基本认识

如果你是完全的零基础,我建议先要对编程有个基本的认识。建议从C语言入手,因为C语言比较简洁易上手,并且和Objective-C很相似。

视频推荐网易云课堂的“计算机专业体系”课程,很适合入门。

书籍的话,推荐《CPrimer Plus》。

2. Objective-C语言学习

当对C语言有个大致的了解后,就可以开始学习Objective-C了。

推荐书籍:

《Objective-C基础教程》

《Objective-C程序设计》

注:这两本内容都差不多,但《Objective-C基础教程》写的更好、更经典,建议以这本为重点精读。但是这本写的比较笼统,难度稍高,所以如果遇到不懂的地方就看看《Objective-C程序设计》,这一本写的简单、详细一些。

需要掌握并熟练运用的地方:

1) 面向对象编程的基础知识。包括:面向对象与面向过程的区别、为什么要面向对象编程,类、对象、继承、方法、属性、接口等概念的理解与使用。

2) Foundation框架。主要是NSString类、NSArray类、NSDictionary类、NSNumber类、NSRange类的熟练运用。

3) 内存管理MRC、ARC的原理,委托delegate、协议protocol、类别category、块block的理解与使用。

3. iOS SDK/Cocoa Touch学习

有了Objective-C基础,就可以开始边看斯坦福公开课边做APP了(个人觉得没有OC基础直接看这个会很吃力)。视频如下:

斯坦福大学公开课CS193P《iOS7应用开发》(Objective-C语言)

斯坦福大学公开课CS193P《iOS8开发 》(Swift语言)

推荐书籍:《精通iOS开发》

第一个iOS应用:

苹果官方有个做iOS应用的教程——《马上着手开发iOS应用程序(StartDeveloping iOS Apps Today)》。强烈建议以这个Demo作为你的第一个iOS应用,因为这个教程能让你对一个iOS应用的搭建有个非常全面、细致的认识。完成了这个Demo后,就可以结合斯坦福公开课学到的东西创建属于你自己的APP了。

需要掌握的地方:

1) MVC设计模式。只有理解了iOS的MVC架构,才能把一个应用解剖成一个个单独的部分,这样你在开始做一个项目的时候才不会茫无头绪。

2)UIKit的各种控件。特别是UITableView和UICollectionView一定要掌握,因为大部分的iOS应用都是由这两种视图搭建,吃透了它们那可玩的花样就很多了,其乐无穷。

3) 导航控制器UINavigationController和选项卡控制器UITabBarController。同上,这两个控制器也是绝大多数iOS应用UI框架的根基,也是多个MVC协同工作的最典型例子。

4) 场景切换的实现——Segue。熟练使用Segue很重要,因为一个应用一般都是各个界面轮流出现的,两个界面之间怎样实现跳转、怎样将一个界面的数据传递到下个界面,这都是实际开发中会遇到的问题。

5) Storyboard和AutoLayout的使用。这两者是一个应用的UI界面设计不可或缺的部分。

6) 其它iOS高级编程。包括:数据存取CoreData/SQLite、多线程GCD、绘图CoreGraphics、动画CoreAnimation、网络编程、手势Gesture、多媒体AVFoundation等等,这些内容都可以实际用到时再深入学习。

7) 第三方库的使用。参考:GitHub 上都有哪些值得关注学习的 iOS 开源项目? - 编程

4. 坚持写代码、查文档、读技术博客

学习编程,一定要勤于动手,看再多的书、再多的视频,如果不动手敲代码都是白搭。哪怕书上和视频上的代码你一行都看不懂,也要亲手把代码敲一遍、把Demo亲自实现一遍,这很重要。编程是手敲会的,不是眼睛看会的。

学习iOS开发的过程中,有遇到不懂是正常的,别害怕不懂,Cocoa的内容细节本来就多,每年的WWDC还会发布一些新技术。所以遇到不懂的知识一定要学会查苹果官方API文档:iOS Dev Center

做APP时,如果一个地方不会实现,或者遇到解决不了的问题,一定要学会使用Google搜索。一般来说,初学iOS遇到的问题,Stack Overflow上都有类似的提问,基本一搜一个准。

此外,CSDN等一些技术博客上的文章也很有参考价值。推荐一些优秀的iOS技术博客——中文 iOS/Mac 开发博客列表:tangqiaoboy/iOSBlogCN · GitHub

三、写在最后的话

如果你能按照以上所述做出一个APP上架并找到工作,那也基本算是入门了。但这并不是终点,这只是一个新的起点。iOS开发,乃至整个计算机/互联网行业,后面的路还很漫长。苹果的整个Cocoa框架,可谓是博大精深,里面可以深挖的东西太多了;而且一个程序、一段代码可以进行的优化是没有止境的。作为开发者,只会一门语言是不够的,网络编程、数据库、算法、设计、交互等等东西都是需要掌握的,而语言只是实现这些的工具,语言其实是最简单的。

此外,如果你和我一样是非科班出身,还需要把计算机基础课程补回来,即:数据结构、算法、操作系统、数据库、计算机网络、编译原理等。因为这些知识是你的“内功”,这些基础直接决定了你在这个领域的天花板所在的位置。

当然,基础差一点也问题不大,最重要的是你对计算机、互联网的热爱和热情。你需要有很强的自学能力,不断地去学习新知识,才不会被这个日新月异的行业淘汰;你需要保持一颗好奇心,不断地尝试和接受新事物,不断地创新,守旧的人在这个行业无法生存。在我找工作的过程中,那些知名的大公司都是直接在简历关就将我刷掉了,而那些给我Offer的公司,无一例外都表示,之所以选择我是因为欣赏的我的热情、看重我的自学能力。

所以,如果你和我一样对iOS开发充满热情,敢于接受挑战,那么就从现在开始努力吧,我在前方的路上等你!

——————————————————————————

iOS开发QQ交流群:426310126,加群请注明知乎。

——————————————————————————

编辑于 2015-05-2383
条评论感谢

分享
 

收藏没有帮助举报禁止转载
收起

817赞同
反对,不会显示你的姓名



苏菲优秀回答者公众号:SophieinTokyo
欢迎关注这只猫嘴…
817 人赞同

感谢这个问题下给予iOS初学者诸多帮助的答案。以下是我从7月份开始学习iOS以来所做的事情的整理,供后来者参考。答案中所推荐论坛和学习资源都是我自己用过的。一,前期准备一台Mac Pro或其他苹果电脑从Apple Store上面下载需要的Xcode版本并安装如果你是工…显示全部
感谢这个问题下给予iOS初学者诸多帮助的答案。以下是我从7月份开始学习iOS以来所做的事情的整理,供后来者参考。答案中所推荐论坛和学习资源都是我自己用过的。

一,前期准备

一台Mac Pro或其他苹果电脑

从Apple Store上面下载需要的Xcode版本并安装

如果你是工作上进行iOS开发,别忘记询问你所需要的开发相关的账号,比如查看错误日志或者共享代码资源等。

二,学习准备和计划

我的背景:编程经验为今年4月开始接触java三个月,无C语言经验,无objective C经验。对开发完全没有概念,但是需要快速掌握。看视频和循序渐进的方法都不适合我。

1. 不知道先学什么,所以简单搜索发现国内比较权威的论坛,一般来说国内比较大型的论坛都会有新手需要的整套资源。发现这个新手初学 iPhone 开发的路线图。这个图建议没接触过C语言的人先去学C。因为我要快速学习所以放弃。然后到zhihu本问题下阅览@若虚行的答案,里面有提供很好的入门地图,但过于复杂。这两个资源都比较适合长期学习的人制定计划。

2.根据各个地方的建议,下载了以下文件:

A. Your first iPhone Application中文版 苹果的入门官方文件
马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today): 设置

B. iPhone App Programming Guide 比较详细的苹果的开发手册。没有中文版。为了将来沟通方面我下了日文。
iOS App Programming Guide: About iOS App Programming

C.苹果官方的界面设计指南。由于和开发本身关系不大,所以可以不必立刻学习。对UI设计感兴趣的话可以看看。
iOS Human Interface Guidelines: Designing for iOS 7

学习方案STEP 1:

1. 简单的基础知识普及(0.5天)

强烈推荐这个链接:iOS开发新手专题

里面解说了很多很基础的概念和名词,对我这种完全无IT背景的人来说是救星。还包括了objective C语言的快速入门,对于会一门以上编程语言的人来说节省了不必要的时间。

2.找了一本简单易懂的漫画objective-C教程。因为通过java知道了基础的编程思想,所以主要是熟悉这门新的语言。里面有些内存管理之类的,光是看书很难有具体的理解,没关系,读完。(2天)

2. 粗读iPhone App Programming Guide,主要目的是了解这门语言的特点和能干什么,和我知道的java的区别,知道有什么功能即可,实际编程时再翻开参考。(1天)

3. 细读Your first iPhone Application中文版,彻底理解每一个知识点并且在Xcode上实践。(2天)

4. 把 iOS6实践指南 里面还没有涉及到的部分读懂做会。(我只是2天过了一下,没详读所有部分,建议有时间的人用一周去熟悉每个部分)
CocoaChina翻译组贡献:iOS in Practice《iOS 6实践指南》全书翻译完整版下载

5. 利用公司的资源制作一个餐馆搜索App。(3天)

经过STEP 1的学习,我大概对iOS开发有了一个极其极其粗略的认识。包括它的MVC模型的构建方法与当年用java写网站不同,包括它的内存管理比较麻烦,包括它的.h 和.m文件以及里面的属性等设置时需要注意的。但是对这些认识我都还没有清楚的答案。

编程在书本上往往是非常抽象的概念和讲解,在这门科目上我完全是个实践型的学生。看书总是一头雾水,只有实际做东西才会有成长。所以带着这些极其粗略的认识我进入到了第二步。

学习方案STEP 2: 大量的代码阅读和一点点动手。
阅读:

带着这样粗浅的学习我就进入了iOS开发团队。无论是leader还是我自己都觉得这个水平简直不能写代码。但是leader还是给了我一些非常简单的工作,比如调整UI,把AB TEST真正写入程序等等。在这个过程中我首先得把自己负责产品的代码读明白,至少得知道修改哪里才行吧!在阅读前辈们写下的代码时,STEP 1里面的那些疑问就一点点清晰起来了。

读书终究是泛泛而过,而当你有一个目的或者任务的时候,才会去真正理解每一行代码的意义。对于没法在公司接触代码而是自学的朋友,可以去这个问题GitHub 上都有哪些值得关注学习的 iOS 开源项目? 下用github下载开源代码阅读。(到了这里,GitHub也应该是你列入学习计划的东西之一。)

如果有一个精通iOS的人在你身边随时解说是最好的了。但我们都很难有这种机会,所以善用google,善用Stack OverFlow(一个类似知乎的编程Q&A网站)。大部分问题都可以通过搜索解决。

动手:

往往我在写代码的时候,都是边开google搜索边学习边写的。虽然不比专业的iOS编程者速度,但至少超过了leader对我预想的开发速度。当然写代码仅仅是开搜索和copy-paste是不行的。但在初期做非常简单的开发时,这样的方法可以让你快速上手又能品尝到编程的乐趣。

对于自学的同学,我的建议是,看过一些案例之后,你可以试着把案例中的各种功能重新排列组合。教程很多是做一个带相机功能的app,或者一个checklist,做起来很是乏味。你要定下一个真正想做的东西,并且好好地画出UI设计,不要想着只是练习代码。这个过程会是乐趣无穷而且充满挑战的,认真的态度也可以让你坚持在遇到困难的时候也做下去。

学习方案STEP 3:

再往下我只能推荐你去继续写。因为我觉得学习编程最好的途径就是 实践-遇到问题-解决问题。但是一直到STEP 2我们都是在写各种各样简单的小程序,多少也腻了。

我建议的几个方法:

1. 找一份可以允许现在的你进行iOS编程的实习或者工作。(这也许较难,因为大部分公司都希望直接找到生产力而不喜欢慢慢培养初学者)

2. 找几个有想法的筒子一起认真做个项目。(如果你的团队里有编程厉害的人更好,但你必须相应地提供自己的价值)这和自己练习是不同的。

再往后的学习,就是反复的进行STEP 3的1和2啦。当然在这两个过程中,与各种人的交流啊,搜索啊,进一步的书本学习都是可能发生的。但我觉得贯彻1或2的行动是最重要的,没有他们,你很难保证持续的学习动力。

编辑于 2014-10-1358
条评论感谢

分享
 

收藏没有帮助举报作者保留权利
收起

86赞同
反对,不会显示你的姓名



王杰iOS开发者
86 人赞同

/*****************************************************2015.02.22 更新***********************************************/ 因为这个问题很多人来问我iOS具体的学习路径或者培训班的情况。我在回答过一些同学的问题后,意识到你们最终目的是想学会iOS然后…显示全部
/*****************************************************2015.02.22 更新***********************************************/

因为这个问题很多人来问我iOS具体的学习路径或者培训班的情况。我在回答过一些同学的问题后,意识到你们最终目的是想学会iOS然后找到一份工作。而培训班或者自学都是一个比较漫长的过程,至少3个月以上,而且还会付出很多金钱和自己的时间,甚至中断一段时间自己的正常生活节奏,承担的风险也太大,而像我这样的经历,我现在回想起来也觉得不是值得借鉴的,至少对于单纯想靠iOS学习找到一份工作的同学来说,我觉得最多当个参考,有个具体的认识就好。

今天回答一个同学关于培训的问题的时候,突然想到我转行后找到的第一家公司,同样有个和我一样转行的同事,之前在一个小城市当老师,半年后果断辞职,来成都用了两周时间面试并被录用,之后在公司先看一个月iOS开发的书,然后跟着别人做项目,最开始写最简单的界面,三个月时间就算iOS开发入门了。2014年三月份去了深圳,现在也在一家比较好的公司。

所以不管自学也好,培训也好最终目的都是要去公司上班做项目,而且培训和自学出来同样需要到公司去经历项目才能算真正成为iOS初级开发者。很多时候我们做选择的时候以终为始该怎么选就很清楚了。我同事的方法就直接省去了自学和培训的时间,也不用脱产,这是我现在想到的最快速和具备可操作性的方法了。

但是这样也需要前提:

1.他之前C语言基础比较好,面试的时候C语言的笔试题全对,所以老板才要的他,所以你本身就要有一定的计算机理论基础和编程基础。

2.有的公司,比如我之前那家外包公司会专门找还没毕业的相关专业实习生,一般一个月时间就可以上手跟项目了,但是工资不会高,也不会转正,但是只是攒技能点去的话,努力学几个月等到自己技能点攒足了走就行了。他想要廉价劳动力,我们想要技能点,也不亏。但是这种公司我当然非常不建议去,因为学到最基本的东西后剩下都是重复的体力劳动,非常辛苦不说还对个人成长不好。只是作为转行来说算是一个选择。

3.自己想要在三个月内就完成iOS语法学习到能参加项目,需要个人非常努力。

这三点具备我觉得这条路才可行,希望有同学看到后能带来一点启发和不同的视角。

/*****************************************************2015.02.22 更新***********************************************/

我是一名iOS开发者,自己从零完全跨行自学iOS开发。已经做了很多项目,现在呆的公司马上独立完成第二个项目了,算一个中级iOS开发者了吧。现在的待遇在同样工作经验的人中算中上的了,我为什么说这么多呢?因为这个问题其实光一篇文章真的能起到的作用很少,我非常明白刚开始学的时候那种无头苍蝇一样的无力感,我现在在成都,周末一般都有空,所以可以当面聊一聊,问问你具体情况给出一些学习路径建议和一个对iOS技术大体全面的视角。因为我当初自学时也受过很多人的帮助和鼓励,所以没有任何回报要求。

编辑于 2016-04-2171
条评论感谢

分享
 

收藏没有帮助举报作者保留权利

115赞同
反对,不会显示你的姓名



David天码营-编程学习服务平台-创始人
115 人赞同

曾经自学iOS开发一个月捣鼓出来一个简单的日程管理APP https://itunes.apple.com/cn/app/lean/id903615490?mt=8,发布后几天鬼使神差地进入了App Store的推荐榜,获得了不少好评。本人算是多年的程序员,不具有代表性,只是回顾一下当时的学习经历,仅供参考。入手第一台Mac后(至今后悔为神…显示全部
曾经自学iOS开发一个月捣鼓出来一个简单的日程管理APP https://itunes.apple.com/cn/app/lean/id903615490?mt=8,发布后几天鬼使神差地进入了App Store的推荐榜,获得了不少好评。本人算是多年的程序员,不具有代表性,只是回顾一下当时的学习经历,仅供参考。

入手第一台Mac后(至今后悔为神马快到晚年了才入手),就想着试水一把iOS开发,老婆说希望找个好用的Todo管理APP,心想就拿一个简单的Todo应用祭旗吧。

我上来看的是Standford的iOS教程,不太喜欢看视频,基本拖着过,主要看配套的讲义,视频主要目的当是练听力。当时还是Objective-C的版本,OC语言看的是官方文档,适应一下函数调用语法,Category、Protocol和Block几个概念要了解下,一两天就差不多了,开发过程中逐渐适应就顺手起来了。

这中间很大一部分时间,是在琢磨交互的设计,自己那段时间对交互设计也比较感兴趣。下载了大部分流行的Todo App来研究,重点考虑了自己的单手操作习惯,这也是后来能进APP Store推荐榜最主要的原因。

动手前,考虑过一个问题,就是StoryBoard,XIB和纯代码UI,选择哪种方式。看了几篇博文,也想到StoryBoard是苹果目前主推,就直接StoryBoard了。

从UITableView开始搞起,先整出来一个最简单的Todo的列表。发现没有checkbox控件,就搞了个基于图片的实现,学会了怎么基于StoryBoard来搞自定义的UTTabelViewCell。

接下来导航进入一个具体Todo需要Navigation Controller了,中间尝试了几种View Controller之间传数据和返回数据的几种方式。通过Delegate,通过Notification Center,写Segue相关的回调实现,在StoryBoard中设置,直接API调用,等等,多试几种方式以及相关的组合,基本对视图怎么跳过来跳过去的就了然于心了。然后学微信的样子搞了个Tab View Controller把几部分内容装起来。

花时间最多的是手势的操作,参考一些APP的之后,自己设计了一套操作手势。读官方文档,基本把UIGestureRecognizer搞明白了。然后上Github去找与我想法类似的库,没有特别符合要求的。后来自己参考了一个开源库代码,做了大量修改,实现了想要的手势操作。在过程中,对手势操作以及OC语言本身都掌握得比较熟练了。

数据存储是Core Data,看Standford教程,读文档,业务模型很简单,在StoryBoard中可视化地拉了两张表,基本就搞定了。

比较坑的是NSFetchedResultController,因为Todo的拖动、排序和编辑等操作和Table View默认的操作是完全不同的,各种错误,StackOverflow上的帖子翻遍了,搞了几天解决不了,遂放弃,自己封装了一层跟Table View交互的数据层。

尝试了加一些小的动画效果,比如Todo更新后闪动一下之类的,UIAnimation就够了。然后用NSUserDefault保存一些细节信息,这些信息对于交互上的一些小改进其实很有作用。然后是调整一下代码细节,优化一些View的显示。

然后做了代码重构,主要UITabelViewController,把MVC三部分代码做了更好得分离,也将一些公共抽象提取出来作为protocol,对代码设计基本就还算满意了。这段时间发现了https://www.objc.io/这个网站,很有帮助。

之后就是找了一个好朋友帮我画了一些图,做了icon,基本就算完工了。

第一次提交被拒了,因为app网址随便填了个我们学校的网站,太随意了。第二次改成老婆的微博地址,然后就通过了。从开始学习iOS开始,刚好一个月时间左右。

上线后几天就是打开itunes connect之后,突然发现用户增加了近万,发现竟然进了推荐榜,最高的时候一度在效率榜排进几,貌似12306的APP就排在我的旁边,不过过了一周就没落了,哈哈。

后来其实花了不少时间,要做第二版。增加了提醒,云端同步,即时通信,好友管理等一堆功能,大部分都做好了,都还有一些需要完善的地方,一直没有提交。因为做其他事情没有时间,暂时搁置了,等哪天有时间有心情的时候,再重新捡起来把。

后来为了写一个iOS教程,就用Swift开始重写这个APP,不过也半途而废了,没完全写完,而且Swift语言也更新不少,内容也应该需要一些更新。越来越感概木有时间编程了。有兴趣的同学可以看看:iOS应用开发 | 天码营

已经写完的内容包括:

第1课
环境准备

第2课
Swift基础

第3课
Swift作业解析

第4课
UITableViewController

第5课
自定义的UITableViewCell

第6课
MVC

第7课
App的生命周期

第8课
协议的使用

第9课
理解可选类型

第10课
UIViewController和UINavigationController

第11课
Segue与数据传递

第12课
Unwind Segue

第13课
通知中心NSNotificationCenter

第14课
日期选择器UIDatePicker

第15课
XIB的使用

第16课
可选(Optional)协议

第17课
Core Data

第18课
NSFetchedResultController

第19课
细节优化的小技巧

第20课
UITabBarController

第21课
作业详解与回顾(1)

第22课
作业详解与回顾(2)

第23课
分页和UIActivityIndicatorView

第24课
UIGestureRecognizer

编辑于 2016-04-1514
条评论感谢

分享
 

收藏没有帮助举报作者保留权利
收起

53赞同
反对,不会显示你的姓名


程序员不打诳语
53 人赞同

我就是学的 Stanford CS193 iOS7开发。那个老爷子讲得特别好!激情负责任!而且讲义实在是太用心了!简直是手把手!至于更详细的你直接看排名第一的那个答案吧,我其实是红领巾。iOS7_免费高速下载这是我千辛万苦搜集到的资料,视频有英文字幕!!!!(在…显示全部
我就是学的 Stanford CS193 iOS7开发。

那个老爷子讲得特别好!激情负责任!

而且讲义实在是太用心了!简直是手把手!

至于更详细的你直接看排名第一的那个答案吧,我其实是红领巾。

iOS7_免费高速下载

这是我千辛万苦搜集到的资料,视频有英文字幕!!!!

(在百度云上面预览是看不到字幕的 :( 可能是视频格式的原因 下载下来就可以看到英文字幕了。 )

=====

不够我没看到楼主强调设计模式、内存管理。。我以为就是入门 : (

编辑于 2014-07-2634
条评论感谢

分享
 

收藏没有帮助举报作者保留权利

24赞同
反对,不会显示你的姓名



90后大叔一切从靠谱开始
24 人赞同


目前在学iOS开发,分享一下。学前先把思路给捋清楚:a.自己为什么喜欢iOS开发?b.自己能不能做?c.工作内容大体如何?d.然后最重要怎么学最快?(少走弯路)d1)了解虽然培训班有好有坏,但也要从培训班了解。我也是0基础,先把各个培训班都教什么对比一下…显示全部
目前在学iOS开发,分享一下。

学前先把思路给捋清楚:

a.自己为什么喜欢iOS开发?

b.自己能不能做?

c.工作内容大体如何?

d.然后最重要怎么学最快?(少走弯路)

d1)了解

虽然培训班有好有坏,但也要从培训班了解。

我也是0基础,先把各个培训班都教什么对比一下。

发现C语言是学OC之前必教,特别针对0基础。

为什么先学C?

好比小孩,先学走路再学跑是一个道理。(当然也不绝对)

C 是面向过程

OC是面向对象

OC继承C 语言

培训班教学?

我了解培训班当中,都是教C+OC+UI

UI的课程时间最长,平均在1-2个月

C 10-15天

OC 10-15天

UI 20-35天

(我说的是学习时间,不包含休息日)

所以学iOS开发就是C+OC+UI

然后就是狂做项目,拿着作品去面试..

自学怎么学?

自学方法很多,看书看视频等等(当然少不了练)

我自己光看书看不进去,所以看视频

开始找C OC UI 源代码 的视频

(鉴于我找的视频 就不提了 容易让人当广告 有需要私信沟通)

d2)自学前准备工作

一定要多认识iOS大神!!!

一定要多认识iOS大神!!!

一定要多认识iOS大神!!!

(你懂得)

然后就是进度,这里应该提到番茄工作法..有需要自己搜下吧

我是列表格

财状

钱的事不用多说了,这是硬伤。

(上下是对应的- - 吃住每个月多钱 花费是写清是否花超了- -)

<img src="https://pic2.zhimg.com/e5f0d4db7c98e5fc8fc077373d9328f1_b.png" data-rawwidth="653" data-rawheight="219" class="origin_image zh-lightbox-thumb" width="653" data-original="https://pic2.zhimg.com/e5f0d4db7c98e5fc8fc077373d9328f1_r.png">


大体计划

我的计划里有饮食和运动,顺便锻炼锻炼...(红色部分是最快学完的时间)

<img src="https://pic3.zhimg.com/83cfa693a4d38ffcd9e7b8fa1ea22ffa_b.png" data-rawwidth="572" data-rawheight="134" class="origin_image zh-lightbox-thumb" width="572" data-original="https://pic3.zhimg.com/83cfa693a4d38ffcd9e7b8fa1ea22ffa_r.png">


进度表

列出每天看的工作量,把计划的和实际的对比,每天一总结。

这只是其中一部分,最重要的事把计划和实际的去对比!!!

(9月的已经写上笔记,so截个10月的)

<img src="https://pic4.zhimg.com/f4f167ee0fbc4736d368ccb71c5e1077_b.png" data-rawwidth="772" data-rawheight="332" class="origin_image zh-lightbox-thumb" width="772" data-original="https://pic4.zhimg.com/f4f167ee0fbc4736d368ccb71c5e1077_r.png">


d3)设备

这是最最最敏感的事

(如果有钱就不怕了)

购买就一句话:在自己范围之内买最好的 必须Pro

但初学者,一定要借或者租!!!

等学会OC部分,再买!

(别问我怎么想的,一定是对的)

最低配Air 128G 学C+OC没问题了

d4)过程

计划再好不实施肯定不行

刚开始可能会有 坐不住、看着就困、学不会、闹心、失眠等等

首先一定要认真去学,准备这么多不能因为一点点问题就放弃了

坐不住:就看15分钟一暂停,手舞足蹈一会。

犯困:喝咖啡,不好使就睡!忘记昼夜!下午睡到后半夜就凌晨看!

闹心:千万不要玩别的!不要玩手机!喝点啤酒!像个爷们去解决问题!

失眠:不要玩手机!睡不着就起来继续看!

可以养个小动物..

还会有其它问题,反正不放弃就对了

后面的事情我还没有经历过,就不说了,希望对你有用!

PS:可能有点跑题,最后说说你是否要离职,是否要学iOS吧!

是否离职?

自己是喜欢折腾一下?还是稳稳当当的?

如果是稳定:

你已经有房子了,如果这家待遇(五险一金 分红)不错,能稳定一辈子的话,就继续做

如果想折腾:必须离职!

是否学iOS?

iOS未来5年内基本是上升趋势

但做码农需要每天不停的敲,成天面对电脑,坐班

so,先看性格!

如果你比较开朗,不喜欢成天坐班,建议走业务路线!最次做销售!

如果你想拥有一门技术,好比铁饭碗,性格又偏内向,喜欢静静!

就把上面a.b.c.d的问题找到答案,没问题的话就去学iOS开发!

最后说一句,要想好,千万别心急!

25岁虽然年轻,但经不起2次折腾。不要觉得年轻就是本钱!

(以上所有都是个人看法,有觉得哪里不妥的欢迎沟通)

原文地址:我到底应该继续学下去还是? - 90后大叔的回答

发布于 2015-09-1218
条评论感谢

分享
 

收藏没有帮助举报作者保留权利
收起

201赞同
反对,不会显示你的姓名



aaaron7人人都在内心深处,期盼着世界末日的到来
201 人赞同

楼上的各位大神,已经从技术层面说得足够多得了,我来说点虚得把。说白了,就是一个学习方法的问题,这点不只iOS,其实任何编程都是一样得。很多人学编程主要就看书,看视频,甚至跟着视频开发,但也觉得没用。 为什么? 因为在这个过程中并没有真正动脑,…显示全部
楼上的各位大神,已经从技术层面说得足够多得了,我来说点虚得把。

说白了,就是一个学习方法的问题,这点不只iOS,其实任何编程都是一样得。

很多人学编程主要就看书,看视频,甚至跟着视频开发,但也觉得没用。 为什么? 因为在这个过程中并没有真正动脑,所以这其中得知识点也很容易过目就忘。

这个逻辑,在背单词上也有运用,同样都是看单词:

1. 看一眼英文,想一下是啥意思,想不起来,再去看中文。

2. 看一眼英文,看一眼中文

重复看几遍,1和2效果相差巨大。 按1看三遍,你基本就记住了。按2看三遍,你还是啥都记不住,连一点印象都没有。

所以这个阶段,
其实你去看任何书,看任何视频,都是没用得。

跟着书,跟着视频敲代码,作用都是很小得。


怎么办?其实很简单,和上面背单词得例子一样。

你把你看书看视频想要学习得知识点,列一个表,然后你YY一个App,App得功能能够尽可能多得覆盖到你得想要学习得知识点。

然后建新工程,开始写。遇到不懂不会的先思考,想不出来再去查书查视频,不要随便问,不要做伸手党,因为你得到知识得过程越容易,这个知识就越不属于你

你会说, 我刚开始学耶,怎么可能就独立做App。

你错了。

这是很多人最都犯得错误,我觉得最核心得还是中国得计算机教育得方法不对。为什么很多人都会认为“独立做个App”很难? 是因为他们潜意识里,学习编程得过程是这样得:

1. 学习A->学习B->学习C->............................学完了!

2. 我要开始做项目了,这个时候发现不管看啥东西,好像都挺难做得,而且似乎自己学过得东西,也没什么印象了,函数也不记得怎么用。

简单的讲:逐一学习了每一块积木的形状与用法,然后别人给你一座城堡,你去思考如何造个一样得出来。(思维是逆向的,解题式的,过程是漫长的,成就感是没有的,挫败感是一直有的)

那有没有更有效得方法呢? 我觉得是有得。

分享一下我中学学VB的过程

1. 拿到谭浩强老师的书,翻了两页,学会了InputBox(弹出一个输入框,接受用户得输入,函数得返回值就是用户输入得字符串), 以及MsgBox(弹出消息框)得用法

2 灵机一动,貌似能做点东西了。
(当时很流行一种网页,你进入后会不断弹框,问你得好朋友名字,你的名字,你暗恋的女生名字,最后生成一篇有意思得文章)

3. 没错我就山寨了一个这种应用得Windows Form版出来。其实就靠这两个函数。这就是我第一个“独立App”

4. 之后又想到,诶既然能接受用户输入,岂不是就能做计算器了?于是为了实现计算器,又间接学会了基本得数学库,textbox, button等控件得用法

这种方法,简单的讲:学习了一些积木得用法,就尝试用这些能搭出不同得东西,在这个过程中逐渐学会了其他积木得用法,然后再尝试搭出更厉害的东西,以此循环。(思维是正向的,创造性的,过程是短暂的(拆解成了不同的阶段),成就感是一直有的,挫败感是暂时的)

总结一下:
编程本质是创造,创造本身是令人愉悦的,所以其实找对方法,学编程是一件很快乐的事,这一点比其他行业好很多,比如你学再难得编程,都比考CPA要爽。
兴趣是最好得老师
勤造轮子

编辑于 2016-01-2235
条评论感谢

分享
 

收藏没有帮助举报作者保留权利
收起

211赞同
反对,不会显示你的姓名



Vincent
JacAll In Or Nothing.
211 人赞同

------2016年2月24日更新------更新内容:1.更新了推荐书籍以及书本出处。入门呢,先多了解下iOS开发的知识树。树上有什么大枝大叶,心里有个数最好。平时多看看书,多和前辈讨论技术,就get很多经验的。选对了位置,再逐步突破不懂的点,之后开始研究一些…显示全部
------2016年2月24日更新------

更新内容:

1.更新了推荐书籍以及书本出处。

入门呢,先多了解下iOS开发的知识树。树上有什么大枝大叶,心里有个数最好。平时多看看书,多和前辈讨论技术,就get很多经验的。选对了位置,再逐步突破不懂的点,之后开始研究一些有深度的领域,一万小时定理你懂的。

首先推荐一些进阶的书籍(不好意思哈,看的不多。):

1.《Objective-C基础教程》

2.《Objective-C编程之道:iOS设计模式解析》

3.《Objective-C高级编程(iOS与OSX多线程和内存管理)》

4.《EffectiveObjective-C》 [机械工业出版社 Effective系列丛书]

5.《iPhone开发秘籍》Erica Sadun著

[注:以上除Effective那本之外,4本都是人民邮电出版社 图灵丛书系列的]

接着,大概罗列下一些技术划分。

初级阶段:

就Objective-C而言:


1.Foundation框架、Catagory、KVC、KVO、Protocol、Block、引用计数等基本知识有有所掌握。

2.注意代码规范。

iOS开发的通用控件而言:

1.UIView方面相关控件(UILabel、UIImageView、UIButton、UISlider、UISwitch、UIScrollView(TableView、CollectionView、TextView)、UIWebView、UIWindow、UINavigationBar、UITabBar)。

2.了解UIViewController的生命周期,Navigation的堆栈原理等等。

3.千万别只用代码写UI,把Xib、storyborad搞搞清楚,特别是AutoLayout用好来也很重要。

4.NSNotifaication,怎么说,也是个大头,单独拿出来好好研究下。

5.手势。UITapGestureRecognizer、UIPanGestureRecognizer、UILongPressGestureRecognizer、UISwipeGestureRecognizer、UIRotationGestureRecognizer。

6.屏幕的旋转,这个坑要多走走才过的好。

7.Localizations

8.文件管理,Bundle、NSFileManager。

9.数据存储,UserDefault,KeyChain、NSKeyedArchiver。

10.ARC

iOS动画:

1.UIView动画封装

2.Controller 相关的TransitionStyle

3.CAlayer。

设计模式:

这部分内容研究,建议拿一些开源企业级框架进行学习。本人当时是哪BeeFramework上手,Bee框架算是很好的MVC模式学习框架了。XML UI + Signal的View构建方式也挺优秀的。不过可惜的是现在Bee已经不再维护了,所以就拿来学习吧。

1.MVC

2.代理模式

3.单例

4.观察者

5.工厂模式

单元测试:

1.单元测试基础原理

2.XCTest

开发技术之外的还包括:

1.项目版本管理:SVN、Git

2.项目包依赖管理:CocoaPods

3.调试各种小技巧。比如断点(条件、全局)、lldb调试基本指令、NSZombieEnabled、

4.一些基本概念的理解,比如进程、线程、同步、异步、队列、串行、并发。

中级阶段。

在这个阶段呢,我们应该更多关注性能和业务方面的优化。

开发语言方面:

1.Swift:Objective-C与Swift互调。

2.JavaScript:使用Objective-C执行JavaScript。可以多熟悉了解JavaScriptCore。三方框架方面推荐WebViewjavaScriptBridge。

3.C、C++、Objective-C混编。

iOS方面:

1.动画上熟悉CAAnimation(CABasicAnimation、CAKeyFrameAnimation、CAAnimationgroup\CATransition)、UIDynamics(UIDynamicAnimator、UIDynamicBehavior)

2.Runtime:objc_msgSend、Method Swizzling;

3.正则表达式:NSpredicate、NSRegularExpression。

4.消息推送机制

5.组件开发:创建Framework、打包静态库

6.分清32位和64位编译区别,能够将32位程序迁移到64位(这部分,,,,不强求)。

多媒体:

VLC组件使用频率较高,但其中部分不需要的解码库可以适当的剥除以降低库大小,SDWebImage可以细致的去研究他的加载策略缓存策略。CoreAudio、COreGraphics能够调度硬件进行编解码,提升效率多半是Android一时半会达不到的。

1.视频:MediaPlayer、VLCPlayer

2.图片:CoreGraphics、SDWebImage

3.音频:CoreAudio

网络交互:

1.NSStream

2.CFNetwork

3.NSURLconnection

4.NSURLSession

5.Json解析(model数据接收导致崩溃,多半在Json解析。)

架构设计:

1.设计模式熟悉MVVM等不同的分层模式

2.UML能够绘制和读懂常用模型图吧,可能科班出身的基本都问题不大。

应用测试:

还在为应用莫名其妙卡壳而苦恼吗,还在为找不到项目优化点而被产品同批吗?Instrument——你值得拥有。

1.性能测试:instrument(Timer、Allocation、Leak)

开发环境与工程框架(个人觉得也是中后期关注比较多的点)

在开发环境与工程稳定方面,显然有这样的需求你也不是一只小菜鸟了。此时你对自己的项目有更高的追求了。

那么此时我们应该注意什么样的知识点呢?这部分整理,也是基于我司内部推行的一种Docker思想的整体企业级架构平台。平台集成了代码仓库、应用组建库、自动组件化应用打包。当时也去听了高焕堂老先生关于Docker思想的技术沙龙,感觉受益匪浅。真的开始融入到Docker思想后确实觉得有助于企业优化架构,并且我也完成了手头一个应用从传统架构到这种Docker架构的迁移,大概思路就是先将应用从业务上解耦,后进行组件化封装。通过Cocoapods的podspec进行本地组装,在传至平台组件仓库中打包供应用组装时使用。这个过程中用到了Git、Cocoapods、Jenkins的部分知识,因此多了一份工程框架方面的思考哈。

工程框架

1.包依赖管理:Cocoapods、SwiftPackageManager、Carthage。如果你为了添加一个依赖库,还在手动从Git上面下载,那么就该注意去使用这些包管理工具了。提高效率很多,并且方便团队开发时,快速构建项目框架。

2.持续集成:Jenkins。首先,你先发现了自己在开发过程中对于持续集成的需求,并且发现真的很累...那么此时你就该认真的思考如何通过工具完成这一烦躁的工作了。

3.数据安全:

3.1数据加密:Hash(MD5、SHA1、SHA265)、RSA、AES、3DES、Base63.

3.2HTTPS与SSL:做开发,必须要学会跳过HTTPS授权,iOS也不例外。

4.打包工具:Command Line Tools、xctool

开发环境

1.Xcode插件:Alcatraz(不说别的,那个会炸开打字效果就值得你一试)、VVDocument、KSImageNamed

2.git:SourceTree

3.SVN:Versions、Cornerstone。(讲真Versions比Cornerstone好用。)

4.开发者账号申请和管理:

4.1Apple Developer MemberCenter :证书(发布证书、开发证书、推送证书)、设备管理、配置文件管理

4.2iTurnes Connect:Appstore应用管理、应用上架审核检测、加急审核。

5.热门技术:

5.1支付:微信支付、支付宝支付

5.2社会化分享:微博、微信朋友圈等(此处推荐使用三方库:UMengSocial)

5.3即时通讯:XMPP、VoIP(不知道放这里合不合适哈,做过视频会议,网络电话的人都懂。)

5.4HTML5:虽然我很忠实于原生应用开发,但是H5确实有点可取之处的(举个栗子吧,你做数据图表UI显示时,还是H5给你提供的库最多!),大家不妨关注下Hybrid App。

以上列出的大部分内容来自于日常开发,还有书本阅读 。

编辑于 2016-03-2131
条评论感谢

分享
 

收藏没有帮助举报作者保留权利
收起

10赞同
反对,不会显示你的姓名


野生程序员,学习产品设计中....
10 人赞同

我觉得 学会一个东西最快的方式是边学边干 花几个月做一个小app 就学会了显示全部
我觉得 学会一个东西最快的方式是边学边干 花几个月做一个小app 就学会了

发布于 2015-05-262
条评论感谢

分享
 

收藏没有帮助举报作者保留权利

27赞同
反对,不会显示你的姓名


摄影工程师,户外工程师,iOS工程师
27 人赞同

首先声明,回答不求全面,只介绍下自己的经验。本人情况,正规大学计算机专业毕业,有语言基础和计算机理论基础。仅仅是基础。2014年6月份毕业,工作三个月后辞职开始自学ios。选择ios的原因有几点:1.手头有台mac,不用额外购买电脑。2.ios平台看起来比较漂…显示全部
首先声明,回答不求全面,只介绍下自己的经验。

本人情况,正规大学计算机专业毕业,有语言基础和计算机理论基础。仅仅是基础。

2014年6月份毕业,工作三个月后辞职开始自学ios。选择ios的原因有几点:

1.手头有台mac,不用额外购买电脑。

2.ios平台看起来比较漂亮,同时机型较少,好适配。

3.行业薪资ios比安卓要高一些。

4.开发语言是oc,有c语言基础比较好学。

个人感觉电脑只要是mac,什么型号并不重要,因为前期的代码量和程序规模并不需要强大的性能,所以尽管买最便宜的就好,不要被mac比较高的价格为难。上班后公司一般都有pro使用。另外苹果手机也不是必须,模拟器足够用,账号也不是必须,资金拮据可以考虑省下这部分钱。

入门先从最基础的oc语法学起,可以买一本oc教材,然后下载网上的oc课程视频,边看边敲,不懂得查书,不要只看书,我们不是为了应付考试。这样一遍下来,对oc语法应该了解差不多了。这时不求全部理解,大部分概念有就可以,实际用到的时候不懂可以回来查,更可以加深理解。这个阶段一到两个月。

有了语言基础,可以进一步接触cocoaTouch框架,做一些简单的界面,很有成就感,可以激励自己学习。这时同样可以看网上教学视频的进阶版,一般是把大部分控件的使用讲一遍,然后仿照比较流行的app学习混合使用。这其中会穿插一些coreFoundation的知识,都是这个系统最基础的东西。这个阶段两个月左右。

再进阶学习网络部分以及动画第三方等等,其实有前面两部分的基础就可以去工作了,因为最基础的东西学完,别的进阶的可以随用随学。我目前还处在第三阶段,还有很多不懂的,不过不影响工作,工作也是学习的过程,同时能接触到更多自学过程中接触不到的内容,比如很多成熟的第三方框架,比如app架构等等。这个阶段两个月到不知道多久。

总得来说,对于没接触过的大部分人来说,从入门到可以去参加工作,需要5到7个月的时间,基础好学的快的三四个月,一般培训班是4个月时间,培训费用加生活支出应该要两万大几。自学如果没有电脑支出的话,费用大概1万。

还有关于学习资料,首选国内的热门教材,不要读英文资料。我英语很好,但是非要看文档的话,也是头大,会让自己失去兴趣。可以用教材和阅读博客结合的方式学习内容,学的东西一定要用,否则没有任何意义。等入门了懂原理了,再去学习的时候,再去考虑文档和英文资料,这些资料还是很有价值的。

总之,不要好高骛远,踏踏实实按计划来。不求所有东西都吃透,但是至少保证能用学的知识做出东西来,并能解决发现的问题。这样不断的工作学习,经验多了,了解的东西多了,慢慢就会成为初学者眼中的大神。

这个行业薪资水平还可以,我现在所在的杭州,一年工作经验大概在10k,两到三年熟练的15到20k,四五年经验能带项目的20到40都有,所以薪资还是很诱人的,第一次感觉到时间就是金钱。想想这样学下去,一年之后每个月能比现在多挣1万,动力是不是多了点呢?

编辑于 2015-08-1120
条评论感谢

分享
 

收藏没有帮助举报作者保留权利

3赞同
反对,不会显示你的姓名



其实iOS开发、你才是程序员,你全家都是
3 人赞同

感觉你们说的好复杂一、官方文档,不管能不能看懂,先吞下去再消化。马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today): 应用程序开发过程二、国内iOS培训机构的在线视频。我最近在看蓝鸥、千峰的视频。(更多的培训机构随便百度)三、objectiv…显示全部
感觉你们说的好复杂

一、官方文档,不管能不能看懂,先吞下去再消化。
马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today): 应用程序开发过程

二、国内iOS培训机构的在线视频。

我最近在看蓝鸥、千峰的视频。(更多的培训机构随便百度)

三、objective-C程序设计第四版(PDF),下载到手机里,随时看看。

遇到问题可以找相关的QQ群、请教他人。

iOS入门,如果没有C语言基础,最好还是学习、了解一下有助于学习objective—C。

发布于 2014-10-12添加评论感谢

分享
 

收藏没有帮助举报作者保留权利

7赞同
反对,不会显示你的姓名



Aaronweb开发,iOS开发,某研发团队成员
7 人赞同

你好,我是2015年毕业的,说说我的情况吧,我学习iOS之前先重新把在学校学过的c语言重新学习了一遍,尤其是指针和链表那块,用的《c和指针》,把书后题目写了一些(没全部写,太多了,只把指针链表重点写了一下)。本身学过c#和java(也是自学),对面向对…显示全部
你好,我是2015年毕业的,说说我的情况吧,我学习iOS之前先重新把在学校学过的c语言重新学习了一遍,尤其是指针和链表那块,用的《c和指针》,把书后题目写了一些(没全部写,太多了,只把指针链表重点写了一下)。本身学过c#和java(也是自学),对面向对象并不陌生,但我不是软件专业出身(电气自动化,但兴趣在软件),然后,我花了两周时间看完了《Objective-C基础教程》,搞懂语法之后,我就开始看斯坦福大学的objective-c
based教学视频,目前学完了一半,诚然,一开始确实万分痛苦,像一楼所说的,mvc一开始云里雾里,后来我把mvc弄懂了,后面就能听懂了,要说障碍,就是语速说快了会回头再放一下,然后assignment完成到第四个,遇到障碍就stackoverflow或查阅API(option按住点击代码),而且每个作业会有hint,照着来自己解决,回过头来总结会发现进步很快,所以斯坦福的课到底是否适合入门,因人而异吧,我学到现在,还是觉得,mvc的概念贯穿始终,model,view,controller三者的关系一定要搞清并牢记,灵活运用就行,然后头疼了一阵子委托,在我理解里,委托分代码本身的委托语法(不涉及任何架构,就是想实现传统方法)和上升到架构的“委托”,上升到架构的委托有时候会陷阱更多一些,也复杂一些,不过要多思考,多尝试,打通之后遇到类似或更恶心的问题也不会手忙脚乱。打算斯坦福的课学完之后,把《精通objective-c》好好学一学。不多说了,言多必失,自己也才开始没多久,不可能都是正确的观点,仅参考。最后,希望,你我未来学习iOS开发之路越来越好!

编辑于 2016-03-2610
条评论感谢

分享
 

收藏没有帮助举报作者保留权利

114赞同
反对,不会显示你的姓名



利炳根微信:
qingxingfengzi
114 人赞同

1、别人学1个月就能做APP,你也许10年都看不完一本入门书。2、别人拿30K一个月,你可能3K都没人要。3、能买Mac,就买预算内最贵的。4、不要自己折腾配件。5、配件升级顺序:内存(8G起步) -> 存储(SSD 256G起步) -> CPU -> 显卡6、买不了Mac,就…显示全部
1、别人学1个月就能做APP,你也许10年都看不完一本入门书。

2、别人拿30K一个月,你可能3K都没人要。

3、能买Mac,就买预算内最贵的。

4、不要自己折腾配件。

5、配件升级顺序:内存(8G起步) -> 存储(SSD 256G起步) -> CPU -> 显卡

6、买不了Mac,就自己黑一个:VM10装Mac OS X 10.9.3及更新到Mac OS X 10.10

7、赶紧买书看书看视频:斯坦福大学公开课:iOS 7应用开发

8、有任何学习上、工作上的问题,都可以问。但不要在线等别人答,赶紧自己去搜索。

9、能用Google就用Google,不行就百度。不要只搜一次,阅读了解部分信息后,增加或修改关键词继续搜。

10、多用专业网站的站内搜索,或者Google/百度时加”site:”。

11、实时请教是最低效的,多看书多看博客多看问答社区多搜索。

12、多参加技术沙龙,熟悉自己谋生的技术圈子。以防万一,带本书出门。

编辑于 2015-03-1019
条评论感谢

分享
 

收藏没有帮助举报作者保留权利

4赞同
反对,不会显示你的姓名



wangheyun攻城师,CODING
4 人赞同

最好的资料就是ADC中的各种Guide Line,我看了很多第三方出版的书籍,发现还是只有GUIDE LINE最好,其中包括Memory Management Programing Guide,View/View Controller Guide显示全部
最好的资料就是ADC中的各种Guide Line,我看了很多第三方出版的书籍,发现还是只有GUIDE LINE最好,其中包括Memory Management Programing Guide,View/View Controller Guide

发布于 2012-05-31添加评论感谢

分享
 

收藏没有帮助举报作者保留权利

2赞同
反对,不会显示你的姓名



DaveYangExp
Physics@IUB@XMU
2 人赞同

你先说说你想开发啥,我的经验就是看两个简单的例子直接上手干,不懂就Google,看文档,上各种论坛,等你学完各种语法什么的黄花菜都凉了显示全部
你先说说你想开发啥,我的经验就是看两个简单的例子直接上手干,不懂就Google,看文档,上各种论坛,等你学完各种语法什么的黄花菜都凉了

发布于 2015-08-14添加评论感谢

分享
 

收藏没有帮助举报作者保留权利

2赞同
反对,不会显示你的姓名



路人乙小明宅,
伪Geek
2 人赞同

想起来好久以前答过这个题。那啥,最近发现swift好好用,真的好好用,cs193p最新的针对swift开发ios的教程已经优化了不少,觉得看起来比之前针对obj c的要好,不过也可能是最近对面向对象编程稍微懂一点的缘故。总之如果最近开始学的,建议直接上swift。swi…显示全部
想起来好久以前答过这个题。

那啥,最近发现swift好好用,真的好好用,cs193p最新的针对swift开发ios的教程已经优化了不少,觉得看起来比之前针对obj c的要好,不过也可能是最近对面向对象编程稍微懂一点的缘故。总之如果最近开始学的,建议直接上swift。swift的参考书应该不用买,直接用苹果官方钦定那本就好,ibook免费下,cs193p的阅读作业也是用这本

以下是原答案

big nerd ranch的obj c编程很好,看斯坦福视频前必读

另一方面,big nerd ranch那本书好像是xcode 4时代的了,看到ios程序开发那的时候就应该结合视频了

obj c需要c作为基础,c的话,就算大学学过,我觉得还是要跟着书重温一下的,还是那本书,该讲的讲到了,入门用不到的基本不说。

obj c基础的章节可以让你对面向对象编程有一定的认识。单独这么说有点玄,不过现在自己也只能是一知半解,只能说有句话对我触动很大

在面向对象编程里面一般不会直接操作一个对象里面的变量,而是通过对象的方法,告诉对象做什么,剩下的让对象自己做

原文记不得了,按印象说的。

书看的差不多了才好看视频。不大懂的时候看书比看视频省事的多。事实上斯坦福的ios开发也不是面相初学者的,而是要求参加课程的人有编程基础,学过面向对象编程的,所以不要怪人家一上来就mvc

编辑于 2015-11-022
条评论感谢

分享
 

收藏没有帮助举报作者保留权利


more,more,and
more.
9 人赞同


有点编程基础的话(大学计算机相关专业或者辅修过计算机,or others)iTunes U 最近新开了 Developing iOS 8 Apps
with Swift,还是斯坦福的白胡子大叔讲的CS193p,Winter 2015,iTunes上自带英文字幕,现在出了4课。网易公开课上有大叔在2011年的课程,一…显示全部
有点编程基础的话(大学计算机相关专业或者辅修过计算机,or others)

iTunes U 最近新开了 Developing iOS 8 Apps with Swift,还是斯坦福的白胡子大叔讲的CS193p,Winter 2015,iTunes上自带英文字幕,现在出了4课。

<img src="https://pic4.zhimg.com/8bf799f6c109b5d32d2d61071c6e262b_b.jpg" data-rawwidth="1268" data-rawheight="713" class="origin_image zh-lightbox-thumb" width="1268" data-original="https://pic4.zhimg.com/8bf799f6c109b5d32d2d61071c6e262b_r.jpg">

<img
src="https://pic3.zhimg.com/adef852155d792919c53ef4edf415bc6_b.jpg" data-rawwidth="1130" data-rawheight="636" class="origin_image zh-lightbox-thumb" width="1130" data-original="https://pic3.zhimg.com/adef852155d792919c53ef4edf415bc6_r.jpg">

<img
src="https://pic1.zhimg.com/229a3890b2a64a79fda6d72589918b7c_b.jpg" data-rawwidth="1366" data-rawheight="768" class="origin_image zh-lightbox-thumb" width="1366" data-original="https://pic1.zhimg.com/229a3890b2a64a79fda6d72589918b7c_r.jpg">


网易公开课上有大叔在2011年的课程,一共19集,前11集有中文字幕,后边的在翻译中。不过是基于iOS 5的。可以参考吧。

个人感觉2015年的英文不算太难,有字幕,个别单词可以查嘛。视频第一遍理解意思,查单词,第二遍尽量搞懂。

在此之前,可以(最好)先学习一下,慕课网,上的“玩儿转Swift”课程:玩儿转Swift。该课程主要是在playground里学习Swift的各种知识点,对学习CS193p很有帮助。至少某些名词不查字典,可以直接翻译了。<img
src="https://pic3.zhimg.com/d1f3c8450bf3a2dacb9726ea7ce24306_b.jpg" data-rawwidth="935" data-rawheight="484" class="origin_image zh-lightbox-thumb" width="935" data-original="https://pic3.zhimg.com/d1f3c8450bf3a2dacb9726ea7ce24306_r.jpg">


至于别的,我也刚开始学习,一起啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: