Flutter动态化开发之Fair实战

2023-09-14 09:36:41

一、背景

目前移动端应用的版本更新, 最常见的方式是定期发版,无论是安卓还是iOS,都需要提交新的安装包到应用市场进行审核。审核通过后,用户在应用市场进行App的下载更新。而动态化, 就是不依赖更新程序安装包, 就能动态实时更新页面的技术。

相比动态化技术,定期发版更新应用的方式存在一些问题,比如:

  • 审核周期长, 且可能审核不通过。 周期长导致发版本不够灵活, 紧急的业务需求不能及时上线。
  • 线上出现急需修复的bug时,需要较长修复周期,影响用户体验。
  • 安装包过大, 动辄几十兆几百兆的应用升级可能会让用户比较抗拒。
  • 即使上线了,也无法达到全部用户升级, 服务端存在兼容多版本App的问题。

面对这些问题,如果能实现app增量、无感知更新,实现功能同步。无论是对公司还是用户都是非常好的体验。并且,动态化更新还能很好的解决以上问题:

  • 随时实现功能升级。
  • 线上bug可以实时修复,提高用户体验。
  • 减小发版功能包体积。
  • 发版后用户同步更新,不存在旧版本兼容问题。

经过团队近期的调研和学习,对业界Flutter动态化框架进行了如下总结:

  • MXFlutter(腾讯):  使用js编写dart,  抛弃了 Dart 生态,维护困难。
  • MTFlutter(美团):  布局,逻辑都使用Dart,增加语法解析和运行时, 由于其未开源,无从深入研究。
  • Fair(58):  使用转换AST+JS的方式,通过下发bundle 和 js实现热更新,代表框架 Fair。
  • <
更多推荐

从四个角度全面认识 ChatGPT

传统语言模型是什么样的?ChatGPT涌现出了哪些新能力?这些能力都是怎么做到的?在ChatGPT大模型时代,我们应该怎么做?当下最引人注目的语言模型ChatGPT如火如荼,主要还是因为其能力远远超越了传统模型。本文将对ChatGPT与传统模型进行对比,深入探讨ChatGPT具备的强大能力以及其背后的技术来源。此外还将

Linux环境变量

在Linux系统中,环境变量是用来定义系统运行环境的一些参数。例如,每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等¹。环境变量的名称一般都是大写的,这是一种约定俗成的规范。以下是一些Linux系统中重要的环境变量:HOME:用户的主目录(也称家目录)SHELL:用户使用的Shell解释器名称PATH:定义

【深度学习实验】线性模型(二):使用NumPy实现线性模型:梯度下降法

目录一、实验介绍二、实验环境1.配置虚拟环境2.库版本介绍三、实验内容0.导入库1.初始化参数2.线性模型linear_model3.损失函数loss_function4.梯度计算函数compute_gradients5.梯度下降函数gradient_descent6.调用函数一、实验介绍使用NumPy实现线性模型:梯

基于量子粒子群算法(QPSO)优化LSTM的风电、负荷等时间序列预测算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码实现💥1概述本文基于QPSO-LSTM算法进行负荷、光伏和风电

操作系统读书笔记- 01 x86系统架构概览.md-html

x86系统架构概览真看不懂了…今天就写这些吧2.0.处理器工作模式一般来讲,x86-64处理器具有5种工作模式:实模式(Real-addressMode):处理器以16位8086的方式工作,只能以简单的段地址:偏移地址方式进行寻址,地址空间只有20位,不具有内存保护、虚拟内存、特权级限制等高级功能。当处理器上电复位之初

WebRTC 的多媒体音视频帧传输协议

WebRTC的多媒体音视频帧传输主要使用RTP(Real-timeTransportProtocol)。以下是相关的协议和组件:1.RTP(Real-timeTransportProtocol):这是一个传输实时数据,如音频、视频或模拟数据流的协议。在WebRTC中,RTP用于传输音频和视频数据。2.RTCP(Real

ELK日志分析系统

目录1、ELK日志1.1、概述1.2.1、每个组件的简介:1.2.2、可以添加的组件1.3、使用ELK的原因1.4、完整日志系统基本特征1.5、日志服务系统1.6、ELK的工作原理:1.7、日志处理步骤2、Elasticsearch个绍2.1、Elasticsearch的概述2.2、Elasticsearch核心概念2

算法刷题 week4

目录1.斐波那契数列题目题解(递推+滚动变量)O(n)剑指offer10-II青蛙跳台阶问题题目题解10.旋转数组的最小数字题目题解(二分)O(n)1.斐波那契数列题目题解(递推+滚动变量)O(n)这题的数据范围很小,我们直接模拟即可。当数据范围很大时,就需要采用其他方式了,可以参考求解斐波那契数列的若干方法。F(0)

详解WebSocket

目录1.WebSocket是什么?2.WebSocket的通信过程3.WebSocket的报文结构4.JAVA中的WebSocket1.WebSocket是什么?在传统的BS体系中,请求响应一直是单向的,服务器一直扮演的”被动“的角色,浏览器发起请求去访问服务器,服务器才会返回响应。这种单向的模式让实时通信、消息推送一

Vue3项目中使用插槽

前言:此文章仅记录插槽的使用,用于自己后期学习查看。代码实现过程中,HelloWorld为子组件,HomeView为父组件<slot></slot>元素:是一个插槽出口,是写在子组件中的,表示了父组件提供的插槽内容将在子组件哪一个位置展示。默认插槽:HellowVorld组件内容:情况一:HomeView组件不提供插槽

百川的大模型KnowHow

卷友们好,我是rumor。大模型是一个实验工程,涉及数据清洗、底层框架、算法策略等多个工序,每个环节都有很多坑,因此知道如何避坑和技术选型非常重要,可以节省很多算力和时间,说白了就是一摞摞毛爷爷。近期百川智能发布了Baichuan2的7B和13B版本,可能不少卷友被刷屏惯了没有仔细看,他们在放出模型的同时也给了一份技术

热文推荐