2016年末闲谈iOS开发的未来

144
作者 没故事的卓同学
2016.10.30 02:29* 字数 2227

移动开发市场潮流涌动,好多人都会问iOS开发的前景这样的问题,今天我就瞎扯一下我眼中的未来,纯主观非理性,爱看看。

Swift怎么样

Swift很好,就像你的前女友一样好。



得益于swift的开源,以及苹果的号召力,swift发展的很好。已经得到了广大开发者的一致认可。苹果自己也很重视,新的一些lib和app已经用swift编写。国外大厂比如Uber、LinkedIn已经用swift开发了很长时间。

这些行动证明了swift已经不是一门玩具语言可以大胆的在开发中使用。虽然眼下还有ABI不稳定,和Xcode索引会让人觉得慢等问题。但是相比OC的巨大进步,更多开发者选择了忍受,希望苹果能够持续优化。

但是OC的runtime依然是无可取代,从商业角度看也没有理由取缔它。所以两者还会互相存在一段时间。但是我相信swift占有率超过OC的节点很快就会到来。

我觉得很多人坚持OC是因为他们只会OC。


移动市场已经饱和

2008年苹果发布第一个SDK,同年年末安卓1.0发布。移动开发元年。移动开发从无到有,至今已经遍及生活各个方面。从今年手机的出货量和身边的观察很容易得到这样的结论:移动开发这块蛋糕的高速增长已经结束了。

这意味着什么呢?在一个行业高速增长的时候,人才一定是供不应求。所以公司被迫接收很多新手,对新人很友好。相信大家也见证了过去一两年里的就业奇迹:是个人就能上。

所以对于很多只是为了糊口的人而言:这扇门已经关闭了。你们继续去追下一个热潮吧。听说JavaScript要统一天下了,要不您去21天学个前端?

言归正传,那移动开发是不是就要大势已去了呢?
同学,恕我直言:不是移动开发不行,是你不行。

在移动浪潮前,互联网流量全在桌面,问2008年的时候有条件坐在电脑前上网的人群有多少?再看现在,微信这个季度的活跃用户5亿多。虽然iOS的份额只有百分十几。但是这是无法被忽略的百分之十几,公司但凡有移动业务肯定会做iOS客户端。

所以iOS开发的市场依然存在,而且不是一块小蛋糕。

Hybrid?是的前端要来抢我们饭碗了



在移动开发前几年的时间里,想在移动端做功能只有开发Native app这么一条路。但是商业就是如此,随着需求增大最后总是会有提高效率或者一些自动化的方案出来。

相信很多人都有看到类似的文章:你不需要开发一个app只需要一个公众号就可以了。前阵子微信推出小程序没见过世面的吃瓜群众们也是激动了一番。其实这只是一笔经济账。现在对于产品而言,有了更多的选择。如果一个产品本身对native的能力要求就很低,当然会选择更便宜的方式了。

除了微信小程序这样嵌入在微信里的方案。由传统web端发起的新技术Progressive Web App也很值得关注。简单的说web也可以有一个方便的渠道生成一个本地的app,获得一些推送、本地存储等一些能力。

Progressive Web App(下文简称pwa)给传统web提供了新的疆土。有的产品除了选择公众号,还可以选择web app!在10月底上海的Qcon大会上有幸偶遇了前端传奇hax(国内前端我只服hax)。贺老师开口一句“以我二十年的前端经验来看”我就给跪了。hax告诉我pwa是有技术优势的。虽然未来几年各大厂商为了商业目的不知道最后移动开发会变成怎样的格局。但是pwa会有它的一席之地。

稍微有一些无奈的是iOS目前还不支持pwa。苹果去年宣布5年内会支持这个标准,然而除apple外其他厂家已经全部支持,现在安卓上是支持的。所以虽然这件事现在还没发生,但是不久的将来应该会有新的进展。

总而言之,很多移动产品不再需要开发一个native app了。


但是,凡事不要难过的太早,说不定还有更惨的呢?

React Native VS Weex

我觉得那些用RN的人最后都会哭。算了,我知道你们会选择倔强。


先从感情上说。你是相信马云爸爸还是相信404伯格?


这次Qcon最大的收获莫过于知道了RN是个大坑。
RN现在的硬伤有:

  • 包无法增量更新
  • 长列表没有优化(灾难性tableview cell没有复用)
  • 不支持web
  • debug?[黑人问号脸]

当然了这些不是实现不了,是的,你完全可以自己实现上面的三个难题。但是如果已经有一个现成的方案呢?

是的,阿里的weex已经走在RN的前面。我不知道是阿里的996更努力还是马爸爸砸的钱就是多,但是事实就是如此。RN是一个纯开源的项目,所以不可能将来RN有个杀手级的功能weex没有。比的就是谁走的更快,看的更远。

大家要有自信,在移动开发上,我们的实力已经是世界一流了。

所以,对于native不幸的消息来了:即便是native的app,很多功能也要交给前端实现了。这笔账是非常清楚的:原来需要一前端,一个iOS,一个安卓。现在只需要前端写一次。粗粗一算节省了三分二的成本。但是就像java一开始就吹的run anywhere。什么技术都有它的应用场景,不是能用大家就用这个技术。

可是根据我的观察,在优化了性能问题后,一个app里有非常多的页面确实不需要native写了,用这种weex的方案就能解决了。而且开发效率的提升是如此的明显,将来会有大量的页面不再需要native写代码发版了。

我觉得我的措辞还不够强烈,大家镇定一下我再说一遍:


50%的native需求将来会被weex这样的方案取代。

听说你现在很难过?凡事不要难过的太早,说不定还有...更...

移动开发者的未来

首先你要接受一个事实,我们生活在一个科技变革最快的时代。很不幸软件行业又是所有行业变化最剧烈的行业。摩尔定律每18个月计算能力翻一倍。在其他行业什么东西能每两年增加一倍而且持续几十年?

换句话说,选择了软件开发,过去二十年里除了C++,C,Java至今依然大量需求,选择其他技术或者语言都经历了潮起潮落。那么从开始有程序员至今有多少语言呢?所以说,一门技术兴起然后被冷落,如果用十年的尺度来看是非常正常的。我们的父辈在七十年代也不相信国企会下岗。你也不要抱有熟悉了一门技术可以养活你一辈子。

你怎么理解编程?

某门技术或者某个编程语言说到底只是工具罢了。原来你用筷子,后来你来到了西餐厅,只有刀叉你就吃不了饭了?活该你饿死。

题图:星际争霸2-虚空之遗

iOS相关