iOS 开发入门需要学习哪些知识,从一无所知到精通需要多长时间?

关注者
5565
被浏览
512316

46 个回答

多说无益,怒以身犯险,亲身示范!
无基础文科生入门iOS的3个月(以第一个app上线作为入门标准)

这个经历主要是分享给一些像我这样,对互联网想法多多,按耐不住非得亲自上阵的楞头青。这里以上线一个app为目标(不奢望做出啥高级算法,90%的app也不会涉及算法),当第一个app完成,基本上就不会再对开发有恐惧,之后尽情学习,享受创造规则的快感吧!
也有其他大牛们说上网搜索自己学入门超快的,我觉得身为一个无背景的文科生,还是有点吃力的。脑子里没有知识的框架,学到个知识点都不知道往哪里整。所以还是推荐从书或者公开课入门。有个老师带入门总是容易理解些的。

第一步:编程入门课
时间预计:4个星期
推荐看公开课,Udacity也行,网易公开课也行,自己找一个面对对象语言(一般是JAVA, C++, Python)的课。我是在网易公开课看的斯坦福的CS106A,学的JAVA。
如果你纯粹学iOS开发,不推荐看哈佛CS50,CS50是给CS系的学生介绍整个计算机世界的框架,讲的内容比较多,进度比较快,对iOS开发其实有点累赘了。(臣妾有点跟不上啊!!)
计划安排是一天一课,看课程要求的书(至少看完一本)及大部分作业。这一阶段重点不是语法,而是以下3个目标。
目标:
1. 让自己对编程这件事感到适应。
写hello world。
怎么写function, 怎么调用function。
全局变量,局部变量这类基本知识点。
都是基本的东西。看看书,写多两个程序就欧啦。

2. 掌握编程语言的基本要素。
编程语言4个要素:
a. 基本的数据类型:整数,实数,character, string, boolean
b. 基本的运算符号:+-×/><++--那啥的
c. 怎样输入输出
d. 怎样控制程序:sequence,selection,loop

3. 了解编程范式
面对过程编程。
面向对象编程。

第二步:上手iOS!
时间预计:2星期
强烈推荐CS193P,老头子讲的超级好!我的很多东西(对象思维啥的)是在这里跟着做练习的时候才真正明白的(好啦,也可能是上一堂课练习做得少的原因)。如果等到9月应该itunes U上会开始教iOS 7了。网易公开课的是2010年iOS 5版的,前10堂课,也行。(iTunes U上有完整的课)
CS193P说有prerequisite,一开始被吓到,事实证明还是可以学下去的。头两节课一头雾水,没关系,把itunes U上的课件下载下来,把所有代码打出来,然后一个个元素对应之前学的语言匹配,再不懂先放着,继续学后边的,过几天打多点代码就懂了。
感觉学5、6堂课,一个星期左右就可以开始进入下一阶段自己做东西了。之后用啥学啥,每堂课都有主题的。速度慢点的同学们,这阶段跟我一样准备两个星期吧!

第三步:开发app!
时间预计:2星期(本人...1个半月,实在不好意思说出口)
这个时间就可长可短啦,还包括美工,交互啥的。坚持要用啥学啥的原则,其实就是知道iOS SDK都有什么组件,每个组件有什么function而已。stackoverflow, Github, apple sample code多上,搜索引擎多用。如果有个师傅,这个阶段真的是进步神速。

好的!不出意外,你的第一个app就这么新鲜出炉了!从今天开始,成为一个冷艳逼格高尚的iOS开发者吧!

======================================================================
这种学习开发方法弊端是基础不牢,后期提高需要自己重新補上C知识,毕竟Objective是基于C的语言。
但优势也是相当明显的,就是快速消除文科生对编程的恐惧!对于常规的,C → C++ →Objective C这样扎扎实实,动辄半年熟练掌握一个语言的缓慢进程,一想到就悲从中来,让想学习开发的大部分人第一步都不敢迈出。
经验纯粹由一个刚入门可能还全身bug的菜鸟分享给连门都还没入的菜鸟们,有错误的地方,请各位高手指正,让更多人能学会编程,享受创造产品的乐趣!
两个月前连 OC 都不会。这个月18号提交了 APP Store,这周二审核被拒,原因是在 iPad 上有闪退。不知道 iPhone 应用也要在 iPad 上测试。又提交了一次。第二个应用预计下周末提交。第二个应用相对简单一些。

起因应该算是从今年 WWDC 发布 swift,之后几天看了 swift,于是就无知的萌生了搞 iOS 开发。上了 apple 的 "贼船",结果发现不学 OC 完全不行,现有的各种资料让你不得不去学 OC。

还有一部分原因是感觉 iOS 上的应用实在太赞了,用 Android 的时候没什么特殊的感觉,应用就是应用,iOS 的感觉应用就是个艺术品,精赞,让你不得不佩服。尤其吸引我的是各种动画效果。有时候感觉看的心都酥了。今晚花了点时间整理了下我收集的 github 上iOS 动画效果 。有兴趣的可以看这里 jackyzh/awesome-ios-animation · GitHub .

正好假期没什么事情,就开始天天学,天天写,看过一点点斯坦福的那个视频,觉得太慢了,也没找到特别适合的书,因为更新太快有的教程教你操作 Xcode3 4 时候连个按钮都找不到就很崩溃。

后来找到了 iOS 7 的教程 在这里 iOS 7 App Development Essentials 就跟着大概过了一遍。当然我感觉第一个应用用不到的就不看了。只是为了入门。

看来大概一个星期就开始写,边学边写,基本上靠 Google 和 StackOverFlow 写完的,比如要修改 navigation bar 的颜色,就 Google custom navigation bar 或者 navigationbar color , 百分之九十九的问题都能通过这两个途径解决。之前试着连续登录 StackOverFlow 以拿到 Enthusiast 的 Badge 无果,这些天不用刻意登录都拿到了。。其次是借助 github 上的开源项目。以及 code4app 上看别人是怎么写的。

两个月下来感觉 iOS 入门还是相对困难的,cocoa touch 的内容太多了,即便是有两年开发经验的也会有没听说过的功能。

回到正题,iOS 入门需要哪些知识,其实并没有什么,当然有 C/C++ 的经验以及面向对象和设计模式的思想绝对有优势,但没有也不是不可以,不要考虑太多,直接上手,项目驱动,一定会经历一段很艰难,感觉什么都特别困难的时期,多 Google 入门了就好说了~ 至于入门需要多长时间,这个要因人而异了,不过要熟悉,至少也得大半年,甚至更久。每年的 WWDC 还会给你新的东西去学。

另外,Dash - Documentation Browser, Snippet Manager 用于查文档提高不少效率,写 iOS 文档还是最靠谱的,apple 也提供了一些例子。可以参考。

共勉~