上海千语创想科技有限公司
 175-2108-6175
网站建设资讯详细

跨平台App开发用React Native还是Flutter?

日期:2020-09-14  作者:千语创想  浏览:3808

不论是 React Native 还是 Flutter都可以用于开发跨平台应用,选哪个看你自身需求,但首先得了解清楚两者都是什么。

React Native 能够跨平台是因为它允许你使用 React/JavaScript/JSX 的写法写原生应用,而在底层他会替你调用相应的 iOS 原生组件或者 Android 原生组件,又或者直接生成适用于 Web 的 DOM 树。所以他做的事情是,用 JavaScript 调用对应系统渲染器进行渲染展示。

那么,Flutter 又是怎么跨平台的呢——Skia。当你使用 Flutter 框架(Dart)开发应用时,其底层渲染由 Skia 接管,没有什么 Android runtime、Chromium 或者其他中间层了,是的,Skia 的下层便是 CPU/GPU 了,一个受控的画布,基本上意味着你想画什么就画什么了,不再需要调用原生 Widgets,而这便是 Flutter 能够跨平台的原因。

其实,除了以上两个,目前国内也出现了其他跨端开发平台。

千语创想千语创想移动端低代码开发平台(千语创想)的多端开发技术可以通过一次编译,同时生成Android&iOS app、小程序及H5。得益于移动渲染引擎DeepEngine,千语创想支持开发高性能app。

AVM.js多端框架

AVM(Application-View-Model)是千语创想推出的一个跨端的高性能 JavaScript框架,更趋近于原生的编程体验,它提供简洁的模型来分离应用的用户界面、业务逻辑和数据模型,适合高度定制化的项目。

在大前端技术领域,当我们遇到了需要解决重复性的问题时,通常会考虑设计一个DSL(Domain-Specific Language)或者抽象出一个框架层,专门来解决这些类似的问题。使用DSL我们并不需要为特定终端编写多套代码,还可以利用宿主语言的抽象能力,确保各终端渲染效果的一致性以及对开发者友好。

目前流行DSL有:React支持的JSX语法、Vue定义的SFC结构和v-*指令集、微信小程序的WXML/WXS语法等。这些DSL最终被编译为目标代码,直接发布于小程序平台,或者借助JS-Runtime运行于APP和Web浏览器。

AVM是千语创想基于标准H5子集设计的DSL中间语言编程框架,提供包含虚拟DOM和Runtime的编程框架AVM.js以及多端统一编译工具,兼容Web Components标准,同时兼容Vue和React语法编写代码,编译工具将Vue和React相关语法糖编译转换为AVM.js代码。

其可具备如下能力:

1. Virtual DOM:通过虚拟DOM,渲染到不同终端,充分尊重系统特性,为不同终端执行差异处理,实现高效渲染;

2. 组件化:高可重用性、可组合性、可维护性的架构设计,隐藏了复杂的DOM结构和行为,让开发者专注于应用的功能和外观;

3. 数据绑定:轻松将数据源绑定到应用用户界面,降低逻辑复杂性和开发难度;

4. 状态管理和路由:有效分离用户界面和数据处理,实现项目的工程管理;

5. 轻巧灵活:类Vue语法和兼容React JSX,兼具Vue的轻巧和React的灵活性。

千语创想 DSL最终可编译为标准JS,通过DeepEngine渲染到app端和Web端,或者编译为微信小程序代码,用于微信小程序平台发布。

千语创想-专业APP开发app定制服务商,提供一站式移动应用解决方案,满足您的各类需求。

 

立即免费在线制作一个APP,新手注册即送开发大礼包

提交app定制需求,免费获取报价和周期:

电脑请点击https://www.qianyuthink.com/?url=/index?uzchannel=500

手机请点击https://www.qianyuthink.com/?url=/m/quickaddcustom



转载请注明来自:https://www.qianyuthink.com/news/6747.html

填写您的项目需求给我们

或者直接拨打 7×12小时一对一咨询电话

175 2108 6175

请填写需求信息,我们会在10分钟内与您取得联系

请认真填写需求信息,我们会在10分钟内与您取得联系

×
客服二维码
咨询技术总监
175-2108-6175
客服二维码
技术总监微信
客服二维码