iOS开发知识体系

之前看过一篇博客,博主梳理一个iOS开发知识与能力体系的思维导图,点击这里传送。作者梳理得非常不错但是扩展得非常大。如果是对于初学者来说,看着会被吓跑。在这里我来尝试梳理一下对于iOS初学者的知识体系。

开发环境

Mac

Mac mini、Mac book、iMac、黑苹果、OS X虚拟机都行,但真要好好搞iOS开发那就最好不要黑苹果和虚拟机,这样会直接影响你对iOS开发的兴趣。同样,如果你用的是一台MacBook,这样会大大增加你对iOS的开发兴趣(MacBook最好的程序员电脑)。PS: 如何优雅的使用Mac

Xcode

到苹果开发者中心 下载 并安装。目前可以直接从Xcode 6开始入手了。
这里告诉你如何简单的使用Xcode

到此为止你已经能够安静开发出一个跑在iOS模拟器上的“Hello world”

开发者账号

非必须,如果你想将自己的程序跑在iPhone上的话,它就必不可少了,当然,如果你不是独立应用开发者的话,一般你所在的企业应该都有,让Agent或者Admin邀请你加入就可以了。
这里告诉你怎么理解开发者账号

开发语言

对于任意一门新的技术来说,首先我认为学习其语言肯定是必须的也是首要的,对于iOS开发也不例外。就目前而言,Objective-C、C语言、Swift这三种语言都应该要有所了解,当然重点还是Objective-C。

Objective-C 重中之重,必修必精。 学习地址

C语言 初学需了解,进阶必修。

Swift 未来之星,迟早要精。 学习地址/中文版

iOS SDK

iOS的SDK学习可能是初学者需要耗时最多的一个知识。因为其中有大量的库需要我们来学习掌握。其中最基本的几个为:

Foundation.framework

在你学习使用iOS的过程中,你会碰到大量的"NS"前缀的类库,这些类库基本上属于Foundation.framework,它是iOS开发的核心库,其中包括:常用数据结构(NSArray/NSDictionary/NSString 等)、网络(NSURL../NSHTTP..)、多线程(NSThread/NSNSOperation)等。

UIKit.framework

库使用"UI"为前缀的类库被包含在这个framework中,这些大部分是系统的UI层面的控件。如UIViewController、UIView、UIButton、UILabel等。使用这些控件才能构建出一个完整的APP。

QuartzCore.framework

iOS中绚丽而平滑的动画效果,是吸引人的一大利器,如果你想做出这样的效果,那你就得了解这个库了。iOS的核心动画的API都被包含在这个framework中,学会使用它才能让你的APP更加亮眼。


当然,iOS的SDK中还有很多的framework,它们各自负责着自己的一部分,对于初学者来说,能将以上几个framework的API了解清楚,就已经能做出一个完整的属于自己的APP了。

如何学习这些framework呢?

1.主动学习,最佳入口当然是最原始的。

img

在Xcode的导航栏张找到对应的framework展开Header就可以看到对应的各类的头文件,点击进去就可以看到各个类的公共方法,并且有比较详细的注释。

2.被动学习,在开发过程中或者学习过程中,看到某些方法,不知道其具体的意思和用法,则可以在Xcode中通过 ⌘ + 鼠标单击当前方法就可以跳转到定义的头文件中去查看使用方法,或者通过 iOS Developer Library 搜索查询。

网络

网络这一块不仅仅指学会使用SDK中的网络API调用,而是指要去理解网络编程。
你需要知道HTTP协议消息结构GET/POST方法常见的状态码的意思Request/Response
你还需要知道与服务器通信使用的数据格式如:json、xml。

数据库

数据库你需要知道基本的SQL语句 select/update/insert/delete的操作;
需要知道怎么连接表查询:外连接、内连接、自连接等;
需要知道实体数据一对一、一对多、多对多关系如何设计数据库表。

GitHub

iOS有着很浓厚的开源精神,在GitHub上有许多优秀的开源项目,在真正的开发过程中,某些著名的开源库大家也都广泛的使用着。如:

AFNetworking

SDWebImage

MJRefresh

EGOTableViewPullRefresh

JDStatusBarNotification

在开源社区还有着大量优秀的代码,我们不仅仅是可以直接使用这些代码从而提高我们的开发效率,而且还可以学习优秀的iOS开发者的代码风格以及实现思路。

最后的推荐

官方正宗,一起武功的起源

objc中国

matt 大神博客

猫神大神博客

唐巧博客

阳神

后续会继续针对某些点来写一些详细的介绍。

你可能感兴趣的:(iOS开发知识体系)