采用组件化开发Flutter,将会有如下的优势:
- 将功能模块化,相互独立,方便管理
- 模块之间互不影响,耦合低,一些与业务无关的模块可以开源出来,供其他APP使用,提供代码的复用。
- 采用组件化开发,开发时互不影响,可以提高开发效率。
- 方便单元测试
下面介绍Flutter组件化开发的具体内容。
3.从Platform Channel说起
- 定义
Platform Channel为Dart和平台之间提供了相互通信的机制,将Flutter、Android、iOS连接起来。
在移动H5开发中,webview自身提供的功能往往不够用,为了解决这个问题,引入了jsbridge,即web与native之间进行数据交互的一种方法,可以方便的将native的功能扩展给webview使用,从而可以快速开发。在Flutter中,也存在和jsbridge一样的用法,那就是Platform Channel,我们可以通过Platform Channel,将Flutter和Native方便的连接在一起,架构图如下:
在Channel中
- client发送信息
- host接受信息并返回结果
- 而且消息和响应是以异步方式传递的
- Flutter和Natvie可以互为client和host,信息传递是双向的
而且在Flutter中实现一个Channel也非常简单,假如Flutter作为client,Native作为Host,只需要:
- 在Flutter层声明一个Channel,发送消息到Native,等待Native结果返回
static const platform = const MethodChannel(‘samples.flutter.io/battery’);
int result =