Flutter对⽐Uni-app和Unity各⾃都有什么优势?
⾸先 uni-app 和 Flutter 还有 unity 本⾝就不属于⼀个底层应⽤场景 ,说 uni-app ⾃带引擎绘制本⾝就不正确。
uni-app
uni-app 是内置了 JSCore ⽤于运⾏ JS 代码,然后通过 WebView 进⾏渲染,同时内部内置了⼀个基于 Weex 改进的桥接框架,从⽽可以实现把 JS 代码转为平台原⽣的控件去渲染,利⽤了原⽣渲染能⼒。
所以 uni-app 利⽤的是 WebView 或者原⽣控件的桥接,本⾝并不实现渲染引擎,它的 mpvue 、Weex 、JSCore 都是其他的第三⽅开源框架,⽽ uni-app 实现了集成化平台,所以它的优势就是在于对前端开发⽽⾔,只要学会 vue ,就可以通过它简单开发 App ,同时它还能帮你转译成⼩程序,另外因为是 JS ⽂本代码,⽀持 code-push 这种热更新也不算违规。当然,上限也很明显,JSCore 的性能上限和复杂场景的渲染⽀撑瓶颈,还有多平台下的兼容问题,因为如果你需要更好的性能就需要使⽤ Weex 模式,⽽ Weex 模式依赖于原⽣平台的控件,所以不同系统之间原⽣控件的差异,同个系统的不同版本在控件上的属性和效果差异,组合起来在后期开发过程中就是很⼤的维护成本。
Flutter
Flutter 本⾝⾃带了渲染引擎,所以 Flutter 作为 UI 框架, react-native 、 weex 不同 Flutter 的控件不是通过原⽣控件去实现的渲染,⽽是由 Flutter Engine 提供的平台⽆关的渲染能⼒,也就是 Flutter 的控件和平台没关系。
简单来说,原⽣平台提供⼀个Surface作为画板,之后剩下的只需要由 Flutter 来渲染出对应的控件,⽽这个过程最终是打包成 AOT 的⼆进制完成,从这个⾓度上不严谨地说, Flutter 更像是⼀个类 unity 的轻度游戏引擎,不过它提供的是 2D 的控件。
所以 Flutter 有很不错的跨平台能⼒,同时性能也有很⼤提升,因为 Flutter 不需要转译成原⽣控件再渲染,没有中间层的消耗,现阶段Flutter 在 Android 、iOS 、Web 上都已经进⼊稳定版本,在 Linux 、Win、MacOS 也进⼊了 beta 版本,所以 Flutter 在性能和跨端⽅⾯更有优势,但是,它学习成本会略⾼⼀些,同时对应它的不⽀持官⽅热更新(因为热更新⼆进制⽂件是违规的),不⽀持⼩程序,混合开发成本更⾼等等。
Unity
最后 unity 就是⼤家熟知的3D游戏引擎,它本⾝主要是⽤于游戏场景,有时候也会被运⽤于 AR 或者地图导航的场景,使⽤它开发App 的可能性很低,当然也有⼈开发了 ⽤于结合 Flutter 的理念,但是本质上它更多是运⽤于游戏领域的。
总结:
uni-app 更适合前端开发,利⽤ vue 的能⼒构建简单场景的 app 或者⼩程序。
Flutter 更贴近原⽣开发的需求,拥有更好的性能和跨端能⼒。()
unity 主要是服务于游戏和3D渲染需求。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论