2016:iOS开发趋势思考

作者: 没故事的卓同学 | 来源:发表于2016-06-24 23:50 被阅读11925次

    参加GMTC大会,第一个议题就是《移动开发的未来展望》,有些启发整理记录一下。

    编程神作《代码大全》提过,在技术浪潮中找到自己的位置。编程技术的更迭越来越快,当进行技术选择时,思考当前的技术方向和自己应该要处的位置很有必要。古语云:知而慎行,君子不立于危墙之下,焉可等闲视之。

    移动开发大浪已退

    在2014年,如果你问有哪些工作门槛低,前景好?
    |
    |
    |
    |
    |
    |



    答案除了这个之外,
    多半有人还会告诉你,做iOS开发啊。培训三个月,月薪上万轻轻松,就业率高达百分百。那年夏天史称资本盛夏,移动创业大潮来袭,相关开发人员大量缺口。于是一大批人就接了拐:



    我不知道TCP/IP,我不懂多线程,我不知道Core Animation,不懂runtime,但是我能一天做五个界面,两周能写一个app,我知道我是个好程序员。

    去年年底开始资本退去,大量商业模式只存在于ppt中的创业公司纷纷倒闭。大量民谣程序员失业了。如果你稍微查下现在iOS一个岗位能收到多少封简历你就知道了。举个例子,一个在上海的普通公司(不是互联网公司)五天就能收到超过600封的iOS简历。我只能说:要啥自行车?
    但是即便如此,优秀的工程师依然难觅。
    潮水退去,优胜劣汰,在移动互联网领域,可以预见,靠谱的公司比例越来越大,半吊子的民谣程序员只能听着iphone5中传来的音乐:你在南方的艳阳里大雪纷飞。
    如果只是觉得薪水高,自己找不到工作才来做iOS开发的人,我只能说,醒醒吧,快点转行吧。真没你什么事了。如果你还是带着投机心理,要学也得学PHP啊。

    swift


    其实这事吧,苹果爸爸一句话的事。
    好消息是这事最近不会发生。
    我在这里抛出一个问题:苹果为什么要在已经有一个成熟的语言,成熟的编译器,成熟的OS后顶着风险花大量精力开发一门新语言?

    苹果这种纯商业公司可没有情怀。在swift之前,chris已经完成了LLVM,对编译器可谓炉火纯青,我猜测他在完成LLVM之时,拍桌子后怒喊了一句:还有谁!
    结果就是你所知道的事,动态语言的瓶颈就在那。就算你骨骼再清奇,还是要按照基本法嘛。于是swift应运而生。
    如果你明白苹果对于swift的野心,我想你就不会对它熟视无睹了。

    再谈下我所知道的一些现状。几个月前在上海某业余居委会组织的swift会议上我和一些同行进行了交流。基本都已经开始准备或正在转向swift开发。从利益上讲,swfit是一门比oc更优秀的语言,苹果也在不遗余力的推广它。如果你不用支持iOS7,同事不是那种弱鸡民谣程序员,几乎没有理由拒绝swift。你的疑问只是我该什么时候转。
    wwdc前曾放过消息会ABI稳定,结果现在3.0中依然没有稳定。但是这次连foundation都和OC彻底分离了。我认为ABI稳定是一个重要的标志,只有ABI稳定第三方的Lib才能毫无压力的使用swift,否则大厂为了稳定只能隔岸观火。
    不过我觉得怎么看现在上swift都是一个合适的时机。
    但是电商类app除外。swift摒弃了oc的runtime,动态化对电商app中太重要了。

    动态化&hybrid

    动态化这个词就跟互联网+、H5、互联网思维一样都是国内特色名词,最初是为了让外行一听感觉很专业的样子,其实就是。。。

    先说说静态指什么。我们app一个版本放出去,这个页面按照设计图,代码写好就是这个样子。一动不动,稳如泰山,这就是静态。如果ceo下午朝你走来说,我有一个需求,下个月搞一个大新闻,首页改成酱紫酱紫,下下个月投资人儿子两周岁,我们再搞个活动,改成酱紫酱紫。需求一动,我们就乱动,只能打开xcode改来改去。

    如果说开发时间,还可以通过加人解决,但是版本审核的时间和有多少用户能够升级到最新的版本这就不可控了。
    除非你像某家公司,周流失率接近百分百,这样后台统计一看,百分百的用户都是新版本啊,一片盛世。

    所以动态化的需求是很明显的:

    • 运营有需求,竞争对手发了个活动送5块,我们app里马上来个送6块的。
    • 产品有需求,有个功能需要移除(某宝偷偷开启摄像头拍照片),这个功能就关了。
    • growth也有需求,这个页面来个A\\B Test。
    • 或者,我就想每次改了用户马上就能看到,不要更新app。

    数年前有家网络巨头facebook,把宝全押在了html5上。只需要写一份代码(丝毫不提浏览器兼容真是骗死新手),效率也高,放一个webview,要啥有啥,包括自行车。facebook phone失败的轰轰烈烈,facebook那个时期的app也是惨不忍睹。
    对于这种先烈行为,我们鼓励,但是千万别跟随!


    所以这个需求是毋庸置疑的,除非你是个小而美,产品不会靠灵感驱动的、稳定的要死的app,譬如Quora,每次更新日志就说提高了稳定性,万年不知道改了什么地方。

    看下现在业内的几个动态化方案:fb的 react native、阿里的 weex 、阿里的 luaview、甚至腾讯的iOS热修复jspatch作者也表示在考虑提供一个动态化方案。当然了还有很多我不知道死活的各种hybrid方案(PhoneGap死了吗?)。至于这些方案或者将来一段时间里将涌现的其他方案,大家可以根据自己的需求关注。
    但是对于开发者、一个有眼光的开发者而言,你要知道这是一个很有发展潜力的领域。现在就开始准备起来吧。
    相信不久以后,iOS面试题可能会出现这题:JavaScript语言精粹的封面是什么动物。

    哎,和前端必有一战啊。

    不可取代的native

    如果过几年手机浏览器内核渲染效率极高,JavaScriptCore也没有任何性能问题,还需要native的代码吗?如果有不可取代的部分那是哪部分?
    我能想到的是极致的交互和当前平台独有的功能比如today extension这种。
    比如facebook为做出流畅动画的开源神库pop,根据cadisplaylink渲染,我不觉得会有人用js写这种代码。如果你写了这份代码安卓也用不了。因为总有些是针对当前平台的代码。
    我也预见,随着靠功能获取用户的洪荒时代已过,app开始追求极致的用户体验,对于app的交互也有着更高的要求。然而CoreAnimation,UIBesizerPath能写好的人有几个?这也是一个应该关注的方向。

    代码以外

    coding是不是一个工程师的全部工作?
    如果你觉得是我只能说你级别太低。
    假设你不做管理,是一个纯研发组里的最强工程师,除了coding你依然有其他工作要做:你要review同事的代码,保证他们的代码达到你的标准。或者制定规范、架构执行,维护项目代码质量。
    然而大部分人都不是有着天才天赋的人。跳出coding外,在公司里还可以怎样立身?邵震的演讲《mobile growth 的方法和实践》给出了一种新的可能:如果有一个团队负责优化app体验,提高用户留存转化率,这个人是工程师的优势最大。因为他最了解这个要被优化的app。

    Objective-C的光明未来


    欢迎关注我的微博:@没故事的卓同学

    相关文章

      网友评论

      • omni_Hsin:写的挺好的,唯一一点民谣程序员有点刺眼,以偏概全。
        我也是“民谣”,大学学点计算机,研究生做点小项目写了点C,然后就没然后了,我就化身成为民谣了。
        然而在步入行业的那一刻到现在不算有竞争力,但是也不是随便一波浪就可以打死在沙滩上的。
        不过,还是很喜欢你的文章。
        我是nil:@没故事的卓同学 如果别人学历不够但爱研究又有何妨,况且很多计算机相关专业的也不见得大学有学多少吧。:sweat:
        omni_Hsin:@没故事的卓同学 为了快,为了可以找到薪水客观的工作,参加了民谣训练营。:sweat:
        没故事的卓同学:@iTalkNothing 都研究生起点已经很正规了啊。
      • 梁同桌:为何我在今年3月 Swift2.2版本的时候就写 一个完整的App项目。 现在Swift升级为3.0了,修改的很痛苦
      • 啊左:PhoneGap木有死,现在是Cordova
      • 0bbae595543d:很幸运看到这篇文章,坚定我oc转swift的心思 之前也浏览了相关的资料,可以谈下怎么样比较有效的掌握swift?
      • Dariel:亲,runtime在swift中不是可以使用的吗?
      • 取名困难综合症患者:那么问题来了,JavaScript语言精粹的封面到底是什么动物呢
        槑头脑:@春天不下雪 扑了蛾子
      • 牵线小丑: :joy: 其实用 OC 写的不能上交到 App Store 我也有想过……而且苹果是比较霸道的公司,还真干得出来……
      • 4a6a4fec8b15:我已经把公司项目转swift了
        没故事的卓同学:@青春如歌乡村码农代言人 加油
        4a6a4fec8b15:@青春如歌乡村码农代言人 坑不少,但是没有大的问题
      • JavenWang:国内BAT美团点评等都还没有开始大规模转swift,工作量还是有的,小团队需要做好准备自己填坑,关键是要想清楚转swift的成本和收益
      • Mr_BoBoy:听你扯淡,挺有趣。 :joy:
      • 面试小集:最近面试必问会不会JS
      • tom510230:swift还需要观望,混合编译下大的10来M不是好玩的。纯Swift开发的App几乎不可能,该用runtime的还是要用runtime,第三方的库也需要bridge
        没故事的卓同学:@tom510230 作为一个技术人员,说话就是要严谨。不知道说不知道,不确定说不确定,清楚就说清楚。1.加入swift后app的包没有大10兆,你可以自己打包一个inhouse看看。2.纯swift开发app根本没有问题。oc和swift本来混编就没问题。第三方sdk都是framework用什么语言根本不重要。
        tom510230:@没故事的卓同学 我做的是国内应用,twitter没法比,人家不用集成微信不用集成友盟,第二,swift runtime肯定会打包进去的,wwdc上就演示过。出口就伤人,无语
        没故事的卓同学:@tom510230 坐井观天。一,你确定大了10兆?2,纯swift项目多了去了,twitter,linkedin就是。
      • Ke_Wang:最近很关注混合开发,请问这方面有什么建议吗?
      • e7b86f176cf3:app动态化的问题是苹果要考虑的大问题。求问楼主大神,swift语境下有可能实现动态化吗?
        没故事的卓同学:@ZenYee_Chiao 可以加dynamic
      • 飛呈Geek:js要一统江湖了…不过Swift能做的事远不止iOS,真是必有一战。
      • CoveyZ:公司大规模采用swift开发您觉得大概会在什么时候?现在深圳的公司我只听说一家优必选机器人开始用swift?两年之内oc应该还能撑到吧?:relieved:
        没故事的卓同学:@tommychangz 最近两年oc还是半壁江山。
      • Gao了个J:想问下作者 oc还要学吗?
        Gao了个J:好的 非常感谢:smile:
        没故事的卓同学:@Gao了个J 要的,最近两年oc还是半壁江山。
      • c6e16b2e3a16:我觉得跟硬件交互开发也是一个方向
        Sheepy:@没故事的卓同学 我干了一阵子这方面的事情,总得来说跟 socket 比较像,就是互相发数据。但是会发生一些数据发送过快导致丢包啊之类的情况,很难调试……
        f132cdc403ad:@hello_me 就是所谓的物联网
        没故事的卓同学:@hello_me 现在国内还是比较少。现在关注有点过早了,太多坑。

      本文标题:2016:iOS开发趋势思考

      本文链接:https://www.haomeiwen.com/subject/kwaodttx.html