前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【技术创作101训练营】如何从Objective-C转向Swift开发

【技术创作101训练营】如何从Objective-C转向Swift开发

原创
作者头像
筑梦师winston
修改2021-01-20 15:39:10
1.5K1
修改2021-01-20 15:39:10
举报
如何从Objective-C 转向Swift开发.pptx

如何从Objective-C转向Swift开发

自我介绍

大家好,我是筑梦师Winston,是一名iOS开发者,我已经从事iOS开发将近五年了。

但是说来也很奇怪,我入行以前,对安卓蛮感兴趣的,大学的时候在宿舍自己喜欢鼓捣安卓手机,那时候还是Android 2.3时代,我的手机挺卡的,就希望通过刷机来提升手机的流畅度,从一开始的小白一键刷机,到后面自己写刷机包,后面Android 4.0手机出了,又去尝试适配基带,最终以两个手机再也无法使用而收场。

毕业的时候对开发语言没有概念,只知道一个Java,但即便有着这样的铺垫,我也没有去学习Java语言,而是从Objective-C入手,那时候还是Xcode 5的时代,我从第一款应用开始做起,学习完以后才发现,原来我做不了游戏,那时候特别喜欢一款游戏,《愤怒的小鸟》,当时很想做游戏,但是大家也都知道穷养儿,毕业就等于断粮,所以要暂搁做游戏的想法,先管住温饱。

技术环境(转向Swift开发的必要性)

随着互联网的快速发展,我已经不是当年的小白了,但你们也都知道,程序员这行,想要吃饱饭就要不断地学习,不然就会随着技术的迭代而被淘汰。

2020年发生一件很大的事情,是什么?(尝试互动)对,是疫情,疫情影响很多中小型公司和实体业,导致了一瞬间再就业的要求大大提高。

Objective-C语言的痛点

这门语言是C的超集,缺点随着时代的变迁和技术的迭代,显得越来越臃肿,难学,包括iOS这行,已经越来越少的新人加入这行,反倒是H5和Java两行的新人越来越多。这就会使得,在整个市面上会OC的程序员,都将是拥有丰富经验,至少3年-5年的,这样你的竞争压力其实蛮大的。

不知道大家是怎么看的,Objective-C这门语言虽然难学,但我是非常感激自己能够学会这门语言,它不仅能让我吃饱饭,还能让我从中理解到了,什么是开发语言,摊开来讲,如果你学的一门语言,在就业的优势并不大时,它会促进你快速的去学习新的语言,而不是原地踏步,坐吃山空。

iOS开发就业趋势

每年毕业的本科生和研究生越来越多,他们往往在学校会学习一些C、C++、C#这种语言,然后去大厂实习时,由公司安排岗位,如果现在被安排到iOS岗位中,一般都会让实习生去推进Swift的项目,Swift的项目周期短,落地快,而且简单易用,如果让实习生去学习OC,维护臃肿的OC项目,往往还没有熟悉,人家就已经离职了。

小故事(佐证Swift是刚需)

我曾经去过北京,想在那里找一份不错的工作,那时候我做了差不多三年iOS开发,期间又自学了前端和后端,因为想做一个自己的个人主页,所以捣鼓了很多东西,服务器啊域名啊数据库和后台搭建等等,以为自己算是比较有竞争力的iOS开发吧。

于是在北京面了大大小小十几家,其中有家让我印象深刻,我从笔试到面试一路过关斩将,总共有三个面试官,面试官问了一些OC上的问题,由浅及深,我都一一解答出来,然后看到了我简历上有写到我会前端,他们私下讨论了下,然后征求我的意见,可以不可以找个前端开发来面试一下我,简单的问几个问题,我说可以,然后前端问了我几个问题,我都悉数答了上来,此时面试大概已经过了近3个小时,面试官说要去给老大汇报一下情况,当我觉得我稳操胜券的时候。面试官过来又问我:请问你会Swift吗,我说我还没有进行这方面的学习,因为那时候可能才是Swift 2和3,听说ABI不稳定我就没有急切的进行学习,于是,在这场我觉得我发挥非常稳定的面试中,因为不会Swift语言而被淘汰。

有些人说,这可能就是个借口,什么现在接的需求都是Swift的项目,但其实即便你表达出来,你可以在短时间内学习这门语言并上手,对方也会因为工期紧,将你拒之门外。所以还是要不断的增强自己的实力

Swift的语言特性

去年Swift 5已经宣布ABI稳定,这就意味着Swift将不会再有更大的变动,Swift的社区也逐渐庞大起来,越来越多的大牛加入到Swift语言以及框架的开发中来。Swift继承了Python、JavaScript的优点,不仅可以面向对象编程,而且可以轻松的实现函数式编程、面向协议编程,在OC同样也可以实现,只是需要借助框架,有些复杂。

上手快、简单易用、提高市场竞争力这三个鲜明的特点,而且从Objective-C转向Swift,往往要比从别的语言转快的多。

如何学习一门新的语言

基础数据类型-基础语法(逻辑或与非、for循环、while循环)-正则-位运算

一门语言要怎么样学习呢,其实这么多年开发下来,大家应该都知道,每一门开发语言,其实本质就是工具而已,这些工具的特点也都大相径庭,首先你要从基础数据类型开始、然后就是基础语法、逻辑或与非、for循环、while循环,正则、位运算你会发现每门语言都有这些。

高级语法糖-系统API-执行顺序-底层原理-数据结构

当你学会了基础语法的调用后,就要开始学习一些语法糖和系统API的调用,将他们一一的组合起来,按照执行顺序,每个语言的执行顺序和入口都是不同的,存储逻辑也是不一样的。

如果你只是想抓紧时间上手并投入到业务的使用当中,那么你是不用过早的进行底层原理和数据结构的研究,

当你已经拥有足够的项目经验或者能够灵活运用这门语言,通俗点讲,不用费什么力气就能吃饱饭,这时候就可以抽时间研究下底层的原理和数据结构,有助于提升你对开发语言的理解和市场竞争力。

从阅读翻译开始

怎么样快速的提高自己的能力呢,从阅读和翻译开始,市面上有很多成熟的框架和项目,对着进行翻译,是最快提升能力的方式,在翻译的同时,可以学到对方(大佬)的项目结构、代码逻辑、代码思维、代码规范。

这玩意就跟做题一样,当你高考前的一百天,你都在做什么,做题,当你做的多看的多了,自然而然就会了,你也可以称之为肌肉记忆,每个人的学习速度和方法都是与众不同的,因人而异。

如何在工作中更好的应用

试着用新语言解决需求

当你工作几年以后,你会发现你学习一门语言其实很容易,但同样的,你忘记它也很容易,因为你没有用武之地。

就好比你学了很多武功,但是没有人跟你打架,这是一个和平的年代,久而久之,你也会武功全废。

那么怎么样才能更好的应用到工作中去呢,首先你要建立起你工作与你新学的语言之间的联系,比如我会将一个新的需求用H5去解决,这样我就不会对H5过于生疏,偶尔还会用用它,调用其中的API。同时在使用其他语言的过程中,我也会遇到不同样的问题,例如坑啊什么的,这时候我很享受解决问题的过程。当你以后面试的时候,恰巧你解决了这个问题,就不会说出“隐约”“大概”“好像”开头的描述句。而是“我在做XX需求的时候,遇到过这个问题,我是怎么样解决它的”,杜绝纸上谈兵的情况出现。

试着用更高级的项目架构进行重构

OC老项目的结构和目录势必是臃肿的,为何不用我们新学的Swift重构一遍呢,不仅能够快速提高Swift的代码书写能力,还能够完成我们工作的KPI。

Swift能给我们带来什么好处

对开发语言的新认识

当你掌握一门以上的开发语言以后,你会发现,你对整个世界的看法都会有所改变,从最基本的业务逻辑,到事业观、爱情观,再到大的世界观、人生观、价值观,都会有所改变。为什么呢?

你不会被现有的社会环境、工作环境而固化你的思维,不会把语言限制到自己身上,每门开发语言都是相通的,不会再有刚学开发时,我这个开发语言比另外那个语言高效,我这个语言又比哪个语言好用,而是转变成了,这个问题,可以用这个语言进行解决更高效,两门语言结合起来更省空间和时间。

自我能力整体提升(学习能力和业务能力)

再有一个就是整体能力的提升,不仅自己做业务的能力范围提升,可以是自己达到一个人撑起一个业务流程。

学习能力也会大大提升,大家都知道,也都深有体会自己刚入门的时候,想理解面向对象的概念是有多困难,但现在回想起来,对象是个什么东西,这个感觉很奇妙,还有一个更奇妙的感觉就是当你再学一门新语言,它这个感觉就像是解锁地图一样,让你整个人都觉得活得明白了起来。

结束语

好的,谢谢大家,这就是我要给大家讲的《如何从Objective-C转向Swift开发》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何从Objective-C转向Swift开发
    • 自我介绍
      • 技术环境(转向Swift开发的必要性)
        • Objective-C语言的痛点
        • iOS开发就业趋势
        • 小故事(佐证Swift是刚需)
        • Swift的语言特性
      • 如何学习一门新的语言
        • 基础数据类型-基础语法(逻辑或与非、for循环、while循环)-正则-位运算
        • 高级语法糖-系统API-执行顺序-底层原理-数据结构
        • 从阅读翻译开始
      • 如何在工作中更好的应用
        • 试着用新语言解决需求
        • 试着用更高级的项目架构进行重构
      • Swift能给我们带来什么好处
        • 对开发语言的新认识
        • 自我能力整体提升(学习能力和业务能力)
      • 结束语
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档