我也来回答一下这个问题。 本人从事多年跨平台技术实战和研究,我特意写了一篇文章,记录从事编程那些年经历的跨平台开发工具框架演变历史,包括:Cordova,Xamarin,Titanium,NativeScript,React Native,Electron,uni-app,Flutter,大概有1w字左右,你想用哪个都可以在这里找到答案,哪个是什么作用,底层框架大概是什么,原理是什么,以及它们每一个的优缺点都做了一个详细的对比,大家可以去看看。 无论5+app也好,还是uni-app也好,终究只是对传统h5 app做的优化。 下面来看看对比: h5+ app: uni-app: Flutter:1、首先你要搞清楚什么才是跨平台的真正目的。任何跨平台无非就是以下几种方式去解决问题:
2、既然有了上面的介绍,相信大家也会大概了解跨平台框架的一些大概分类和作用了。那么我们再回到问题本身来。
1.但它也有缺点的,比如很多web库你无法使用,因为uni-app的内部原理决定了它不支持web库,所以如果你要用第三方web库,抱歉了很多都不支持,除非你不用uni-app。2.另外一个就是uni-app如果想个性化定制一些功能的话,有点难度,因为目前你只能按照它的要求去做,所以如果你想开发很牛逼的功能,或者UI界面,那么你应该放弃使用uni-app。3.真机调试debug是一个很严重的问题,对移动设备的调试和兼容方面做的还不够。
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的程序员,可以让他们协助写一个插件,这对于他们来说都是小问题。
评论
8001直播
回复每天顶顶贴,一身轻松啊!http://q30i.tecza.net
pg连输几天是不是要爆了
回复收藏了,以后可能会用到!http://y73.xxdesign.cn
游客
回复以后就跟楼主混了!http://f5he9.bbgfac.cn
游客
回复今天的心情很不错啊http://www.guangcexing.net/voddetail/GXkYPFpZsAywh.html