Flutter 动态化 | Flutter + Dart 三端一体化动态化平台实践

导读

FairPushy 是基于Flutter+Dart三端一体化打造的动态更新平台主要由Web + Server + Native全部使用Flutter+Dart编写,为Flutter动态化场景提供动态分发能力,全方位降低上手成本,提升开发体验。实现了动态化资源产物自动化打包和动态分发的能力,让开发者摆脱了技术栈的壁垒,并且系统轻量化、简单易用,目前项目已在Github开源:

  • 动态化平台 github:https://github.com/wuba/fairpushy

  • Fair github:https://github.com/wuba/fair

Flutter 动态化

Flutter相信大家一定不陌生了,它的设计初衷,就是允许在各种操作系统上复用同样的代码,例如 iOS 和 Android,用Flutter写的软件程序就能够在不同的平台上拥有原生体验的高性能应用。得益于他在每一个平台上,都会包含一个特定的嵌入层,从而提供一个程序入口,程序由此可以与底层操作系统进行协调。从2018年2月17日发布的beta1版本到现在3.0版本已经过了4个多年头。之所以这么火热无疑离不开他可以跨平台的特性和较高的UI性能,几乎满足的所有跨平台开发者的幻想,但是包大小和动态化问题也一直争议不断。

58也自研了Flutter动态化Fair,他是支持不发版(Android、iOS、Web)的情况下,通过业务bundle和JS下发实现更新,方式类似于React Native。Fair的UI渲染是无损的,可以做到像素级别的还原,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h1gw7bIE-1661761091066)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0b2a88a95246469db7803065e32b51d4~tplv-k3u1fbpfcp-zoom-1.image)]

动态化带来的好处毋庸置疑,会及时高效的满足业务需求,提升用户体验同时也会减少初始包的大小,提高装机率。如果出现质量问题也可以在不发版的情况快速得到解决。然而Fair动态化的bundle和JS产物需要有一个Web平台来管理分发,涉及Server、Web和Flutter插件,Flutter是基于Dart语言,Dart语言官方给的定义是”是面对对象的、单继承的语音他的语法与C语言有点类似,可在任何平台上开发快速的应用程序“因此我们打算全部用Dart语言来开发动态化平台。

FairPushy 选型

目前开发Server的语言已经很成熟了,比如常见的JAVA、Node.js、Go、PHP、Python等(排名不分先后)。从这几年的排行榜看Java仍稳坐铁王座第一名,是最受欢迎的语言,这肯定离不开他的语言特性:是一种简单的,面向对象的,分布式的,健壮安全的,可移植的,性能优异、多线程的动态语言。PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法;该语言当初创建的主要目标是让开发人员快速编写出优质的web网站比较适合用于个人网站、企业官网等轻量级的项目开发。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。而Node.js和Dart的介绍如下:

Node.js: 一个基于 Chrome 的 JavaScript 运行时构建的平台,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,如果你有前端开发经验无疑更适合用Node.js来开发服务端。

Dart: 一种新的 Web 编程语言,包含库、虚拟机和工具。Dart 是一个内聚的、可扩展的平台,用于构建在 Web(您可以使用 Polymer)或服务器(例如使用 Google Cloud Platform)上运行的应用程序。使用 Dart 语言、库和工具编写从简单脚本到功能齐全的应用程序的任何内容。

语言没有绝对的好坏,需要根据业务和成本选择合适的。单领出来Node.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值