学习和开发iOS也有三年了。看了不少的书,翻了不少的Blog,也做了蛮多的笔记。但是一直没有非常系统的梳理过iOS的知识系统。
终于有这样一个时间下定决心来整理我目前认为的一套学习的知识框架。同时也写出来作为存储和分享给大家。虽然学习和开发iOS也有了三个年头,但是在这片巨大的代码海洋里,没有谁能自称什么都懂。所以出现谬误也是很正常的,这样子的一个总结同时也是促进自己对于未深入了结知识的一个学习和深入。当然也非常欢迎大家来勘误和纠正。大家共同学习嘛!
好了,闲话不多说,先把知识框架的思维导图贴出来。请见下图:
详细目录请见之后的描述。主要分成七大模块。
一、开发准备。主要粗略介绍一下iOS开发需要的软硬件基础和Xcode的简单介绍及工程创建。
二、Object-C语法层。主要粗略介绍常用的Object-C的语法以及重点介绍协议委托、Block调用和KVO这三大常用的语法。
三、iOS开发基础。对于常用的设计模式、UIKit、NIB等比较基础的开发知识做介绍,并且附加上我自己个人的理解和想法。
四、iOS开发深入。对于比较深入的iOS的开发知识,例如网络、数据层的介绍和代码介绍。
五、实践篇。实践篇会不断的更新,是对于开发过程中一些问题的解决和记录,当然由于自己以前没有什么太好的习惯,很少总结这些问题,所以目前也委托了一些网上的好友们一起来总结和撰写,目前的想法是每十个问题出一个更新篇。
六、Swift。Swift已经升级到了2.0时代,以后的发展如何谁也说不清楚,当然作为一个程序员就像歌词里唱的“怎能停滞不前”。总要不断的去学习新的知识。
七、游戏开发。其实把这一块游戏的开发放在这里是因为游戏本身是iOS不可分割的一部分。但是游戏的开发个人认为跨界是有点大的。所以只是放在这里,作为一个大纲性的介绍,没准有一天,我也就转行了呢。(笑)
大纲的简介就写到这里,其实从昨天晚上开始有这个想法,到现在写了这么比较庞大的一个大纲,我自己也是吓了一跳,觉得这个事情的确是有很大的难度的,甚至自己都做好了长达一年抗战的准备。虽然很有可能这条路会是我一个人独自走下去,而且会走很长时间。但是作为一个90后的程序员,总是想搞点大新闻的。也许这些文章终究会淹没在茫茫的Blog海当中,也聊以为是自己过去的见证吧~
与各位iOS Coder共勉。欢迎各种勘误纠错党。(毕竟我还是一直小菜鸡)
时间表:
1.2015年8月28日。初版大纲。
2.2015年8月31日。更新目录及思维导图。
附件:目录
1开发准备
1.1硬件准备
1.2软件准备
1.2.1Xcode安装
1.2.2Xcode界面简介
1.3工程创建介绍
2Object-C语法
2.1基本数据类型及基本运算
2.2数组
2.3字符串
2.4变量属性
2.5内存管理
2.6Protocol
2.7Block
2.8KVC/KVO
3iOS开发基础
3.1设计模式
3.1.1MVC
3.1.2MVVM
3.2NIB
3.2.1xib的使用
3.2.2StroyBoard的使用
3.2.3AutoLayout的使用
3.2.3.1系统AutoLayout介绍
3.2.3.2Masonry
3.3UIKit
3.3.1基础视图
3.3.1.1UILabel
3.3.1.2UIButton
3.3.1.3UIImage
3.3.1.4UIImageView
3.3.1.5UITextField
3.3.1.6UITextView
3.3.1.7UIAlertView
3.3.1.8UIActionSheet
3.3.2高级视图
3.3.2.1UIScrollView
3.3.2.2UITableView
3.3.2.3UICollectionView
3.3.2.4UIWebView
3.3.2.5UIDatePicker
3.3.2.6UIPickView
3.3.2.7UISlider
3.3.2.8UISwitch
3.3.2.9UIActivitilndicatorView
3.3.2.10UIProgress
3.3.3控制器
3.3.3.1UINavgationViewController
3.3.3.1.1NavView
3.3.3.1.2NavViewController
3.3.3.2UITabbarController
3.3.3.3UIPageController
3.3.3.4UISwitcher
3.3.3.5UIStepper
3.3.4Windows、Controller、View的认识
3.3.5横竖屏幕控制
3.3.5.1代码控制
3.3.5.2SizeClasses
3.4自定义视图
3.4.1带Placeholder的UITextView
3.4.2评分控件
3.4.3无限循环ScrollView
3.5视图手势的监控
3.6系统判断
3.6.1判断机型
3.6.2判断系统
3.6.3判断软件版本号
3.7格式校验
3.7.1正则表达式
3.7.2时间戳转换
3.8开发账号申请、发布流程介绍
3.9开发文档生——Appledoc
3.10本地化多语言配置
3.11CoreAnimaion初探
3.11.1基础转场动画
3.11.2基础动画
3.12常用集成库介绍
3.12.1支付宝
3.12.2银联
3.12.3微信支付
3.12.4ShareSDK
3.12.5友盟
3.12.6推送
3.12.6.1极光推送
3.12.6.2百度推送
4iOS开发深入
4.1网络框架
4.1.1网络情况判断
4.1.2AFNetworking
4.1.3ASI
4.1.4NSURLConnection
4.1.5CFNetwork
4.1.6Socket
4.2数据存储
4.2.1文件读写操作
4.2.2SQLite 3
4.2.3CoreData
4.2.4NSUserDefault
4.2.5UIKeyChain
4.3数据解析
4.3.1JSON
4.3.2XML
4.4数据加密
4.4.1MD5
4.4.2SHA 256
4.4.3BASE 64
4.5多线程
4.5.1NSThread
4.5.2NSOpertionQueue
4.5.3GCD
4.6地图定位
4.6.1MapAPI
4.6.2CoreLocation
4.7二维码识别及生成
4.7.1Zbar
4.7.2Zxing
4.7.3系统二维码
4.8录音
4.9多媒体播放
4.9.1音频
4.9.2视频
4.10摄像
4.10.1拍照
4.10.1.1官方简单调用
4.10.1.2自定义拍照
4.10.2摄像
4.10.2.1多段摄像合成
4.10.3滤镜
4.10.3.1CoreImage
4.10.3.2GUIImage
4.11QuartzCore框架
4.12常用第三方库介绍
4.12.1FMDB
4.12.2SDWebimage
4.12.3提示框
4.12.3.1MBProgressHUD
4.12.3.2SVProgressHUD
4.12.3.3CRToast
4.12.3.4WCAlerView
4.12.4MWPhotoBrwoser
4.12.5上下拉列表
4.12.5.1MJRefresh
4.12.5.2SVPullToRefresh
4.12.5.3EGOTableViewPullRefresh
4.12.6JSONModel
4.13常用调试工具
4.13.1Paw For Mac
4.13.2Charles
4.13.3Reveal For Mac
5实践篇
欢迎转载,但请署名,不要单纯的复制,这是对你我各自的不尊重。谢谢。