Flutter鸿蒙化中FlutterModule详解[特殊字符][特殊字符]
Flutter Module(Flutter模块) 不是一个完整的、可以独立安装运行的Flutter App。相反,它是一个专门被设计用来集成到现有原生(iOS/Android)应用程序中的Flutter代码包。你可以把它想象成一个功能强大、高性能的“乐高积木”或“插件包”。你的主工程(用Java/Kotlin或Objective-C/Swift编写)是底座,而Flutter Module就是那块
目录:
- 什么是fluttermodule?
- fluttermodule的使用场景及作用?
- fluttermodule的实现及开发流程
前言:
当你们公司在开发购物类App时,如果技术栈原本选用了RN、WebView和原生混合模式,开发进行到一半,老板出于性能考虑,希望将订单列表页改用Flutter来实现——这时该怎么办?
团队中的小流提出了两种思路:
方案一:全面转向Flutter,废弃已有的RN和原生代码,从头重写。
方案二:保留现有代码,仅将Flutter以模块形式集成到原有项目中。
显然,方案一成本高、周期长、风险大;而方案二采用多框架混合开发模式,能在较短时间内以较低风险实现目标。因此,我们今天就来重点讲解如何在现有项目中集成Flutter Module,实现平滑的技术融合。
接下来,我们就进入具体实践环节。
一:什么是fluttermodule?
Flutter Module(Flutter模块) 不是一个完整的、可以独立安装运行的Flutter App。相反,它是一个专门被设计用来集成到现有原生(iOS/Android)应用程序中的Flutter代码包。
你可以把它想象成一个功能强大、高性能的“乐高积木”或“插件包”。你的主工程(用Java/Kotlin或Objective-C/Swift编写)是底座,而Flutter Module就是那块可以完美嵌入底座、实现特定功能的特殊积木。
二:fluttermodule的使用场景及作用?
Flutter Module 的核心价值在于为已有成熟应用提供了一条渐进式、低风险的架构演进路径。它并非要求“All in Flutter”的推倒重来,而是允许我们将 Flutter 作为一款高性能的“增强插件”,精准地用于改造应用中的关键模块(如订单列表、商品详情等复杂交互页面)。其核心作用是:在最大程度保护既有技术投资(原生/Rn代码)的前提下,以模块化方式引入 Flutter 的热重载、跨平台UI一致性以及优异的渲染性能,从而快速解决特定场景的性能瓶颈和体验问题。本质上,它是一种平衡“历史包袱”与“技术革新”的务实策略,让团队能以最小的成本和风险,实现对应用的持续优化与现代化升级。
三:fluttermodule的实现及开发流程(重要‼️)
1.创建一个fluttermodule
终端输入命令:flutter create -t module xxx
xxx为module名称

fluttermodule模块并不存在实际的安卓、IOS、鸿蒙的平台文件,只有临时的平台文件.ohos\.android\.ios

fluttermodule一遍用于实现flutter页面及flutter的插件实现、所以运行不起来,一遍需要自己本地mok数据,展示UI及功能实现。
2.查看mok数据样例:
只能将临时文件拖拽到DevEcoStudio打开,并签名,然后fluttermodule中执行flutter run 命令,可以直接查看到.ohos文件中的mok数据页面

如果需要应用到鸿蒙原生项目中,签名成功后,终端执行flutter build har

3.在鸿蒙原生项目中引入fluttersdk

4.oh-package.json中导入
如果是相对路径则不能把fluttermodule中.ohos文件中的har包删除
如果是绝对路径任意

最后:fluttermodule一般作为私仓/二方仓,及一些原生插件的实现用于存方在flutter module用于原生项目中使用。
有什么问题尽情留言,我一定会给你答复!❤️❤️
更多推荐

所有评论(0)