企业移动化信息建设的一些思考(二)移动开发技术发展

  1. 企业信息化之路的演进

如果我们追踪一下企业业务信息化模式之路,会很明显地发现大致可以分为几个阶段

  • 互联网兴起之前,大多是以桌面软件为载体,多为局域网或单机使用
  • 随着Web流行,成为主流后,企业业务WEB化成为主流
  • 随着手机的发展,我们进入了移动互联的时代,移动优先成为共识,企业又把业务推到手机上
  • 下一个时代,万物互联?

其中,在移动互联时代,企业移动数字化先后经历不同的发展模式,各有优劣,呈现多种模式并存的局面,直至今日,依然未有一种成为主流。

虽然万物互联非常火,但当前我们仍然处在移动互联的时代,本文简要就企业信息移动化做一些分析与思考。

2. 移动化的技术发展历程#

梳理一下企业移动数字化的大致历程,我们大致可以得出以下几种模式

  1. 智能化手机时代之前,J2ME大行其道
  2. 智能手机出现,原生开发成为主流
  3. 原生开发之痛,H5日益成为第一选择
  4. H5性能被诟病,Hybird开发模式出现
  5. 小程序异军突起
  6. 跨平台开发技术的尝试与突破
  7. 企业移动平台的竞争

1.1 J2ME的时代#

如果我们把时间往前推到还没有智能手机的时代,可能现在的很多年轻人不太清楚那个时代,但一定听说过另一个著名的公司,Nokia。

另外,如笔者一样的程序员,如果早期是使用Java语言的话,一定也知道Java是区分多个版本的,包含J2SEJ2ME以及J2EE,其中J2EE主要负责后端WEB开发的,而J2ME则是当时手机端开发的主要模式。

图片

  • 你有使用过Nokia上的J2ME程序的经历么?

当然,在那个阶段,笔者记得国内走得比较前的就是腾讯公司了,QQ当时是一直支持Nokia手机的,还有另一个非常有名的应用也是在那个阶段就出现了,那就是UC WEB了,结合当时手机网络慢,UC Web做网络流量节省和压缩,再叠加一些特色功能,如WEB网页移动化这些,迅速成为一款非常流行的浏览器,一直延续到智能手机出现的今天,都在浏览器领域占据比较多的份额。

图片

当然,这个阶段,企业业务移动化也谈不上,这时候的网络慢,手机性能也差,屏幕也小,远还称不上移动互联时代。

1.2 智能手机的兴趣,原生开发成为主流#

2007年,iOS随iPhone亮相首次推出,而2008年9月Android发布第一款商用智能手机是HTC Dream,谁也没有意料到我们能如此快速地进入一个新的移动互联时代。

虽然在iOS, Android之前,有些类智能手机系统存在,比如诺基亚Symbian,黑莓,以及微软的Windows Mobile等,但iOS与Android的出现,还是具有突破性的意义。Android在开源模式的加持下,iOS在封闭生态下的较好的体验的模式下,两个平台迅速发展壮大,旧的Symbian,黑莓,以及微软的Windows Mobile手机系统迅速退却。而中途的一些挑战者,如微软推出的Windows Phone,还有一直只闻其声,未见其实的Ubuntu Touch等,都没能挑战成功。

随着iOS与Andorid迅速成为主流,不断地发布新版本,结合网络建设越来越快,上网越来越成为可能,使用人员越多来越多,我们可以说是逐步进入了移动互联的时代。

而在这个阶段一开始,H5性能还比较差的时候,基于iOS, Android提供的SDK进行原生开发是主流的开发模式,大多数走得比较前的企业,都有尝试把自己的业务使用原生开发推到手机上,成为企业业务移动化的主流方式。而移动开发也是在这一阶段成为一个新兴群体,在编程行业中成为一个有影响力的群体。

但是,在实践的过程中,越来越多的企业发现移动原生开发有很多缺点,主要包括

  1. 同一业务需要开发iOS, Android两端,随着iPad的出现,一些业务还得专门为iPad再开发一套,原生开发成本较高
  2. 移动端的上架,发布,更新,BUG修改等成本较高
  3. 受限于上述两点,无法进行业务快速移动化及试错
  4. 随着移动互联及用户新鲜度的退却,推广及营销原生App的成本越来越高,用户越来越不愿意下载新的App

在这些缺点的影响下,先后出现了不同模式的解决方案。

1.3 HTML5的兴起#

大约在2014年末,HTML5的标准正式推出,一定程度上结束了HTML4时代混乱的HTML标准。在这之前,在不同浏览器上使用CSS或JS需要做非常多不同的兼容工作,令前端开发人员非常头疼。

而这时候,也是移动系统快速发展的阶段,由于没有历史包袱,移动系统对HTML5标准的支持大多非常到位。在原生开发的上述缺点之下,一些企业或开发者开始尝试另一种模式,也就是参照桌面端的发展历程,把业务从原生往手机浏览器上迁移。

与原生开发相比,H5的开发有着它明显的优点

  1. 不需要适配多端,开发一次,适合不同手机系统,甚至包括一些小众的移动系统
  2. 更新维护由自己掌控,不需要经过苹果,Google的审核
  3. 推广运营容易,任何手机上都有浏览器,访问起来快速方便,无需下载App

虽然H5这种模式一开始就以势如破竹的趋势发展着,但后面慢慢大家发现它仍然有着不可弥补的一些缺点

  1. 速度与体验无法与原生相比。这仍是最重要的一个原因。相比较于原生的快,H5仍然是慢一拍的感觉
  2. 难以在本地缓存数据,每次都要重新加载,虽然H5有一些本地化存储技术,但实际真正应用的非常少
  3. 没有用户忠诚度的积累,下载一个App经常使用它的用户忠诚度会比在浏览器访问一个服务的忠诚度更高,后者更像是一个临时解决方案。

因为这些缺点,于是出现了Hybird混合开发模式。

1.4 Hybird混合开发#

基于原生开发与H5开发各自的优缺点,慢慢地形成了一种新的开发模式,就是把原生+H5结合起来。这种模式更多地表现在企业APP中。

也就是把一些固化的,变更较缓慢的部分,我们把它称之为基础或壳,用原生来实现,以做到体验最优化。而把一些变化非常快的,更新频繁的用H5实现,嵌入到前面的壳中来加载。这种模式统称为Hybird混合开发。

这种模式结合了两种模式的优点,既照顾到了体验,又顾及到了对快速变更的支持。迅速成为主流的方案。

我们公司在12年也曾基于这种模式开发出一个产品变色龙,它是我们WorkPlus Lite的前身,但与WorkPlus Lite与其稍有不同,WorkPlus Lite更体现为一个平台,而变色龙更多的着重于开发层面上的支持。

这种模式在实践过程中,有一些Hybird框架的开发工具具有强耦合性和绑定的特征,开发依赖其特定组件或控件,而近些年前端技术发展可以说突飞猛进,这类型的Hybird开发框架在其适应上有一定的局限性。

其另一个缺点表现在:就是App的个性化不足。因为壳是稳定的,少变动的,意味着整个App的形态就是这个样子,很少变化,而基于H5的大多也是使用类似应用或工作台的模式来呈现,不是网格就是列表风格,难以根据业务来个性化App。

所以,这个模式在企业中更为流行,而对TO C为主的群体来说,并不是非常适合。

1.5 小程序的异军突起#

虽然看起来Hybird可能会成为一个主流,它具备原生开发与H5的优点,是比较适合企业开发的模式。

但这几年又迅速出现新的模式,迅速成为一种不可忽略的移动化业务开发模式。

第一个就是小程序。

最开始是微信发布了小程序,其实小程序严格上来说是Hybird模式的延续,只不过小程序的壳是微信或支付宝等这些国民级App。

相对于Hybird来说,小程序的优点表现在:

  1. 不用自己开发原生App壳,以微信或支付宝或其它为载体,意味着你的业务几乎可以触达每一个可能的客户
  2. 不用自己去关心或负责原生APP的更新及维护等问题

小程序员同样具备H5的所有优点,而且由于只支持特定App,它在性能上更进一步优化,使之可能做到非常接近原生的体验。(微信的小程序号称体验接近原生)

后续,像是Google在Android上推出了快应用,Apple在iOS上推出的Clips等,都与小程序有异曲同工之妙。

1.6 跨平台开发技术的尝试与突破#

Hybird开发模式在当前阶段仍然是相对主流的移动开发模式。优点笔者在前面已经说过了。但是,近些年,出现了一方面力求达到原生的体验,另一方面又减少不同平台开发的成本的新的尝试,也就是跨平台开发技术。

跨平台开发技术以React Native以及Flutter为主要尝试者。

这些跨平台技术通常具有以下特点:

  1. 它们都支持写一份代码,适配iOS以及Android两个平台,减少不同平台分别开发的成本
  2. 它们都以尽量接近原生的方式来实现这个目标,都通过添加自己的机制,将你的代码翻译成接近原生性能。以达到和原生近乎相同的效果。

其中,Facebook的React Native的机制是将你的代码解析成原生代码,也就是你写的是JS代码,但最终会被框架翻译成原生代码。而Flutter则更激进,在iOS以及Android平台提供的底层API之上完全建立一套自己的框架与UI,取代原生的框架与UI。

所以,跨平台开发的优势同样非常明显,虽然Hybird混合开发成为主流,但与PC端时代不同,移动端基于屏幕不大,电池有限,App对体验的追求仍是占据非常重要的地位,这也是跨平台开发技术出现的原因。

在React Native以及Flutter也出现后,迅速成为热门,获得相当一大批开发者的喜爱。这一两年,Flutter大有取代React Native,成为最热门的跨平台开发技术之势。

但是,类似的开发方式仍然无法取代原生或Hybird开发模式,其原因在于它们都有着难以解决的问题,表现在:

  1. 生态差。 与原生及Hybird相比,类似的跨平台技术的生态仍然相对较差,表现在当需要一个东西时,很可能没有成熟或较佳的解决方案,要自己从头开始构建轮子。
  2. 理想很丰满,现实很骨感。期望用一套开发模式适配多个不同的移动平台,这仍然是非常理想的,iOS以及Android平台虽然同是移动平台,但在UI规范,移动理念等很多方面并不一致,比如Flutter有一套UI,是符合Android的material design ui设计理念的,但很明显,这个设计理念在iOS上并不存在。
  3. 难以摆脱对原生的依赖。由于这些跨平台技术是基于原生的API再提供一层封装,也就意味着当出现问题时,很有可能仍然需要到原生层去寻找解决方案。这些跨平台技术一开始期望摆脱原生移动人员,最终发现根本是镜中花,水中月。
  4. 新特性更新等难以跟得上原生。比如iOS14出了暗黑模式,这些跨平台技术需要等很久一段时间,才可能适配得上

但是,跨平台技术仍然是一种非常值得考虑的移动开发模式,其优势太明显了,开发一套,性能又接近原生。

笔者的建议是如果有同时懂iOS或Android这样的多平台开发经验的开发者,使用类似的跨平台技术是个比较好的解决方案。

1.7 企业移动平台的出现#

在2012年,我们恒拓高科在为南航等大型国企央企服务数年的经验及基础之上,就意识到了在进入移动互联时代企业对移动平台的迫切需求,我们孵化出了WorkPlus企业移动平台,在2020年末又为中小企业推出了开源免费的WorkPlus Lite

这是我们预料到并必然会出现的场景,企业特别是中大型企业对业务移动化的需求一定会越来越迫切,以前那些在桌面端,在浏览器等提供的各种企业服务,一定需要在手机上提供,以适应移动互联的时代。在这种背景下,包括WorkPlus及其它一些企业移动平台就出现了。

这些企业移动平台通常具有几个明显的特点:

  1. 提供企业需要的最基础的功能,如即时通讯,组织关系维护,邮件,移动打卡,流程,审批,表单,文档及语音视频等。这些功能是为了助力企业快速移动信息化。
  2. 同时,需要提供良好的接入机制,将企业内部或与外部关联的各种服务与应用接入到平台中,形成一个完整的生态圈。因此,这些平台就基本出现了应用工作台等各种接入方式。

以我们的开源免费的WorkPlus Lite为例,我们提供了即时通讯,通讯录,推送,广告页,语音&视频会议这些基础功能,同时又为业务接入平台提供了Api接入服务号应用工作台ISV生态能力等多种接入方式,助力企业形成一个完整的生态圈。

当然,如果你使用我们的企业版WorkPlus,还有更多的类似邮件,文档等功能。

最开始,这些企业移动平台大多为中大型企业服务,也就是TO B的模式。这也是非常合理的,因为除了互联网巨头,大多数IT企业并不具备TO C烧钱的资本实力。但这并不意味着中小企业就不存在类似的需求。

于是,近几年,钉钉与企业微信横空而出,虽然比我们WorkPlus这样的晚了几年推出,但凭借强大的技术累积,雄厚的资本支持,近乎免费的使用成本结合下来,迅速满足了中小企业的需求,形成一股强大的产品生态。而钉钉更是在一定程度上圆了阿里在IM上追赶微信的梦想。

  1. 企业业务移动化的选择

综合笔者上述所言,现阶段,其实企业移动化的选择模式非常之多,上述所说的多种开发模式,除了J2ME因不符合时代已经退出以外,其它几种都存在,并且相互影响。

企业需要根据自身的实际业务需求,选择最好的开发方式。

而在这个过程中,对于移动业务是TO C面向消息者,还是面向员工及伙伴的两种企业,更有些企业在战略层面需要构建自己的生态,把自己的员工,合作伙伴上下游,企业的最终用户都纳入一个平台体系中。不同企业其业务移动化的考量点则完全不同。

下一篇,我们将结合我们恒拓高科为中大型企业服务近9年之经验与理解之上,讲述我们对于企业移动化的思考与选择建议。