移动APP技术框架及平台演进分析

移动终端不同于计算机终端,计算机终端凭借其硬件及操作系统的特性,具备极为丰富多样的应用形态,比如在高性能计算领域首选Linux(Red Hat、Cent OS、Ubuntu各有所长),苹果凭借完整的生态从应用的角度普及推广了MAC系统,廉价和盗版让Windows更为劳苦大众所用,从应用场景的角度来说,移动终端的用户应用场景相对单一,抛开果粉、花粉、米粉、各种粉,用户使用哪个操作系统的手机,基本取决于能运行其上的应用,哪个系统的应用更通用、实用、易用、先入为主(划重点),哪个系统就站得住市场,其操作系统深层次的特性往往只影响一小部分用户,Windows Phone的消逝就是完美的解释,当然塞班时代其实还没上升到操作系统的优劣势对比。
应用的通用、实用、易用性推进着手机操作系统的普及,再结合移动APP开发难度、开发周期、上线运维难度、运营推动方式、开发者技术特性等关键因素,我们不难分析出移动APP技术平台的演进路线,甚至完全可以分析出,未来一段时间,移动APP技术平台会朝着哪个方向发展。
智能手机的普及,我们开始接触和使用原生Android和IOS应用,即为原生应用,其实用性和易用性自然得以充分体现。但Android和IOS的系统差异性实在太大,其内存处理机制、垃圾回收机制、开发语言、系统交互方式、硬件特性、开发社区、运维迭代等等特性,使开发和维护两套应用不仅是成本的支出,还会有各种各样难以穷举的问题。另外随着H5技术的大放异彩,以及用户对于桌面端的长期操作依赖,基于网页的跨平台移动APP应运而生。每一项技术都有所长,也有所短,Web View虽具备很好的跨平台、开发效率、动态发布特性,但其缺陷也同样明显,其渲染效率、原生组件调用等缺陷大大降低了用户体验,嵌入式的开发思路,促生了混合开发模式的尝试,也就是HTML5+Native混合开发,其开发主体是HTML5,但整个APP的架构是Native架构,折中的思想很容易解决问题,但折中的思维永远会被完美主义者所唾弃,人们还在心心念那个高效的原生应用,毕竟原生应用所带来的快感才是用户最为向往的,那接下来的演进思路也无比清晰了,那就是让我们想办法用其他开发语言的细胞组成移动原生应用的躯干,自此有了中间语言编译方向,既然我的效率低,那就让我变成你来执行吧,诞生一批像RN、Cordova、Xamarin、Flutter的架构体系,这些来自欧美IT大厂的跨平台APP开发平台也让国内很多优秀开发者,研发了纯中文文档与社区的优秀平台,包括:APPCan、DCloud、APICloud等,目前来说,各开发平台都有一些使用群体,还没到垄断的程度,毕竟大厂一定会把每一个框架的每一个技术分层都控在手里,买的放心,用的安心。
这里也不对各平台做详细对比,但我们如何去选择适合自己项目的开发平台,授之以渔谈不上,不过思考方式最关键。我们可以从两方面思考决策;
1.各个框架应该具备的基本特性。
2.当前项目对框架各个特性的优先级权重。

各个框架应该具备的基本特性:
使用 HTML5 + CSS + JavaScript 开发
跨平台重用代码
丰富的UI库
提供访问设备原生API的 JavaScript API 包装器
解决原生开发中机型适配的难题
提供打包、部署的工具或服务
都需要学习自身封装的 JavaScript API
当前项目对框架各个特性的优先级权重:
性能:运行速度快
UI:提供接近原生的UI体验
插件多,文档丰富,开发效率高,容易扩展和维护
满足业务需求

你可能感兴趣的:(移动APP技术框架及平台演进分析)