介绍
本指南主要目的是向开发者说明,如何使用 MPFlutter 开发 Flutter Native 应用,如果你需要使用 MPFlutter 开发其它类型应用,可以在上方 NaviBar 切换。
#
Flutter Native 应用的定义基于 MPFlutter 框架开发,在可以运行在 Web 和微信小程序的基础上,附加地可同时运行在 Flutter 上。
可以简单地认为,我们在 Flutter 上构建了一套小程序引擎,使得 MPFlutter 可以在 Flutter 上运行。
这也是 Flutter 动态化的一种实现。
Flutter Native 要求 MPFlutter 版本大于等于 0.20.0。
#
Flutter Native 的运行原理MPFlutter 仍然会将应用代码编译为 JavaScript,除 JavaScript 外还会连同资源文件打包成 mpk
。
在 Flutter 上,使用 JavaScriptCore(iOS) 或 V8(Android) 作为 JSRuntime 执行应用代码。
Flutter 承担的是宿主角色,Flutter 接收来自 MPFlutter(JS) 的样式和布局信息,使用 Flutter Widget 进行渲染。
#
性能由于使用 JSRuntime 执行逻辑代码,性能会存在一定损耗。
具体表现在:
- 逻辑代码运算性能,当存在大规模 CPU 运算时,会卡顿。
- Layout 性能,当页面结构过于复杂时,会卡顿。
渲染、滑动性能不受影响,与 Flutter 一致。
#
功能MPFlutter 的内置功能在 Flutter Native 上表现完全一致,如果有未对齐的地方可以提出 Issue 修正。
Flutter Native 本身并没有提供如微信小程序丰富的 API 封装,因此,大部分能力都需要开发者自行封装。大部分 Flutter 社区插件可以在简单修改后运行在 Flutter Native 上,修改方法可以参考文档。
#
合规可以上架到 AppStore 吗?
可以,MPFlutter 并没有超出 Apple 的合规限制,JSRuntime 使用的是 Apple 允许使用的 JavaScriptCore。