美文网首页
Flutter组件化

Flutter组件化

作者: WQDev | 来源:发表于2024-05-16 17:49 被阅读0次

一、Flutter四种工程类型
Flutter工程中,通常有以下几种工程类型,下面分别简单概述下:

  1. Flutter Application
    标准的Flutter App工程,包含标准的Dart层与Native平台层
  2. Flutter Module
    Flutter组件工程,仅包含Dart层实现,Native平台层子工程为通过Flutter自动生成的隐藏工程
  3. Flutter Plugin
    Flutter平台插件工程,包含Dart层与Native平台层的实现
  4. Flutter Package
    Flutter纯Dart插件工程,仅包含Dart层的实现,往往定义一些公共Widget

二、Flutter 组件化实施细节
1、了解一下 Plugin 原理
Flutter Plugin 提供Android或者iOS的底层封装,在Flutter层提供组件功能,使Flutter可以较方便的调取Native的模块。
很多平台相关性或者对于Flutter实现起来比较复杂的部分,都可以封装成Plugin。其原理如下:
iOS: AppDelegate -> FlutterViewController -> iOS Platform API(及第三方依赖)
Android: Activity -> FlutterView -> Android Platform API(及第三方依赖)

Plugin 中,Flutter 和 原生的交互也是通过 Platform Method Channel 来实现的,但是这部分内容在最终使用这个Plugin的时候,是隐藏在了Plugin内部的,使用方不可见。
使用Plugin时,如果需要获取一些原生APP关于业务上需要传递的信息,比如 Token 之类的,需要通过接口传入。

  • Plugin 和原生直接通过Platform Method Channel 交互,Plugin 会定义好相关接口,所支持的平台(例如Android和iOS)都需要实现这些接口
  • dart 中调用 _channel.invokeMethod 对原生发起一次请求
  • java 在 onMethodCall 中处理请求
  • objc 在 handleMethodCall 中处理请求
  • Plugin 和Flutter App/Module 直接的交互,直接通过 Plugin 定义的接口进行

二、创建新的 Plugin

  • 1、直接通过命令行创建:
    flutter create --template=plugin --platforms=android,ios -i objc -a java flutter_remac_gateway_fourth
  • 2、在 lib/remac_connectivity_plugin.dart 文件中定义插件 API, lib/remac_connectivity_plugin_platform_interface.dart 中定义插件内和原生交互的 API
  • 3、在android/src/main/java/com.remac.remac_connectivity_plugin/RemacConnectivityPlugin.java 文件中添加 Android 平台代码
  • 4、在ios/Classes/RemacConnectivity.h/.m 文件中添加 iOS 平台代码
  • 5、README.md 文件用来对 package 进行介绍
  • 6、CHANGELOG.md 文件用来记录每个版本的更改
  • 7、LICENSE 文件用来阐述 package 的许可条款
    -8、为配网 Plugin 引入第三方Package
  • 直接在 pubspec.yaml文件中添加就行,例如:
name: flutter_remac_gateway_fourth
description: A new Flutter plugin project.
version: 0.0.1
homepage:

environment:
  sdk: '>=2.19.2 <3.0.0'
  flutter: ">=2.5.0"

dependencies:
  flutter:
    sdk: flutter
  plugin_platform_interface: ^2.0.2

  flutter_picker: ^2.1.0
  flutter_remac_foundation:
    path: ../flutter_remac_foundation/

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0

三、Flutter中间件引入子组件
在yaml文件中添加依赖:
flutter_remac_gateway_fourth:
path: ../flutter_plugins/flutter_remac_gateway_fourth/

相关文章

  • Flutter组件化

    使用Flutter Module实现组件化的思路:Flutter组件化[https://juejin.cn/pos...

  • 如何实现 Flutter 与原生的混合开发方式?详解Flutte

    为了把 Flutter 引入到原生工程,我们需要把 Flutter 工程改造为原生工程的一个组件依赖,并以组件化的...

  • Flutter(十二)混合栈开发-组件化Flutter工程

    Flutter混合栈开发 组件化Flutter工程 Flutter本身就是为了在移动端上提供一个快速开发的技术方案...

  • Flutter混合栈开发-组件化Flutter工程

    Flutter混合栈开发 组件化Flutter工程 Flutter本身就是为了在移动端上提供一个快速开发的技术方案...

  • flutter组件化调研

    一、组件化接入方式 跟原生组件化类似,共有两种方式接入:pod和framework怎么配置flutter环境,fl...

  • Flutter - UI基础

    Flutter基础组件用Flutter构建漂亮的UI界面 - 基础组件篇Flutter滚动型容器组件 - List...

  • Flutter 组件化编程

    组件化编程就像是搭积木一样的开发。把整个应用拆分成许多部分,每部分各自管理自己的组件以及数据状态,这样达到一个更好...

  • Flutter组件化框架

    转载请注明出处,保持文章完整:Flutter组件化框架[https://juejin.cn/editor/draf...

  • Flutter组件化框架

    作者:caojianfeng 组件化无处不在 军队中有“军师旅团营”,营是团的组件,师是军的组件。 国家中有“省市...

  • Flutter组件化框架

    组件化无处不在 军队中有“军师旅团营”,营是团的组件,师是军的组件。 国家中有“省市县乡村”,村是乡的组件,市是省...

网友评论

      本文标题:Flutter组件化

      本文链接:https://www.haomeiwen.com/subject/lufifjtx.html