iOS 开发怎么入门?2

转载 2015年07月09日 21:56:29

来自知乎


在答题之前,我要先感谢知乎上关于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很相似。


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

书籍的话,推荐《C Primer 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应用程序(Start Developing 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,加群请注明知乎。

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




原文链接:http://www.zhihu.com/question/20264108

ios 开发入门文档

  • 2013年05月08日 15:45
  • 9.35MB
  • 下载

iOS 开发 入门:真机测试

在成功加入iOS Developer Program之后,对于开发者来说,首先要实现的就是真机测试。下面详细介绍实现真机测试的过程。         先总体介绍一下实现真机测试的步骤,如下图所示: ...

iOS 开发 入门:发布应用到App Store 详细教程

对于已经完成测试的App,那就只剩下最后一个工作了,那就是将App上传到App Store。这个工作整体上看是比较简单的,能否上传成功主要看你的App有没有符合苹果对软件的要求。 下面我根据我成功发...

【IOS 开发】Object-C 入门 Xcode 环境详解

1. Xcode 环境安装 ; 2. Xcode 面板详解 : 导航面板, 检查面板, 库面板 ; 3. Xcode 帮助简介 : 快速帮助, 搜索, 代码自动提示 ; 4. 第一个 Objec...

Unity 用户手册iOS 开发入门账户设置

账户设置 在 iOs 设备上构建并运转任何代码(包含 Unity 构建的游戏)之前,有必要遵循一些过程。这些过程是发布 iOS 游戏的先决条件。 1. 向 Apple 申请变成注册的 iP...

Cocoa Touch 入门记——《精通 iOS 开发》学习心得(1) [基本控件的交互]

首先是熟悉 Xcode 界面。因为这本书的 Xcode 版本并不是最新版,而我的 MacBook 上已经装了 Xcode 5.0,所以带来了一些不便。Xcode 5.0 在创建 Single View...

如何成为一名入门级 iOS 开发者及Demo

2016-02-15  2540 文章目录 1. 基本的 CS 知识2. Swift 还是 Objective-C3. 框架和 API4. 开发中的设计模式5. 熟悉开发环境  UX/UI 1....
  • ShareUs
  • ShareUs
  • 2016年02月16日 17:13
  • 370

IOS 开发 Objective-C 入门1

#import @interface Student : NSObject{ @public NSString * _name; int _age; NSString *...

Cocoa Touch 入门记——《精通 iOS 开发》学习心得(3) [标签栏实现多视图的方法(运用 xib)]

1.委托 在创建根控制器(rootViewController)前使用委托的方法,在 AppDelegate.h 中加入输出口 @property (strong, nonatomic) UIWin...

iOS 开发怎么入门?

这是从知乎转载的,只节选了其中一个答案,看看也挺有帮助。 原文链接:http://www.zhihu.com/question/20264108 Franz Fan...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 开发怎么入门?2
举报原因:
原因补充:

(最多只允许输入30个字)