博客> iOS开发学习路线
iOS开发学习路线
2019-08-20 17:51 评论:0 阅读:527 lvhahaha
iOS学习路线

一.iOS定位

iOS定位 简介:这里的定位,仅仅代表我个人意见,仅符合本笔记如何学习从哪里开始学习,怎么去学习来说.

  • 尚未入门
  • 是否了解Mac
  • 是否了解Xcode
  • 是否了解Objective-C
  • 是否会使用UI控件.
  • 如果上面的都不了解,那说明你还没有入门,请从iOS学习路线开始学习. 如何判断自己是否入门

初级iOS开发 iOS中级开发说白了,就是你学会了基本的UI界面搭建,上架,沉淀一段时间,你觉得自己还适合这门行业,还适合,还能接受 这个所谓的iOS开发工程师的行业.你就可以说是一名中级iOS开发. 这个沉淀时间 大约在1年的实际工作中,就可以完成. 如果你觉得这门行业不适合你,请仔细结合自身情况,是否转另一门计算机语言,还是彻底转行.

  • 是否了解AFNetworking 的实现原理
  • 是否了解SDAutolayout/Masonry 一种布局库的原理
  • 是否能够处理基本的iOS崩溃原因/无法编译原因/无法上架原因?
  • 是否拥有了一定的工作效率,稳定的工作效率.(而不是说,上面派了一个活下来,忙都忙不完,天天加班,还一堆bug)
  • 是否能够处理第三方库引起的崩溃.
  • 是否可以很好的融入工作环境,完成每一阶段的工作指标,而不会让自己疲惫不堪.
  • Xcode的使用
  • 第三方库的灵活使用
  • AFN
  • MJRefresh
  • 各种网站的使用 说明:作为一名初级的iOS开发,你需要具备以下技能 必备技能(全部都会的情况下查看下一项) 如何判断是否可以升阶 结论

中级iOS开发 如何判断是否可以升阶 结论

  • 应用的内存处理
  • 应用的推送处理
  • 应用的模块化/单元测试
  • 应用的第三方集成/集中化管理/稳定迭代
  • 阅读强大的第三方源码/拥有快速上手新的第三方库的能力.
  • 能够接受各种新功能的开发(这里是指,即使你没有做过,但是你仍然可以凭借着学习,解决任何业务需求:例如:蓝牙.AR.摄像头.硬件交互.等)
  • 清楚明白数据的传递方式,应用与后台如何交换数据,交换数据的过程,结果,格式.
  • 多线程的灵活使用.
  • 各种并发事件的处理/以及界面的合理性/流畅度
  • 设计模式的灵活使用. 说明:作为一名中级的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的应用,多学习大公司以及流行应用是如何开发应用的,其中流行的,新颖的开发界面的方式可以总结下来,猜想在大应用中,别的程序员是如何开发的.
  • 代码架构.
  • 代码架构文章推荐:https://casatwy.com/iosying-yong-jia-gou-tan-kai-pian.html
  • 各种工具、第三方的使用. 其实每个项目的建立都大致分为:项目框架搭建,原生界面搭建,嵌入第三方库.有很多功能都会用到第三方库,大多数第三方库都是本着快速开发,完整功能实现的目的存在的.需要开发人员能够根据业务逻辑不同,选择最好最优质的第三方库进行使用.
  • 代码封装
  • 当使用较多第三方库后,要求开发人员学习其开发特点,以及其封装手法,运用在自己的项目上,封装自己的代码.灵活运用.
  • 完整项目.
  • 开发技巧
  • 个人心得

三.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
  • 控制器生命周期
  • 应用生命周期

开发者账号&上架流程

  • 个人
  • 公司
  • 企业
  • https://www.jianshu.com/p/6601a241da8e
  • https://www.jianshu.com/p/7c98651d3532
  • https://www.jianshu.com/p/9b994a019ee6 文章推荐:
  • 常用知识
  • 响应链
  • 异常捕捉
  • 国际化
  • 代码模块化
  • 类别/扩展
  • 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
  • 界面渲染
  • Charles花瓶抓包
  • 区分模拟器/真机项目
  • 常用知识
  • Block
  • 蓝牙/传感器
  • 物理仿真器UIDynamic
  • 通讯录获取
  • 音频/视频/二维码
  • 真机调试
  • 苹果内购/广告
  • 推送/远程推送
  • 单例模式
  • 多线程
  • 网络请求
  • 定位
  • 源代码管理Git

五.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)

  • ijkPlayer
  • 直播的技术分析与实现
  • 算法
  • 简介
  • 冒泡排序
  • 快速排序
  • 插入排序
  • 归并排序
  • 二分查找
  • 希尔排序
  • 动态规划
  • 堆排序

六.官方Kit整理

  • ARKit.
  • SiriKit
  • HealthKit
  • HomeKit
  • SearchKit
  • IOKit
  • PDFKit
  • CloudKit
  • GameplayKit
  • SpriteKit
  • SceneKit
  • MusicKit
  • ResearchKit
  • MapKit
  • StoreKit
  • AVKit
收藏
3
sina weixin mail 回到顶部