Day03 Federated plugins (联合插件)

Federated plugins (联合插件)

是一种将对不同平台的支援功能分为单独的软件包。所以联合插件能够使用针对iOS、Android、Web 甚至是针对汽车(例如在IoT 设备上)分别使用对应的package。除了这些好处之外,它还能够让各领域专家在他们最了解的平台上扩展现有的平台插件

联合插件需要以下package:

  • app-facing package

    使用插件时所依赖的package,此package 指定 Flutter 应用程序使用的 API

  • platform package(s)

    一个或多个包含特定於平台的实作程序码的package,由app-facing package 调用这些platform package

  • platform interface package

    将app-facing package 连接到platform package 的package。此package 声明了一个接口,各platform package 都必须实作该接口以支援app-facing package 。拥有定义此接口的package 可确保所有platform package 以各平台的实作程序码来实现接口上统一定义的功能

官方推荐一个具体的例子: How to Write a Flutter Web Plugin, Part 1

Endorsed federated plugin(认可的联合插件)

理想状况下,若想要新增平台实现至一个联合插件时,这时将与联合插件作者协调以引入您新增的平台实现,通过这种方式,原作者认可您的实现。

例如,假设您想要为foobar插件新增一个Windows 平台的foobar_windows ,编写了其Windows 平台的实现後,在认可的插件中,foobar原作者将您的 Windows 实现添加为app-facing package 的 pubspec 中的依赖项,之後在 Flutter 应用程序中引入foobar插件後,Windows 实现以及其他认可的实现将都可以使用

Non-endorsed federated plugin(未经认可的联合插件)

如果不想让原始插件作者添加您的实现,那麽您的插件就没有得到认可,在 Flutter 应用程序中仍然可以使用您的实现,但必须手动将插件添加到应用程序的 pubspec 文件中,例如,必须在应用程序的 pubspec 中引入foobar的依赖foobar_windows以实现完整的功能依赖


<<:  ASP.NET MVC 从入门到放弃(Day13) -C# HttpClient 泛型功能介绍

>>:  [2021铁人赛 Day03] 解题前的准备工作

【LeetCode】Linked List

能够完赛的人是鬼吧 本文会提到做 singular linked list 常犯错误、如何避免,与常...

【Day 5】机器学习基本功(三) --- Regression

如何找到一个函式(function)?(下) 步骤一:写出一个带有未知参数的函式 昨天举的例子 是一...

Day 12 wireframe 大城市综览 + 天气预报( side project 配对单有意者请进)

今天开了配对单给大家做 side project,有兴趣可以来找找夥伴,前後端 / UIUX 皆可~...

Leetcode: 1791. Find Center of Star Graph

思路 想说list最长的element,就会是center 程序码 class Solution {...

Day.6 留个纪录好办事 - Mysql Log (日志纪录)-下

上一篇介绍的日志纪录主要用来找错误与优化改善问题方面,而今天的日志内容会跟MYSQL数据恢复&am...