Flutter插件和Flutter模块有什么区别?

16
我是新手,正在进行Flutter插件开发。我已经阅读了Developing packages & pluginsWriting a good Flutter plugin,但作为初学者,我感到困惑。我已经基于webview_flutter和一个JavaScript库开发了Flutter应用程序,以便离线工作。我想将它扩展为模块或插件。

Webview渲染一些东西。 JavaScript库被从assets中附加。

我没有直接从我的代码中调用任何平台API,但我的代码依赖于另一个插件。

我该如何继续操作? 作为插件还是作为模块?


1
我想将其扩展为模块或插件。这是什么意思?如果你不清楚什么是插件或模块,如何知道你想要它们?插件是关于使本地功能可用于Flutter。模块是关于将Flutter与现有的本地应用程序集成。也许你实际想要的是可以发布到pub.dartlang.org的可重用Pub包(插件也是一个Pub包,只是另外利用了对本地平台的访问权限)。 - Günter Zöchbauer
是的,谢谢。我想要一个可重用的Pub软件包,我想要将其发布在pub.dartlang.org上。现在我清楚多了。 - Shahzad Akram
2个回答

33

插件是指将本地功能提供给Flutter使用。
模块是指将Flutter与现有的本地应用程序集成在一起。

也许您实际需要的是可重用的 Pub软件包,您可以将其发布到pub.dartlang.org(插件也是Pub软件包,只是它是一个特殊的软件包,另外还利用了对本地平台的访问)。

参见

“库软件包”是Pub软件包,相反,纯Dart“应用程序软件包”通常不会发布到pub.dartlang.org。

如果您的软件包具有命名依赖项之一,则受限于特定平台。

pub.dartlang.org显示标签以根据类别分类已发布的软件包(FLUTTERWEBOTHER

在这里输入图片描述


你好!这句话的意思是:如果我想分享我的特殊UI小部件,那么它将成为一个包(package)吗? - Krahmal
@Krahmal 是的,您需要创建一个 Pub 包并将其发布到 pub.dev。理论上也可以从 Git 存储库中使用它,但 pub.dev 是通常的方式。 - Günter Zöchbauer

10

Flutter插件:

简而言之:与原生相关的开发。

Flutter插件是原生代码的包装器,如android(Kotlin或Java)和iOS(Swift或Objective-C)。通过使用平台通道和消息传递,Flutter可以执行任何原生应用程序可以执行的操作。Flutter指示原生iOS/Android代码执行一个操作并将结果返回给Dart。

Flutter软件包或模块:

简而言之:通过使用实用程序库中的代码,加速开发过程。

Flutter支持使用由其他开发者贡献到Flutter和Dart生态系统的共享软件包。这样可以快速构建应用程序,无需从头开始开发所有内容。


快速并且言简意赅,其他答案也有积极的一面。 - Alok Vishwakarma
1
Flutter模块与Flutter包不同。请参考https://flutter.dev/docs/development/add-to-app/android/project-setup#create-a-flutter-module。 - David Miguel
1
@DavidMiguel 正确。Flutter包由纯Dart代码组成,我们可以将其集成到Flutter项目中。Flutter模块可以集成到现有的Android或iOS本地应用程序中。 - MaheshPeri19

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接