Flutter动态化—Fair一站式开发流

原创
06/01 10:19
阅读数 5.1K

1

前言

Flutter 是 Google 开源的跨平台 UI 框架,其凭借“多端一致”和“渲染性能”上的优势成为越来越多开发者的首选。但随着使用规模加大,为了解决诸多快速迭代的业务产品线及需求,动态化成为了当下亟需解决的问题

Fair是58自研的的动态化框架,通过Fair Compiler工具对原生Dart源文件的自动转化,使项目获得动态更新Widget Tree和State的能力。


近期我们在吸取了开源社区的反馈与建议后,针对开发体验完善了Fair的配套工具建设,下面进入正题


2

项目背景

当前Fair在使用上有着一定的门槛,新接触的小伙伴一般是阅读使用指南来上手Fair,大致需要经过下面的几个步骤

1. 创建工程,配置依赖

2. 编写Fair代码,手动编译动态化产物

3. 将编译产物手动拷出,通过文件或者网络的方式加载

4. 安装预览效果

如果需要更新动态化产物重新预览效果的话,就要重复234步骤,这样对于上手的过程是极不方便的,我们在开源社区收到的反馈中也有很大一部分是有关基础使用。

研发Fair配套工具链是为了辅助开发者快速上手 Fair开发,提升Fair开发效率,规避Fair不支持的Flutter语法,主要包含三个部分:

1. 工程创建:快速搭建Fair载体工程及动态化工程
2. 模板代码:提供页面及组件模板
3. 本地热更新:线下开发使用,实现开发阶段快速预览Fair动态化功能

我们以dart命令行工具及AS插件的形式提供给开发者使用。


3

流程图

使用流程图如下:


3.1 使用说明

步骤一:工具安装

安装 Faircli 命令行工具

dart pub global activate faircli

安装 AS 插件

现在已上传插件市场。可从/Android Studio/Preference/Plugins 搜索 "FairTemplate" 安装。

准备工作完成后,下面进入开发使用流程。


步骤二:Faircli-工程创建

工程分为载体工程及动态化工程。动态化的功能模块需要在动态化工程中开发。载体工程提供 bundle 下载、加载及基础能力支持。

创建动态化工程

faircli create -n dynamic_project_name

dynamic_project_name: 动态化工程名

创建载体工程

faircli create -k carrier -n carrier_project_name

carrier_project_name: 载体工程名

使用演示


步骤三:IDE插件-功能开发

模板代码使用


选择代码模板,生成对应的代码文件。


在生成的代码中,进行二次开发。

一键打包

功能开发完成后,可使用 AS 插件进行一键打包。



步骤四:启动本地热更新服务

打包完成之后,可启动本地热更新服务,进行开发功能预览。


当控制台打印如下信息,表示成功启动本地热更新服务。


开发者选项

运行载体工程,进入开发者选项页面。


输入 host,加载 bundle 列表。选择对应的 bundle,进行功能预览。
手机摇一摇,可触发重新加载功能。

步骤五:IDE插件-上传 bundle 到线上环境



3.2 使用效果

当使用faircli工具配置好本地的热更服务后,在移动设备上打开开发者选项,选择本地模式,输入电脑ip地址,就可以愉快的预览fair动态化效果啦。

4

总结与展望

本文主要介绍了Fair配套工具链的使用,配套工具解决了当前Fair使用上的痛点,后续我们也会持续在开源社区中关注大家的反馈与建议。

  //  

支持我们

欢迎大家使用 Fair,也欢迎大家为我们点亮star

Github地址:https://github.com/wuba/fair
Fair官网:https://fair.58.com

欢迎贡献

通过Issue提交问题,贡献代码请提交Pull Request,管理员将对代码进行审核。

对Fair感兴趣的小伙伴,可以加入交流群。


微信入群:请先添加58技术小秘书为好友,备注fair,小秘书邀请进群。

本文分享自微信公众号 - 58技术(architects_58)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
7 收藏
1
分享
返回顶部
顶部