李洪强iOS开发之-入门指南
李洪强iOS开发之-入门指南
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 guidel View Controller Programming Guidel Event Handling Guidel Drawing and Printing Guidel 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 熟悉常见网络库使用熟悉 NSURLConnection, NSURLSession, NSURLProtocol, AFNetworking, 熟悉 Cache, cookie 管理
3.4 熟悉 Sqlite 使用,熟悉常见 ORM 系统设计和实现,熟悉系统常用本地存储机制熟悉 CoreData, sqlite, UserDefault
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开发之-环信05_EaseUI 使用指南
李洪强iOS开发之-环信05_EaseUI 使用指南 EaseUI 使用指南 简介 EaseUI 封装了 IM 功能常用的控件(如聊天会话.会话列表.联系人列表).旨在帮助开发者快速集成环信 SDK. ...
- 李洪强iOS开发之-环信02.2_环信官网下载环信 SDK
李洪强iOS开发之-环信02.2_环信官网下载环信 SDK 移动客服即时通讯云 iOS SDK 当前版本:V3.1.4 2016-07-08 [ 版本历史 ] | 开发指南 | 知识库 | Demo源 ...
- 李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档
李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档 SDK 2.x 至 3.0 升级指南 环信 SDK 3.0 升级文档 3.0 中的核心类为 EMClient 类,通过 EMCl ...
- 李洪强iOS开发之添加手势
李洪强iOS开发之添加手势 02 - 添加手势
- 李洪强iOS开发之- 实现简单的弹窗
李洪强iOS开发之- 实现简单的弹窗 实现的效果: 112222222222223333333333333333
- 李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView
李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView 11111222
- 李洪强iOS开发之苹果使用预览截图
李洪强iOS开发之苹果使用预览截图 01 在预览的图片中选中你要截得区域 02 - command + C 03 - Command + N 04 - Command + S (保存)
- 李洪强iOS开发之通知的使用
李洪强iOS开发之通知的使用 01 - 在A中发送通知 02 - 在B中监听通知 03 - 在B中通知出发的方法 04 - 在B控制器viewDidLoad调用通知
- 李洪强iOS开发之后使用纯代码实现横向滚动的UIScrollView
李洪强iOS开发之后使用纯代码实现横向滚动的UIScrollView (VTmagic是一个实现左右滚动的控制器的框架,也可以实现此功能) 实现的效果: 01 - 创建四个控制器 02 - 定义需要 ...
随机推荐
- spring junit4 单元测试运行正常,但是数据库并无变化
解决方案 http://blog.csdn.net/molingduzun123/article/details/49383235 原因:Spring Juint为了不污染数据,对数据的删除和更新操作 ...
- nginx+django+uwsgi+https 配置问题点
- ssl 证书申请 申请域名的网站申请下载对应文件即可 - nginx 配置 https [root@VM_2_29_centos conf]# nginx -t nginx: [emerg] u ...
- charles-修改发送的接口数据测试页面样式
一.痛点: 1. 界面上数据准确性无法比对 2. 界面上几乎没有可测试数据 3. 消息条数超过99时的显示逻辑验证(难道真的要造100条新的未读消息?) 4. 更换界面图片时必须找相关接 ...
- 【LeetCode】Jewels and Stones(宝石与石头)
这道题是LeetCode里的第771道题. 题目要求: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝 ...
- 九度oj 题目1028:继续畅通工程
题目描述: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用 ...
- MySQL主从复制报错一致性问题解决
当MySQL主从复制中因为不一致报错的情况,我们第一时间想到的就是使用pt-table-checksum来进行检查主从一致并进行修复,但是使用此工具的前提是主从复制线程都为on状态, 所以这种情况下可 ...
- 开源中国+soucetree
参考链接:http://www.cocoachina.com/programmer/20151012/13682.html 1.创建一个工程
- HackerRank# Fibonacci Modified
原题地址 竟然64位都要爆,这是要大整数乘法的节奏吗?我才不要写大整数乘法呢,用Ruby干掉 代码: # Enter your code here. Read input from STDIN. Pr ...
- 2014·NOIP 新的历程,新的开始
10.12 从9月1号开始奋战,到了今天终于重新把所有普及和提高的复赛题全部AC了.40多天AC130多道想想也是醉了,也许是机房一群大神给予我的压力吧. 想想暑假,整天玩游戏,与此同时,CZL.CY ...
- C/C++怎样传递二维数组,转载自CSDN
用二维数组作为参数传递(用二维数组处理矩阵),但是希望接受传递二维数组参数的函数可以处理任意维度的数组(希望矩阵的行数和列数都是不固定的). [以下转帖] ---------------------- ...