颤振包和颤振插件有什么区别

Nux*_*Nux 7 flutter

我是 Flutter 开发的新手,目前正在同时开发 4 个应用程序。所以我想通过创建plugin 或 package在这些应用程序之间共享代码。但我不明白在我的情况下在插件之间选择什么。

我将只在这个可共享的代码中编写 dart 代码,但我将使用来自pub.dev 的其他插件,其中包含本地代码,如 Kotlin 和 Swift 示例flutter_contacts,其中包含 java 和 swift 代码。

那么对于这种情况,我应该在插件之间选择什么。

TLDR

  • 一个包可以在其中使用插件并且仍然是一个包吗?

Rém*_*let 15

“包”仅包含 Dart 代码。
“插件”包含 Dart 和 Native 代码(kotlin/js/swift/...)

如果需要,包可以使用插件。它仍然有资格作为一个包裹。


Alo*_*lok 11

基于阅读 Flutter 文档:开发包和插件,我将分享我的观点,让您清楚地了解package and plugin difference.

首先欢迎来到这个伟大的平台,用一个代码库Flutter Community为您构建最好的应用程序Web/Android/iOS

现在,让我们尝试消除对上述主题的疑问。

什么是插件?

包可以创建可以轻松共享的模块化代码。最小包包含以下内容

现在,最好的部分将消除您的疑虑:

Plugins只是Flutter Packages依赖于平台的一部分

套餐类型:

  • Dart Packages:用Dart编写的通用包,例如path包。其中一些可能包含 Flutter 特定功能,因此依赖于 Flutter 框架,从而限制它们仅用于 Flutter,例如Fluro包。
  • 插件包:一种专门的 Dart 包,包含用 Dart 代码编写的 API 以及一个或多个特定于平台的实现。 插件包可以编写为Android (using Kotlin or Java)iOS (using Swift or Objective-C)webmacOSWindows、 或Linux,或其任意组合。一个具体的例子是url_launcher插件包。要了解如何使用url_launcher包,以及如何扩展它以实现对 Web 的支持,请参阅Harry Terkelsen的 Medium 文章

如果这仍然不能消除您的疑问,您必须查看我为您提供的第一个链接开发包和插件。它肯定会给你带来清晰度。


Sau*_*mar 7

Aplugin是一种特殊类型的包,涉及本机Kotlin/ Java(对于 Android)或swift/ Objective-C(对于 iOS)代码。一个包只包含 dart 代码。

当您需要与本机操作系统通信时,您需要一个插件。

一些包和插件的示例如下:

包裹:

  • http:一个包,提供易于使用的 API,用于从 Flutter 应用程序发出 HTTP 请求。

  • shared_preferences:一个包,提供了一种在持久存储中存储和检索键值对的简单方法。

  • intl:为 Flutter 应用程序提供国际化和本地化支持的包。

插入:

  • camera:一个插件,可提供对设备相机的访问并允许拍照和录制视频。
  • firebase_messaging:允许 Flutter 应用使用 Firebase Cloud Messaging 接收和处理推送通知的插件。
  • google_maps_flutter:一个插件,提供 Flutter 小部件,用于使用 Google Maps API 显示交互式地图。

从示例中应该清楚为什么插件需要本机代码。


Asm*_*oun 5

颤振插件:

简而言之:与本地相关的发展。

Flutter 插件是原生代码的包装器,如 android(Kotlin 或 java)和 iOS(swift 或目标 c)。... Flutter 可以通过使用平台通道和消息传递来完成本机应用程序可以做的任何事情。Flutter 指示原生 iOS/Android 代码执行一个动作并将结果返回给 Dart。

Flutter 包或模块:

简而言之:使用 util 库中的代码加快开发速度。

Flutter 支持使用其他开发者贡献给 Flutter 和 Dart 生态系统的共享包。这允许快速构建应用程序,而无需从头开始开发所有内容。