×

注意!页面内容来自https://www.sohu.com/a/113835618_464076,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页

这可能是最详细的iOS学习入门指南(含书目/文档/学习资料)

零基础小白如何进行iOS系统学习?

入门后如何进阶,进而成为资深的iOS专家?

iOS开发者的能力图谱是怎么样的?

想要走向专家级别,需要怎样的知识体系?

网易阿里等互联网公司需要怎样的iOS人才?

……

这些问题恐怕是想要入行iOS或者初入行1-3年的开发同学经常碰到的,今天我们邀请到了网易移动技术团队负责人张平,从这五个问题的角度来为大家答疑解惑。

张平 | 网易移动技术团队负责人

多年浏览器内核、Java解释器研发经验;负责过多款APP和一些基础SDK的研发;热爱优秀的编程语言。

1

零基础小白如何进行iOS系统学习

首先,学习目标要明确;

其次,有了目标,要培养兴趣,经常给自己一些正面的反馈,比如对自己的进步进行鼓励,在前期小步快走;

再次,学技术最重要的一点就是多动手。

推荐书目:

《Objective-C基础教程 》

《iOS编程》

《iOS开发指南》

推荐两个开源的APP:SegmentFault、懒人笔记

2

基础入门后,如何进行高级进阶

2.1 原理和基础:掌握扎实的原理和基础是进阶的必要条件

首先是语言。 入门时候可能只要对语言看得懂,会写即可。但是在进阶阶段,看懂会写是远远不够的。

这个时候,编码规范就很重要,我们不能随心所欲的写,推荐书目《Effective Objective-C2.0》。

除此之外,我们还需熟练掌握Objective-C Runtime。我推荐的素材有http://opensource.apple.com/source/objc4/ ,这门语言比较好的是它开源,所以我们可以去看它的源码。第二是苹果的这篇文档Objective-C Runtime Programming Guide ,我们可以仔细去阅读。从我自身经历来看,对Objc_msgSend实现细节的理解程度很大程度上反映了我们对 Objective-C Runtime的掌握程度。再推荐大家一篇文档 The Swift Programming Language ,苹果官方的文档,大家可以反反复复去看。

2.2 iOS GUI学习

我听到有些人说GUI学习太简单了,我随便看看能刷几个页面就可。还会有这样一种说法,GUI的代码太难看了。

我个人十分重视GUI,我认为这是真正挑战的地方,因为这能真正反映我们的熟练程度,是否真正懂得其背后的设计原理。

APP Guide:

l View Programming guide

l View Controller Programming Guide

l Event Handling Guide

l Drawing and Printing Guide

l Core Animation Programming Guide

2.3 Xcode学习

工欲善其事,必先利其器。在我看来,Xcode就是这个器,因此需要十分重视。

Apple Guide:

| Xcode Overview

| Xcode Project Management Guide

关于Xcode的流程,我们需要清晰的知道Xcode编译、链接、打包的流程,配置和Xcodeconfig的操作。另外,还需知道Xcode管理多工程、多Target. 还需熟练使用cocoapods、plugin。当然,IIvm调试工具也是必不可少的。

2.4 网络

理解NSUPLConnection、NSURLSession、NSURLProtocol

Apple Guide:

| URL Loading System Programming Guide

| Introduction to CFNetwork Programming Guide

2.5 多线程

推荐书目《Objective-C高级编程ios与OS X多线程和内存管理》,这本书的特点是透彻,全面。

Apple Guide:

| Concurrency Programming Guide

| Threading Programming Guide

2.6 逆向安全(了解层面)

《iOS应用逆向工程》对我们去了解逆向这些事情和应用的保护是很有帮助的。

Apple Guide:

| Keychain Services Programming Guide

2.7 学习资源

| WWDC Session

| Objc.io

此外,优秀的开源库也值得我们学习,如:

| SDWebImage

| AFNetworking/Restkit

| Facebook的三个库:AsyncDisplayKit/pop/ReactNative

ReactiveCocoa

3

iOS能力清单

3.1 GUI

自定义UI、熟悉UI渲染机制

掌握基本排版机制,掌握AutoLayout

熟悉事件传递机制,自定义手势

掌握基本动画,动画原理

3.2 Controller

熟悉基本ViewController使用、transition

熟悉MVC等设计模式

3.3 熟悉常见网络库使用

熟悉NSURLConnectionNSURLSessionNSURLProtocolAFNetworking熟悉Cachecookie管理

3.4 熟悉Sqlite使用,熟悉常见ORM系统设计和实现,熟悉系统常用本地存储机制

熟悉CoreDatasqliteUserDefault

3.5 熟悉多线程消息传递,同步机制,线程池设计和实现

掌握NSOperation GCD Runloop 机制和实现

3.6 熟悉音频、视频基本概念,熟悉相关系统接口

熟悉拍照、录像等相关接口

3.7 编程语言

熟悉C/C++、Objective-C、Swift

3.8 性能优调

熟悉移动端常见性能问题和解决方案:主线程CPU密集操作,主线程IO操作,排版、渲染耗时

网络性能分析和调优(《Web性能权威指南》)

熟练使用Instrument进行性能调优

3.9 安全

熟悉常见iOS应用安全机制(keychain,codesign),熟悉常见应用数据保护机制

熟悉常见加解密算法

熟悉iOS逆向与安全

4

走向专家的知识体系

内功而非招式,更看重基础的掌握。 所以,我们需要加强自身实际的能力,主要包括:

l 数学基础

l 操作系统

l 程序的编译上,链接与加载,推荐《程序员的自我修养》

l ARM体系架构,推荐ARM体系结构与编程》

l 学习多范式的编程语言

l 设计模式

l 计算机网络

l 数据库

5

企业需要怎样的iOS人才

| 大公司更看重基础,成长性

| 技术热情

| 系统学习的能力

| 听说能力

| 敢于承担、敢于挑战

专属免费福利

网易云课堂iOS开发微专业体验课

网易云音乐资深iOS开发工程师亲自授课

课程视频+小组讨论+小作业+作业点评+免费直播

N管其下,教你100%学会iOS开发中的“UIView动画”

体验价超值原价:5元

iOS笔记粉丝价:免费!免费!免费!

↓↓课程免费码领取方式↓↓

Step1:扫描下图二维码,进入体验课学习QQ群

Step2:进群查看群公告,内附具体的兑换方式;

Step3:开始学习;

进群暗号:iOS笔记

了解更多网易云课堂iOS体验课详情,请戳“阅读原文”~返回搜狐,查看更多

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()