APP混合开发技术简单介绍

目前混合开发技术很多,根据其实现跨平台的原理分成了以下三类:WebView、RN以及Flutter,这里根据看到的文章以及我自己理解做了一些小整理:

几种主流的跨平台技术

1.WebView - 应用里面的浏览器

使用安卓和iOS上的webview容器,使APP能够直接运行html文件,展示web页面。如果需要原生功能就通过添加JSBridge供javascript调用。

具有开发效率高、跨平台使用、上手难度低的特点,但是体验跟原生比起来就会有不少差距

常用的开发框架有APICloud,uni-app等,直接把项目写完丢进去就可以使用

2.React Native/ Weex - 翻译器

React Native与Weex大致的运行逻辑都是使用js代码构建界面,在运行时将代码翻译成原生组件展示出来,所以RN跟Weex更多地是充当了一个翻译的功能,并且会对翻译过程做优化,以此提升运行的效率。

体验会比WebView好,时下也是非常流行。

3.Flutter - 自己就是一个渲染平台

Flutter 是 Google 新推出的一款帮助开发者开发高质量原生应用的全新APP跨平台 UI 框架,使用Dart语言开发,自己重写了一套与平台完全无关的渲染引擎,只提供画布,UI组件与渲染逻辑都在这个引擎上进行,保证了在不同平台下的一致性,且保证了高性能。

在选择这些技术的时候应该考虑以下因素:

1.使用成本

1.1 学习曲线 - 是否容易上手

1.2 成熟度 - 这个技术是否足够成熟,坑是否多,可以根据issue的数量以及逛逛论坛看看有没有人会吐槽哪里很难用之类的

2.开发效率

2.1 社区支持 - 遇到问题是否可以通过社区快速获得解决方案或者直接使用成熟的模块、工具库

2.2 是否支持热加载 - 应用开发时最头痛的就是热加载的问题,如果每次改了代码就得重启一次APP跑一次完整的打开流程,对开发效率来说是个致命的影响

2.3 Debug - 是否方便跟踪错误

3.一致性

3.1 兼容性 - 如果说是跨平台使用,但是用起来发现其实在不同平台上的支持程度不同,就会导致从项目评估开始就容易出现偏差,开发过程中遇到的话就更加难受,一般情况都只能选择中途换个方案。

4.用户感知

4.1 用户体验 - APP做出来是给用户使用的,所以在考虑高效开发的同时也需要兼顾用户的体验问题,例如说页面切换过渡效果,按钮的点击反馈,是否会出现布局错乱的情况,此外还有帧率问题也是需要考虑的。

4.2 热更新 - 是否支持应用内热更新,虽然IOS不支持,但是不用特意跑去应用商店更新当然是更爽的,所以也要看是否支持这个特性。

4.3 启动时间 - 不同技术实现会导致启动时间不同,这个也是会有一定差距的

结语

这里只是简单地归纳了一下目前主流的混合开发技术,以及结合我个人经验的一些选型考虑,如果有疏漏或者更好的想法,欢迎指出~

参考文章:

移动端跨平台开发的深度解析

APP跨平台开发技术分析

你可能感兴趣的:(APP混合开发技术简单介绍)