初级iOS开发
iOS中级开发说白了,就是你学会了基本的UI界面搭建,上架,沉淀一段时间,你以为本身还适合这门行业,还适合,还能接受 这个所谓的iOS开发工程师的行业.你就能够说是一名中级iOS开发. 这个沉淀时间 大约在1年的实际工做中,就能够完成. 若是你以为这门行业不适合你,请仔细结合自身状况,是否转另外一门计算机语言,仍是完全转行.html
- 是否了解AFNetworking 的实现原理
- 是否了解SDAutolayout/Masonry 一种布局库的原理
- 是否可以处理基本的iOS崩溃缘由/没法编译缘由/没法上架缘由?
- 是否拥有了必定的工做效率,稳定的工做效率.(而不是说,上面派了一个活下来,忙都忙不完,每天加班,还一堆bug)
- 是否可以处理第三方库引发的崩溃.
- 是否能够很好的融入工做环境,完成每一阶段的工做指标,而不会让本身疲惫不堪.
- Xcode的使用
- 第三方库的灵活使用 AFN MJRefresh 各类网站的使用
说明:做为一名初级的iOS开发,你须要具有以上技能
必备技能(所有都会的状况下查看下一项) 如何判断是否能够升阶 结论前端
中级iOS开发
如何判断是否能够升阶 结论python
- 应用的内存处理
- 应用的推送处理
- 应用的模块化/单元测试
- 应用的第三方集成/集中化管理/稳定迭代
- 阅读强大的第三方源码/拥有快速上手新的第三方库的能力.
- 可以接受各类新功能的开发(这里是指,即便你没有作过,可是你仍然能够凭借着学习,解决任何业务需求:例如:蓝牙.AR.摄像头.硬件交互.等)
- 清楚明白数据的传递方式,应用与后台如何交换数据,交换数据的过程,结果,格式.
- 多线程的灵活使用.
- 各类并发事件的处理/以及界面的合理性/流畅度
- 设计模式的灵活使用.
说明:做为一名中级的iOS开发,你须要具有如下技能
必备技能(所有都会的状况下查看下一项)ios
高级iOS开发
- 应用的组件化/架构分层
- 数据结构,操做系统,计算机网络都有本身的了解和认知
- Shell脚本/python/Ruby/JS 至少会一种.
说明:做为一名高级的iOS开发,你须要具有如下技能(我不是高级开发,因此这里只能给大家提供建议.)
必备技能程序员
详细学习路线
学习路线
简介
这里只简单阐述一些概念性的东西,以及学习路线规划,真正的知识请从iOS基础知识点往下开始看.
-
Objective-C算法
- 概念
- 编译原理
- 程序启动原理
- 结束程序.
- 监听系统事件
- Info.plist
- .pch
-
App组成数据库
- 打开程序
- 执行main函数
- 执行UIApplicationMain函数
- 初始化UIApplication(建立设置代理对象,开启事件循环) 语法.(此处定义可能略失严谨,口头教学为主)
-
基础语法设计模式
- 对象.
- 属性
- 数据类型
- 方法
- 继承
- Frame/CGRect/CGPoint和CGSize
- 内存(针对MRC下状况进行介绍)
- ARC/MRC
- 弱引用/强引用
- Assign,retain,copy,strong
- import 和@class的区别
-
Xcode使用浏览器
首先是针对Xcode菜单栏,但愿本身能够去翻译一下每一个菜单里每项功能的英文都是什么意思,有助于本身熟悉并加深印象的使用Xcode.服务器
-
熟悉Xcode的各个功能.
-
UIKit控件.
-
界面分析(下载App进行学习).
-
界面适配
在这里推荐有兴趣的开发人员,下载并分析,AppStore中的每项分类的top50的应用,多学习大公司以及流行应用是如何开发应用的,其中流行的,新颖的开发界面的方式能够总结下来,猜测在大应用中,别的程序员是如何开发的.
代码架构文章推荐:casatwy.com/iosying-yon… 各类工具、第三方的使用.
其实每一个项目的创建都大体分为:项目框架搭建,原生界面搭建,嵌入第三方库.有不少功能都会用到第三方库,大多数第三方库都是本着快速开发,完整功能实现的目的存在的.须要开发人员可以根据业务逻辑不一样,选择最好最优质的第三方库进行使用.
-
代码封装 当使用较多第三方库后,要求开发人员学习其开发特色,以及其封装手法,运用在本身的项目上,封装本身的代码.灵活运用.
-
完整项目.
-
开发技巧
-
我的心得
小编这呢,给你们推荐一个优秀的iOS交流平台,平台里的伙伴们都是很是优秀的iOS开发人员,咱们专一于技术的分享与技巧的交流,你们能够在平台上讨论技术,交流学习。欢迎你们的加入(想要进入的可加小编微信)。18174412518
iOS基础知识点
iOS基础知识点
如何学习iOS
开始涉猎不止于iOS领域中的知识,会去了解相关职位的基础知识,例如前端和后台或者服务器运维,或者项目相关知识,具体往本身的职业规划靠拢
- 多看开源或者注明的第三方库.
- 收藏并阅读各类大神的博客或者论坛.
- 开始考虑项目中的细节优化,内存处理和耗电状况
- 打好基础,学习OC中各类经常使用语法.
- 学习如何上架,上架会由于什么被拒,了解App上架规则.
- 多学习官方说明文档.
- 刚刚入门(如何学习)
- 刚刚入职1年(如何稳定)
- 入职3年(如何进阶)
- 框架的学习
- AFNetworking
- SDAutoLayout
- YYKit
- SDWebImage
- MJRefresh
- MJExtension
- Bugly
- Qiniu
- Masonry
- TZImagePickerController
- Hyphenate_CN
第三方框架
苹果自带框架
基础UI控件
- UILabel 标题栏
- UIButton 按钮
- UIImageView 图片视图
- UITextField 文本输入框
- UITextView 文本展现视图
- UIProgressView 进度条
- UISlider 滑动开关
- UIGesture 手势
- UIActivityIndicator 菊花控件
- UIAlertView(iOS8废除) 警告框
- UIActionSheet(iOS8废除) 操做表单
- UIAlertController(iOS8出现) 警告视图控制器
- UIScrollView 滚动视图
- UIPageControl 页面控制器
- UISearchBar 搜索框
- UITableView 表视图
- UICollectionView集合视图
- UIWebView网页浏览器
- UISwitch开关
- UISegmentControl选择按钮
- UIPickerView选择器
- UIDatePicker日期选择器
- UIToolbar工具栏
- UINavigationBar通知栏
- UINavigationController通知视图控制器
- UITabbarController选择视图控制器
- UIImagePickerController相册
- UIImage图片
- Xcode的使用
- 内存监测
- 全局断点
- 全局搜索替换
- 界面适配
- StoryBoard
- 界面预览
- 基础操做 状态栏
- 偏好设置
- Xcode Source Control 源代码管理器
- Xcode workSpace工做组
- Xcode Scheme 计划
- Xcode AutoLayout 约束
- Xcode CoreData数据库
- LLDB 断点调试
- 数据存储
- 沙盒存储
- NSDictionary归档
- NSUserDefault
- CoreData
- NSKeyedArchiver
- SQLite
- FMDB
- plist
- App生命周期
- alloc
- init
- 建立View
- ViewDidLoad
- ViewWillAppear
- ViewDidAppear
- ViewWillDisappear
- ViewDidDisappear
视图将要消失 (作一些视图将要消失时的UI的处理)
视图已经消失 (作一些视图消失以后数据的处理)
- viewDidDisappear销毁定时器
- dealloc
- didReceiveMemoryWarning
- 控制器生命周期
- 应用生命周期
- 开发者帐号&上架流程
经常使用知识
- 响应链
- 异常捕捉
- 国际化
- 代码模块化
- 类别/扩展
- iPad与iPhone的区别
- 静态库
- 内存管理
- Quartz2D
- 真机调试
- isKindOfClass 与 isMemberOfClass
- Return/Break/Continue
- Core Animation
- CALayer
- AutoLayout
- KVC/KVO
- 谓词NSPredicate
- 帧动画
- 界面旋转+状态栏隐藏
- plist文件
- 通讯
- NS系列
- 宏定义
- 视图层次
- 切换视图
- 深浅拷贝
- 对象序列化
- 写入文件
- 获取沙盒路径
- 翻转视图
- 延伸视图
九大基本数据类型
- 九宫格
- 坐标比较
- UIColor 、CIColor和CGColor 之间的关系
- 画图
- 静态变量
- tag值
- 延时执行方法
中级知识点
设计模式
- UIScrollView/UITableView/UICollectionView 的嵌套
- 动态行高
- 通知/代理/block
- 程序启动原理
- 触摸事件/手势
- 图文混编
- Runtime
- NSRunLoop
- GCD
- ReactiveCocoa开发
- 3DTouch
界面渲染
区分模拟器/真机项目
经常使用知识
-
Block
-
蓝牙/传感器
-
物理仿真器UIDynamic
-
通信录获取
-
音频/视频/二维码
-
真机调试
-
苹果内购/广告
-
推送/远程推送
-
单例模式
-
多线程
-
网络请求
-
定位
-
源代码管理Git
-
iOS高级知识点
-
iOS高级知识点
-
Socket
-
XMPP
加密
- MD5详解
- Base64加密解密
- RSA非对称加密
- AES对称加密
音频
基础
- Core Audio
- Audio Toolbox
- OpenAL
- AVFoundation
- Speex语音聊天
- AudioQueue/AudioSession
- Speex简介
- 视频
- AAC视频.H264推流
- P2P传输 直播
RTMP协议
- RTMP直播应用与延时分析
- 若是作一款inke版的App
- 推流发布和播放RTMP
- FFmpeg
- 基于FFmpeg的推流器
- HLS流媒体传输协议(HTTP Live Streaming)
- FFmpeg
- ijkPlayer
- 直播的技术分析与实现
算法
简介
- 冒泡排序
- 快速排序
- 插入排序
- 归并排序
- 二分查找
- 希尔排序
- 动态规划
- 堆排序
官方Kit
- ARKit.
- SiriKit
- HealthKit
- HomeKit
- SearchKit
- IOKit
- PDFKit
- CloudKit
- GameplayKit
- SpriteKit
- SceneKit
- MusicKit
- ResearchKit
- MapKit
- StoreKit
- AVKit
转载连接:blog.csdn.net/wtdask/arti…