移动开发市场潮流涌动,好多人都会问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 VS DeviceOne

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

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

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

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

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

是的,DeviceOne走在了weex的前列,但是一个卓越的平台不知道能不能走的更多,看的更远。

大家要有自信,在移动开发上,我们看到了超一流的三个平台,我们的实力已经是世界一流了,而且DeviceOne平台还支持windows平台的开发。

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

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

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

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

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

移动开发者的未来

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

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

你怎么理解编程?

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

文/没故事的卓同学(简书作者)
原文链接:http://www.jianshu.com/p/5ec431089126
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

2016年末闲谈iOS开发的未来的更多相关文章

  1. iOS开发请您把握现在 — 面向未来学习

    iOS开发请您把握现在 — 面向未来学习 这一篇文章,如果你是一名iOS开发正好也处于开发晋升瓶颈迷茫期,不妨停下你的脚步,花五分钟看看,兴许有你需要的!文章结尾有彩蛋 群里常见的唱哀 iOS现在到底 ...

  2. iOS开发HTTPS实现之信任SSL证书和自签名证书

    iOS开发HTTPS实现之信任SSL证书和自签名证书 转自:http://www.jianshu.com/p/6b9c8bd5005a/comments/5539345 (收录一下供自己学习用的) 字 ...

  3. Android &Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  4. 从中间件的历史来看移动App开发的未来

    在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...

  5. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  6. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总

    --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...

  7. IOS开发基础知识--碎片42

    1:报thread 1:exc_bad_access(code=1,address=0x70********) 闪退 这种错误通常是内存管理的问题,一般是访问了已经释放的对象导致的,可以开启僵尸对象( ...

  8. iOS 开发之使用safari对webview进行调试

    转自:http://www.tuicool.com/articles/ZBFnUbz 使用safari对webview进行调试 时间 2016-02-25 14:35:20  陈斌彬的技术博客 原文  ...

  9. iOS开发学习概述及知识整理

    设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了.这个界面模仿了Evernote iOS app的风格. 我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用 ...

随机推荐

  1. vc++用ADO方式连接oracle问题

    今天装了个oracle客户端,准备写个访问远程oracle的程序.用的是vs2010,采用ADO的连接方法连接oracle,结果运行的时候总是报下面的错: 从提示可以看出是没有找到OraOLEDBup ...

  2. 关于CPU Cache -- 程序员需要知道的那些事

    本文将介绍一些作为程序猿或者IT从业者应该知道的CPU Cache相关的知识.本章从"为什么会有CPU Cache","CPU Cache的大致设计架构",&q ...

  3. UTL_FILE

    在PL/SQL中,UTL_FILE包提供文本文件输入和输出功能. 可以访问的目录通过初始化参数UTL_FILE_DIR设置. 注意:UTL_FILE只能读取服务器端文本文件,不能读取二进制文件.这时候 ...

  4. Cocos2d-x 3.2 学习笔记(二)创建自定义项目

    一.通过命令创建项目 前面搭建好环境后,怎样创建自己的cocos2d-x项目呢? 先来看看cocos2dx 3.2的目录吧(涉及到3.1.1版本的,请自动对应3.2版本,3.x版本的环境搭建都是一样的 ...

  5. Javascript: 从prototype漫谈到继承(2)

    本文同时也发表在我另一篇独立博客 <Javascript: 从prototype漫谈到继承(2)>(管理员请注意!这两个都是我自己的原创博客!不要踢出首页!不是转载!已经误会三次了!) 上 ...

  6. Android之Notification介绍

    Notification就是在桌面的状态通知栏.这主要涉及三个主要类: Notification:设置通知的各个属性. NotificationManager:负责发送通知和取消通知 Notifica ...

  7. 抓包分析SSL/TLS连接建立过程【总结】

    1.前言 最近在倒腾SSL方面的项目,之前只是虽然对SSL了解过,但是不够深入,正好有机会,认真学习一下.开始了解SSL的是从https开始的,自从百度支持https以后,如今全站https的趋势越来 ...

  8. Windows Azure Platform Introduction (11) 了解Org ID、Windows Azure订阅、账户

    <Windows Azure Platform 系列文章目录> 了解和掌握Windows Azure相关的基础知识是非常重要的. 问题1:什么叫做Org ID Org ID是Azure C ...

  9. Windows Azure Web Site (7) Web Site配置

    <Windows Azure Platform 系列文章目录> 在上一章内容中,我们已经部署了Azure WebSite.我们可以在Web Site配置页面进行配置.如下图: 另外,我们还 ...

  10. 基于HTML5的WebGL呈现A星算法3D可视化

    http://www.hightopo.com/demo/astar/astar.html 最近搞个游戏遇到最短路径的常规游戏问题,一时起兴基于HT for Web写了个A*算法的WebGL 3D呈现 ...