
轻量级
核心运行时仅2.6K行代码,身型轻巧,体积没烦恼
低侵入
整体PUB依赖,只需几行代码,FAIR即刻运行
易扩展
插拔式的组件,一个注解搞定业务组件和社区UI库,扩展你的想象
更灵活
通过一份Flutter源代码,动态&原生灵活转换,成本无限小
Flutter全适配
不断更新的Fair-Version,适配大多数Flutter版本,无版本焦虑
热更新平台
完善的热更新平台,一键部署到任何地方
IDE插件
IDE配套插件,实时监测您的Flutter-FAIR语法,遇到问题一键替换
在线平台
随时随地享受Flutter-FAIR带给你的超强体验
现在就上车
简单几步,接入Fair.
1、同步fair工程代码
推荐同步 fair 相关代码,并且进行本地依赖:
同步方式:
git clone https://github.com/wuba/fair.git
2、在 pubspec.yaml
添加依赖
将Fair工程和对应的业务工程放在同一个目录中,并添加依赖:
# add Fair dependency
dependencies:
fair: 3.0.0
# add build_runner and compiler dependency
dev_dependencies:
build_runner: ^2.0.0
fair_compiler: ^1.4.0
# switch "fair_version" according to the local Flutter SDK version
# Flutter SDK 3.3.x(3.3.0、3.3.1、3.3.2、3.3.3、3.3.4、3.3.5、3.3.6) -> flutter_3_3_0
# Flutter SDK 3.0.x(3.0.0、3.0.1、3.0.2、3.0.3、3.0.4、3.0.5) -> flutter_3_0_0
# Flutter SDK 2.10.x(2.10.0、2.10.1、2.10.2、2.10.3) -> flutter_2_10_0
# Flutter SDK 2.8.x(2.8.0、2.8.1) -> flutter_2_8_0
# Flutter SDK 2.5.x(2.5.0、2.5.1、2.5.2、2.5.3) -> flutter_2_5_0
# Flutter SDK 2.0.6 -> flutter_2_0_6
# Flutter SDK 1.22.6 -> flutter_1_22_6
dependency_overrides:
fair_version:
path: ../fair/flutter_version/flutter_3_3_0
3、将App替换为FairApp
void main() {
WidgetsFlutterBinding.ensureInitialized();
FairApp.runApplication(
_getApp(),
plugins: {
},
);
}
dynamic _getApp() => FairApp(
modules: {
},
delegate: {
},
child: MaterialApp(
home: FairWidget(
name: 'DynamicWidget',
path: 'assets/bundle/lib_src_page_dynamic_widget.fair.json',
data: {"fairProps": json.encode({})}),
),
);
4、添加FairWidget作为动态Widget
FairWidget(
name: 'DynamicWidget',
path: 'assets/bundle/lib_src_page_dynamic_widget.fair.json',
data: {"fairProps": json.encode({})}),
根据不同场景诉求,FairWidget可以混合和使用
- 可以作为不同组件混合使用
- 一般作为一个全屏页面
- 支持嵌套使用,即可以局部嵌套在普通Widget下,也可以嵌套在另一个FairWidget下
相关示例详情,请查看 example 代码