浅谈iOS进阶路线

前言

这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程.

个人学习方法分享
iOS开发学习路线

本文阅读建议
1.一定要辩证的看待本文.
2.本文仅代表个人片面观点,如有不同观点,还往及时指出.
3.本文只阐述学习路线和学习当中的重点问题.需要读者自己使用百度进行拓展学习.
4.本文所表达观点并不是最终观点,还会更新,因为本人还在学习过程中,有什么遗漏或错误还望各位指出.
5.觉得哪里不妥请在评论留下建议~
6.觉得还行的话就点个小心心鼓励下我吧~

目录
1.苹果官方文档 & 新API
2.iOS第三方库源码 & 实现原理
3.iOS标配技能
4.iOS多线程
5.iOS架构 & 代码规范
6.iOS工程化管理
7.苹果官方Kit
8.Runtime & Runloop
9.iOS FFmpeg & Opencv原理
10.iOS底层原理
11.iOS App逆向
12.iOS Swift
13.本文没有提到的知识点
14.明确自己的定位和路线

推荐书籍 & 网站推荐

苹果官网API搜索

Head First iPhone/iPad开发
iOS应用安全权威指南
高性能iOS应用开发
高级核心动画技巧
2017蚂蚁金服AR框架
京东应用架构设计
王巍-Swift4.0
SwifterTips (第四版)
OS X与IOS内核编程
OpenGL着色语言
avfoundation秘籍
CFNetwork-编程指南
通过实现TableView来理解IOS编程
七牛云直播技术分享


阅读前须知

之前那篇iOS开发路线是去年9月份做好的,删除了底层部分和逆向部分,因为本人尚在学习之中,不方便对未知领域做片面总结,包括本文,其目的是为了向大家分享,如果是我在进行iOS进阶过程中会去学习的知识点.

本文单独针对iOS开发水平提升方面,有技术方面的遗漏还望各位积极回复.

多的不说,只说两点:
1.确实觉得自己水平实力低于平均水平,明显想提升自己实力的.
2.如果有"这些技能工作当中用不到,学来干嘛?"这种想法,并不适合阅读本文.

既然大家都是想提升实力,就不要老去思考工作当中用不用的到,每个人职能就那么点,为什么会分水平高低,还不是因为人家懂得多?心里没数?别心浮气躁的,踏踏实实的提高硬实力.


iOS基础

本文主要是为了补充iOS开发学习路线那篇文章,所以到达这一步,就暂定你已经会基本的操作,以及独立开发过项目了.


苹果官方文档 & 新API

苹果开发者官网有对每个API的解释,使用,介绍.

使用百度"iOS开发"+ 空格 +"各个知识点" 来搜索学习各种自己不擅长的知识.例如:iOS开发 Runtime原理.


iOS第三方库源码 & 实现原理

我们平常经常使用第三方库,例如:AFNetworking,MJRefresh,YYKit,SDWebimage,SDAutoLayout,Masonry.

那么你是否去查看其第三方库是如何封装的?

AFNetworking是如何实现异步访问网络请求,如何处理你传给他的数据字典,在AFN内部进行了几层封装?

MJRefresh的实现原理是什么?
SDWebImage的缓存原理?
YYKit针对于FPS是如何优化的?
SDAutoLayout和Masonry的布局库原理有着怎么样的区别,其原理是依据什么进行布局的?谁的效率更高一点.
还有很多的第三方库值得我们去学习.


iOS标配技能

交流

首先,在公司日常的交流,要稳重不失礼节,出问题的时候,要针对问题提出解决方案,而不要带情绪.

当有新的业务需求提出时,根据自己的实力,给出不同的业务方案.

购物车

购物车可以说是在各个客户端,最经典的案例了,这是一个业务需求,也是涉及到增删改查,异步处理等各种业务逻辑混杂于一身的业务需求.

一个健壮的购物车,可以说是必备的业务技能.和登录注册同理.

支付

有了购物车,就一定会有支付,熟悉支付宝,微信,银联,苹果支付IAP等各种支付平台的接入,接入流程.

你可以没做过,但你不能不知道,就比如支付宝当中的加密算法RSA是属于什么加密.他是如何验证的.公钥和私钥是如何在APP和服务端存储验证的?

蓝牙

蓝牙这个就不细说了,很简单,自己写个DEMO,不要觉得自己没做过就很难,写一个连接Demo,没那么难.

实际蓝牙项目中,你可以根据业务需求,选择较为健壮,易接入的蓝牙设备.最好可以提供接入手册的那种,接入其实很简单,调试费劲罢了.

摄像头

同理蓝牙,摄像头需要选择提供成型SDK的厂家,除非你公司实力非常强大,肯购买提供底层库让你自己做SDK的摄像头.愿意投入时间成本去开发SDK.

3DTouch

写一个Demo练习一下,很简单,必备技能,但一般不是每个应用都做.

直播

直播现在中小型公司普遍采用第三方直播平台,不管你是否做过,你可以先去 腾讯云,七牛云,阿里云 开发平台进行学习,技术文档是开放的.

你哪怕知识看一遍,也比不看的要强的多.可以接入Demo测试学习一下.

当然,有些公司不想接入第三方,也有开源的框架可以自己做直播平台,这就需要三端连调,一同处理需求了.

RTMP推流

例如IJKPlayer FFmpeg,包括直播原理,你要懂.

直播的视频是遵循什么协议一个个将视频包分发到客户端,RTMP协议的优缺点等.

视频处理

视频处理,例如转码啊,旋转,编码.

不同格式的处理,视频大小的处理,为什么QQ和微信的小视频可以做到超级压缩?

如何对视频进行滤镜处理,类似抖音那样.

图片渲染&滤镜

GPUIImage是一个集滤镜,图像处理的框架,可以学习一下,如何添加滤镜,处理图片.

Socket & XMPP

即时聊天,也是当下流行的技术,每个APP几乎都少不了要有一个聊天功能,即使没有,也会涉及到客服,反馈等功能.

那么即时聊天遵循什么协议,用什么来做的呢?可以了解一下iOS当中如何用Socket 实现简易聊天,或者使用XMPP协议实现聊天?

RN开发 & JavaScript

React Native开发,由Facebook开源,React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。

这是一门新技术,本人没接触过,所以不赘述,大家自己了解一下,一些公司会用这个开发App.

Git & SVN 项目版本控制

公司当中一般都有后端开发工程师 或者DBA创建一个属于本公司局域网的Git本地管理仓库.

如果你是单人开发iOS,那就需要掌握最基本的版本控制,

如果你在公司是团队开发,还要掌握冲突处理的技能

优雅的开发

[如何优雅的使用Mac进行开发]稍后更新


iOS多线程

GCD、NSOperation、NSThread各种灵活运用和嵌套


iOS架构 & 代码规范

iOS应用架构谈-By.Casa大
可以仔细学习这篇文章,养成良好的代码规范.


苹果官方Kit

  • ARKit.
  • SiriKit
  • HealthKit
  • HomeKit
  • SearchKit
  • IOKit
  • PDFKit
  • CloudKit
  • GameplayKit
  • SpriteKit
  • SceneKit
  • MusicKit
  • ResearchKit
  • MapKit
  • StoreKit
  • AVKit

可以尝试了解一下上面的各种kit官方API,因为有可能新的业务需求就是官方API调用的事就解决了.


Runtime & Runloop

Runtime和Runloop的原理和机制,以及如何使用,大家可以深入了解一下,因为个人水平原因,目前只有整理好的笔记,暂时不方便对此进行总结.


iOS FFmpeg & Opencv原理

FFmpeg和Opencv底层原理是什么,是什么支撑了这个强大的视频处理库.


iOS底层原理

结合Runtime机制深入了解Objective-C对象的本质和消息机制,其方法和对象在编译和运行过程中分别是什么状态.


iOS App逆向

App逆向目前本人也没有深入理解,不知道在工作当中如何应用,确实让我了解到iOS开发项目中之外的东西.

例如,客户端和服务器概念,SSH登录,以及各大有名的APP是如何架构的(推理一下).


iOS Swift

Swift目前已经4.0了,个人感觉本人会在Swift5.0进行学习吧,虽然很多项目没有用到Swift,但Swift确实是一个趋势,可以了解一下.


本文没有提到的知识点

  • 崩溃日志分析
  • 移动端加解密
  • 数据结构 & 算法导论
  • 混合开发
  • 机器学习
  • ARKit
  • RAC
  • iOS 工程化
  • 模块化开发
  • 组件化开发
  • 单元测试
  • 技术经理
  • 产品经理
  • 架构师
  • 阿里技术前沿
  • 跟随巨人的脚步

iOS进阶概念 By.SindriLin

本人尚在学习阶段,但我一直想传达一个积极向上的想法,以及个人的学习思路.因为水平欠缺,在发表文章之余,我结识了SindriLin前辈,与前辈交流了本人的想法.

SindriLin博客
SindriLin简书

前辈告诉我,进阶不能仅仅局限于iOS开发,而是要从工程的角度来看待开发工程师进阶这个说法.

代码设计能力

代码设计能力主要体现在如何设计代码,设计模式的核心在于六大原则,而不是具体的某些设计模式。

工具设计能力

工具设计能力在于使用工具的过程中,了解工具的实现,尝试去设计更适合工程的工具,这部分需要大量的代码积累。另一方面由于工具是可复用的,对代码设计能力的要求是有的,所以属于更高.

工程规划能力

  • 抗风险
  • 成本
  • 回报

总结

确实,作为一个开发工程师,应该去纵观整个工程,而不是仅仅局限于自己的工作栈,否则不可能获得质的提升.

总之,希望大家制定自己的路线进行努力,只要不原地踏步.


明确自己的定位和路线

和同事阿振有一天聊起了开发水平如何分辨,初中高级开发工程师的区别大致就是:使用第三方库,改第三方库,创造第三方库.

推荐看一下阿里分享的技术图册,你就会发现,阿里研究的技术正在世界的前沿,学无止境.

努力吧,美好的生活在向你招手~


结束语

如果您对这篇文章有什么意见或者建议,请评论与我讨论.
如果您觉得还不错的话~可以点个喜欢鼓励我哦.
如果您想和我一起学习,请毫不吝啬的私信我吧~
介个是我的个人博客,欢迎参观哦~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容