前言
Flutter 是 Google 开源的跨平台 UI 框架,其凭借“多端一致”和“渲染性能”上的优势成为越来越多开发者的首选。但随着使用规模加大,为了解决诸多快速迭代的业务产品线及需求,动态化成为了当下亟需解决的问题
Fair是58自研的的动态化框架,通过Fair Compiler工具对原生Dart源文件的自动转化,使项目获得动态更新Widget Tree和State的能力。
近期我们在吸取了开源社区的反馈与建议后,针对开发体验完善了Fair的配套工具建设,下面进入正题
项目背景
当前Fair在使用上有着一定的门槛,新接触的小伙伴一般是阅读使用指南来上手Fair,大致需要经过下面的几个步骤
如果需要更新动态化产物重新预览效果的话,就要重复234步骤,这样对于上手的过程是极不方便的,我们在开源社区收到的反馈中也有很大一部分是有关基础使用。
研发Fair配套工具链是为了辅助开发者快速上手 Fair开发,提升Fair开发效率,规避Fair不支持的Flutter语法,主要包含三个部分:
我们以dart命令行工具及AS插件的形式提供给开发者使用。
流程图
使用流程图如下:
使用说明
步骤一:工具安装
安装 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 到线上环境
使用效果
当使用faircli工具配置好本地的热更服务后,在移动设备上打开开发者选项,选择本地模式,输入电脑ip地址,就可以愉快的预览fair动态化效果啦
总结与展望
本文主要介绍了Fair配套工具链的使用,配套工具解决了当前Fair使用上的痛点,后续我们也会持续在开源社区中关注大家的反馈与建议。
Flutter动态化主题沙龙倒计时,敬请参加!!!
Fair团队将联手编程平台于11月22日 18:00举办《Flutter动态化—Fair 3.0全流程解决方案》主题沙龙
沙龙主题:
- 第一章 FAIR 框架介绍
- 出品人寄语
- Fair介绍及实现原理揭秘
- 第二章 FAIR 原理介绍
- Fair原理详解:布局动态化原理及优化
- Fair原理详解:逻辑动态化原理及优化
- 第三章 FAIR 全流程工具介绍
- Fair 3.0:Fair热更新平台搭建
- Fair 3.0:Fair云开发平台&配套工具链
本次沙龙,干货满满,不仅可以协助大家快速搭建Flutter动态化工程,还会深入剖析实现原理。Fair团队带着满满诚意,静候各位开发者们批评指正~!
预约&参与方式:
- 通过官网添加小秘书加入社群
- 关注编程官网近期通告
支持我们
欢迎大家使用 Fair,也欢迎大家为我们点亮star
Github地址:github.com/wuba/fair
Fair官网:fair.58.com/
欢迎贡献
通过Issue提交问题,贡献代码请提交Pull Request,管理员将对代码进行审核。
本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!