5+app uni-app flutter三者区别是什么?(uniapp和flutter)

sddy008 股民交流 2022-10-20 156 5

我也来回答一下这个问题。

本人从事多年跨平台技术实战和研究,我特意写了一篇文章,记录从事编程那些年经历的跨平台开发工具框架演变历史,包括:Cordova,Xamarin,Titanium,NativeScript,React Native,Electron,uni-app,Flutter,大概有1w字左右,你想用哪个都可以在这里找到答案,哪个是什么作用,底层框架大概是什么,原理是什么,以及它们每一个的优缺点都做了一个详细的对比,大家可以去看看。

AWeiLoveAndroid:从事编程那些年经历的跨平台开发工具框架演变历史131 赞同 · 11 评论文章

1、首先你要搞清楚什么才是跨平台的真正目的。任何跨平台无非就是以下几种方式去解决问题:

  • 语言层面编译转换一下,编译成C语言或者字节码之类的,能够运行在不同的设备上面,但是这个语言转换过程很复杂,而且还需要做移植的工作。比如著名的:swiftUI,kotlin-native就是这类型的跨平台框架。
  • 自带渲染引擎,不依赖于任何平台,一套代码就可以自动编译成多个平台的应用程序。比如:Flutter
  • 中转类型的框架,使用JS衔接原生平台的一些功能,要么由社区开发者自己维护一套扩展兼容库,要么本身带有一系列的兼容库,但是还是摆脱不了Web的环境和编程思想,全部依赖于JS,如果不熟悉JS的朋友,去用这种类型的框架开发跨平台应用程序,简直是灾难。这类型的框架有:React Native,Weex,当然也包括楼主提出的5+app以及uni-app。

2、既然有了上面的介绍,相信大家也会大概了解跨平台框架的一些大概分类和作用了。那么我们再回到问题本身来。

无论5+app也好,还是uni-app也好,终究只是对传统h5 app做的优化。

下面来看看对比:

h5+ app:

  • 【优点:】h5+内置runtime,可以使用它去调用native的一些功能,产品体验比较好(针对UI来说的)。
  • 【缺点:】但是开发难度也高,另外不管是兼容性,还是native功能衔接以及适配都是一个很大的问题,如果要针对不用版本的系统(比如Android SDK一直在更新)和手机设备做兼容,这个还需要h5+ app研发团队做定制化更新,但是你的项目需要用到啊,你要等到猴年马月才能等到h5+ app更新?所以如果一个框架重度内置一些固定的native功能,一般推荐你慎重考虑,因为你需要兼容不同的系统和设备,你不可能让h5+ app这类第三方的框架随时帮你升级到你想要的native功能,说实话你的项目也等不了这么久。

uni-app:

  • 【优点:】uni-app内部兼容了vue的写法,用于跨平台,可以同时支持android、ios,多家主流小程序,以及H5,可以说是很全面的一个框架。兼容性做的还行,至少用市面上流行的web框架来看,uni-app应该算是集大成的一个框架了。如果你的应用程序只是用纯web开发的话,你又想做小程序,uni-app一举两得,倒是很适合你的。
  • 【缺点:】
1.但它也有缺点的,比如很多web库你无法使用,因为uni-app的内部原理决定了它不支持web库,所以如果你要用第三方web库,抱歉了很多都不支持,除非你不用uni-app。2.另外一个就是uni-app如果想个性化定制一些功能的话,有点难度,因为目前你只能按照它的要求去做,所以如果你想开发很牛逼的功能,或者UI界面,那么你应该放弃使用uni-app。3.真机调试debug是一个很严重的问题,对移动设备的调试和兼容方面做的还不够。

Flutter:

  • 【优点:】Flutter是谷歌推出的一个全新的跨平台的开发框架。
1.你只需要使用Dart语言写一套代码,即可自动编译到各个平台,目前支持Android,iOS,Web(Beta),Desktop(Alpha),当然也有Windows PC和linux平台的兼容支持官方正在研发中。所以你完全不用担心框架内部是如何帮你实现的。你只需要一个命令行就可以在对应平台运行你的代码了,比如:flutter run xxx,这里的xxx指的是你的平台设备名称,比如“flutter run chrome"表示将程序运行在浏览器上面。2.高性能高一致性。你的代码编译出来的程序可以达到60bps的高性能。3.丰富的组件支持,你完全可以按照你的想法去做,扩展性非常强大,MD风格的,以及ios风格的组件都有,足够满足平时开发需求。而且Flutter基于react以及flex的思想进行布局,Dart语法很像JS+Java+Swift+Kotlin+C#+TypeScript+JavaScript+PHP,虽然表面上没有使用web开发,但是你完全不用担心,你仍然可以进行开发,只是语言写法不一样,但是这里面很多都是熟悉的东西,基本上上手成本也是很低的。4.丰富的社区支持。目前常用的组件以及一些第三方包都有大佬开源出来了,足够应对平时的开发了。如果你不清楚的话,也没干系,我特意收集了Flutter工具集合,这里面啥都有,足够让你可以快速找到你要的东西,你可以点进来看看:https://github.com/AweiLoveAndroid/Flutter-learning/5.开源免费的。你可以随意修改内核引擎代码,以及组件代码,定制化的开发,比如闲鱼,腾讯,字节跳动等大厂都基于Flutter进行针对他们的App开发做了定制化的整合方案,当然你要是感兴趣的话,你也可以这么做。
  • 【缺点:】
如果不熟悉原生开发,第三方包满足不了你的需求的时候,那么就需要你自己去写或修改已有的插件,这个需要学习一点原生开发的知识(其实这也是很多跨平台技术必不可少的步骤),当然如果你们公司有android或ios的程序员,可以让他们协助写一个插件,这对于他们来说都是小问题。

评论

精彩评论
2024-08-02 00:15:45

每天顶顶贴,一身轻松啊!http://q30i.tecza.net

2024-08-13 04:28:20

收藏了,以后可能会用到!http://y73.xxdesign.cn

2024-08-29 06:09:00

以后就跟楼主混了!http://f5he9.bbgfac.cn

2024-09-12 08:48:02

今天的心情很不错啊http://www.guangcexing.net/voddetail/GXkYPFpZsAywh.html