不知不觉来微信事业群差不多也快一年了,自己学习 iOS 也已有半年,在此记录一下自己的学习过程。很多同学可能想知道从 Android 转到 iOS 公司给了多久的缓冲?大概是一周的样子,那时我还在做 Android 首次拉取消息列表优化的需求,领导突然跟我说我们 iOS 缺人你要不转到 iOS 开发去?当时叫了我和另外一个刚毕业的同学,另一个同学说考虑几天(后来没转),我挺乐意所以当时就说转了。我开始一边做 Android 的需求一边学习 OC 基础,一周后接了两个小需求(不是很难),我们主要是用的 OC 语言,很多同学新项目可能用的是 swift 我目前还没学,因为移动端大部分逻辑都在底层,由于之前写过一点点 C 和 C++ ,所以总的回顾起来压力不算太大。之所以当时非常想转 iOS 主要是想锻炼一下自己,就像去年总结的时候我说:我们不可能只干一个岗位,也不太可能在一家公司干掉退休,当然如果你来腾讯或许可以干到退休,随着年龄的增长我们都不太喜欢变化,希望一直保持现在这样挺好。其实处在任何环境做任何事都是差不多的,好比我在来微信前写的总结文章里说的一样,不在于我们做什么工作,而在于我们做事的方法和套路以及做事的态度。 目前来看我只说对了一半,没想到今年大量裁员,所以以前我时常提醒大家我讲的东西不一定对,大家要自己加以思考。现在我想说的是我讲的东西都是错的。

今年的情况我们也都看到了,各大互联网企业都在降本增效,我们也能从中反思到很多东西。今年我们组也明确说了不裁员但是目前不再新增 HC,我的上个部门,之前的同学说要裁掉 70%(500人留下150人)往后还不知道有没有新动作。很多同学都跟我发了一些消息,这其中还有很多是我当初推荐进来的同学,对此我心里万分抱歉也很难受,如果当初不推荐你过来今天就不会是这种局面,但是人生又没有如果。我在公司 KM 和脉脉上看到了很多不好的言论,有些是怪公司的也有些是怪大环境的等等。因此我觉得有时候技术只是一个方面,更重要其实还是在于修心,不同的心境面对事物会有不一样的感受。Android 的效能优化我们还没讲完,后面我打算每次课都拿 15 分钟的时间,跟大家来分享一些我以前读过的课外书籍。用苏东坡的一首词送给大家:莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。 这首词,写于苏轼人生的灰暗时刻,希望同学们日后无论遇到何种人情事变,都能随缘尽性,达观豁达,拥有“一蓑烟雨任平生”的自在从容。

对于整个 iOS 开发我目前只学到了一点点皮毛,当然我也有自己的一套学习计划(类似 Android 进阶之旅),只是目前这形式抽不出太多的时间来学习。已经学完的有些感悟的当属对 OC 的底层原理研究:

  • OC 的历史和本质
  • 了解汇编指令与 LLDB 命令
  • 对象的创建过程、类的本质、元类以及 isa 指针
  • 方法的本质以及方法的查找与转发过程
  • App 启动 Class 与 Category 的装载过程
  • block 的本质探究
  • KVO 与 KVC 的底层原理
  • 多线程与 GCD 的原理
  • OC 的内存管理

内容看起来并不是很多,但是需要一些前提准备工作,我们主要是熟悉两个源码,一个是 objc 的源码一个是 llvm 的源码。关于 objc 的源码配置我这里提供一个 github 仓库大家自己下载就好了,如果大家自己去官网下载配置相当麻烦。我们还需要了解编译与汇编的一些简单知识,这里我们只需要了解一些简单的指令就可以了,因为苹果只开源了部分代码,有些内容我们只能去看汇编,还有比如 OC 方法的执行过程中有部分代码就是汇编写的。后面我会陆续的完成这些文章,关于《 Android 的效能优化》看今年能不能再次启动。目前又做了 iOS 开发,讲起 Android 内容来应该会更有感悟一些,所以我们都不要太急,希望把最好的东西分享给大家。

iOS 学习之旅 - OC 篇相关推荐

  1. IOS学习之路--OC的基础知识

    1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...

  2. 【IOS学习基础】OC类的相关

    几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一 ...

  3. 自动化功能测试-Athrun—IOS学习之旅文档

    1,Java基础知识,知道类.构造方法.继承这样的基础概念 2,对IOS系统有一定的了解:了解xcode工具 3,会使用Maven进行编译 简介 Athrun以Mobile自动化测试框架为基础,以PC ...

  4. 测试开发学习之旅------进阶篇

    习题课 因果图法 自动饮料的售卖 机,可以输入1.5毛钱或者两块钱硬币,一瓶饮料的价钱1.5 可乐,雪碧,红茶,按哪一种饮料,出哪一种饮料,如果输入2块钱按相应的饮料,出饮料的同时会找出5毛硬币 (1 ...

  5. Python学习之旅 —— 基础篇(二)数据类型、运算、while循环

    本篇要点: 常量定义 数据类型(重点是字符串的各种操作.列表和字典) 各种运算 while 循环 一.常量定义 虽然叫做常量,但是python中的常量是可修改的.(c语言中的常量不可修改.)常量的定义 ...

  6. 提权学习之旅——基础篇

    首发于先知社区 https://xz.aliyun.com/t/8054 前言: 无论是CTF赛题还是渗透测试,有很多时候拿到WebShell的权限并不高,没有办法继续深入,所以需要进行提权操作,方便 ...

  7. JavaScript学习之旅-导言篇

    为什么会学习JavaScript 我的学习方法 目前我所使用的资料 学习所用时间 为什么会学习JavaScript? 首先,我认为学习任何东西都是为了解决问题.无关语言好坏.而web应用发展的趋势使J ...

  8. grbl学习之旅---serial篇

    serial.c和serial.h文件是实现了通过串行端口发送和接受字节的功能. 首先是serial.h中定义了基本函数和常量大小: #ifndef RX_BUFFER_SIZE#define RX_ ...

  9. ios学习之旅---指针也不难

    1.认识指针 #include <stdio.h> //基本数据类型作为函数參数传递是值传递 //void moveFront(int x ,int y) //{ // x = x + 2 ...

最新文章

  1. python科学计算基础教程pdf下载-Python科学计算基础教程_PDF电子书
  2. C语言经典例97-输入字符写入文件
  3. 【Linux 内核】调度器 ② ( sched_class 调度类结构体源码 | 源码路径 linux-5.6.18\kernel\sched\sched.h )
  4. pom war jar的区别
  5. Nginx在Windows上启动、停止的命令
  6. 单位内部一个计算机系统属于,2012年计算机一级MsOffice第五十九套练习题及答案解析...
  7. 28.2. AndroidManifest.xml
  8. greenplum 外部表 oracle,GREENPLUM使用技巧(一)- 使用外部表实现DBLINK功能
  9. mysql实战数据.sql_Mysql实战(DML增删改+Select)
  10. 如何在繁忙的工作中锻炼身体?
  11. java s类型_javasript基础——数据类型与数据类型转换
  12. jquery与javascript的引入问题
  13. Spring cloud Gateway介绍
  14. 使用命令行提取微软补丁文件
  15. OTSU算法实现二值化
  16. java学生管理系统设计_基于JAVA学生管理系统设计和实现.ppt
  17. yapi 数据库隔天数据就全没了_Yapi 部署
  18. 【bzoj1406】【AHOI2007】【密码箱】【数论】
  19. 在mac上使用PDF Expert中常见问题解答
  20. java md5 源码_MD5加密 Java源代码

热门文章

  1. Siri之父下周将推出全新AI机器人VIV
  2. 慕课网的python2020_2020中.国大学慕课Python开发入门答案
  3. 人类高质量代码解约瑟夫环问题
  4. OpenPortal认证系统 界面展示
  5. 目前国内p2p视频直播软件
  6. 百度键盘计算机,彻底删除电脑中流氓软件的4大实用高招! 为什么电脑会被偷偷装上百度软件?...
  7. 【有利可图网】PS教程:用PS合成立体特效的穿插照片效果
  8. memcached压力测试(附memcached安装方法)
  9. 2015阿里校园招聘测试开发面试经验(广州站)
  10. 浙江特大套路贷案具体经过是什么样?套路贷与普通贷款有什么区别