iOS 开发怎么入门

老牛浏览 350评论 0发表于

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

学习路线

1. 对编程的基本认识

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

2. Objective-C 语言学习

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

2.1 推荐书籍

《Objective-C基础教程》
《Objective-C程序设计》

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

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

  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语言)

3.1 推荐书籍

《精通iOS开发》

3.2 第一个 iOS 应用

苹果官方有个做iOS应用的教程——《马上着手开发iOS应用程序(Start Developing iOS Apps Today)》

强烈建议以这个 Demo 作为你的第一个 iOS 应用,因为这个教程能让你对一个 iOS 应用的搭建有个非常全面、细致的认识。完成了这个 Demo 后,就可以结合斯坦福公开课学到的东西创建属于你自己的 APP 了。

3.3 需要掌握的地方

  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

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

写在最后的话

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

数据结构、算法、操作系统、数据库、计算机网络、编译原理等。因为这些知识是你的「内功」,这些基础直接决定了你在这个领域的天花板所在的位置。

点赞
收藏
暂无评论,快来发表评论吧~