在平时的开发中经常会用到比较优秀的第三方框架,此文汇总一些比较优秀常用的Flutter第三方框架,以便在新建项目时取用方便。

basic_utils | Dart Package

此框架包含很多平时开发使用的辅助方法,如StringUtils,ColorUtils,HexUtils,MathUtils等。

connectivity_plus | Flutter Package

此框架可监听设备的网络状态,判断当前设备是否有网络。

desktop_drop | Flutter Package

此框架允许用户拖拽文件到Flutter桌面程序,用于多平台传文件的App.

device_info_plus | Flutter Package

此框架用于获取运行程序的设备的设备信息,如获取设备系统名称,系统版本等,支持多个平台。

dio | Dart Package

Flutter中无需多说的网络请求库。

file_picker | Dart Package

此框架用于文件选取,比如选取图片,类似Android及iOS中的图片浏览器。

flutter_markdown | Flutter Package

此框架可使App支持markdown语法,但是不支持内联html文件。

riverpod | Dart Package

此框架是Flutter反应式缓存和数据绑定框架,个人没用过,但是想来类似前端的VUE类似的理念。

freezed | Dart Package

freezed_annotation | Dart Package

在Flutter申明Model时比较复杂,代码多且凌乱,此框架就为了简化创建Model而生,只需要在模型类上加上@freezed即可,至于freezed_annotation仅仅是freezed的注释框架,官方解释没有freezed,freezed_annotation什么也做不了。

image_picker | Flutter Package

当在iOS及Android中需要选取图片或手机相机拍照获取图片时,这个框架就可很好的完成。

image_gallery_saver | Flutter Package

此框架只支持Android及iOS平台,用处在于当使用image_picker | Flutter Package框架选取图片时,无法降图片保存在gallery中,而此框架可以提供这个功能。

json_annotation | Dart Package

此框架是谷歌提供的定义json_serializable用于创建JSON序列化和反序列化代码的注解,具体使用例子见 < json_serializable.dart/example.dart at master · google/json_serializable.dart · GitHub

network_info_plus | Flutter Package

此框架允许App发现网络的相关信息并且进行相应的配置,可获取到wifi的相关信息,如WiFi的名称,WiFi的IP,WiFi的掩码等等。

open_filex | Flutter Package

此框架没用过,看官方的文档大概意思就是可以打开Android或iOS系统中带有字符串的文件,文档中写的支持的文件类型还贼多,有需要的可以验证一哈。

package_info_plus | Flutter Package

此框架可获取到App的名称、包名、版本号等等,多用于软件升级相关。

path_provider | Flutter Package

此框架可获取文件系统的路径,一般用于存储下载文件,下载文件的路径的获取等。

permission_handler | Flutter Package

此框架是权限申请库。

share_handler | Flutter Package)

此框架用于处理传入的共享文本/媒体以及将共享添加到建议/快捷方式。

shared_preferences | Flutter Package

官方解释: 为简单数据包装特定于平台的持久存储(iOS 和 macOS 上的 NSUserDefaults,Android 上的 SharedPreferences 等)。 数据可能会异步持久化到磁盘,不保证写入返回后一定会持久化到磁盘,所以这个插件一定不要用于存储关键数据。

get | Flutter Package

贼强大的库,状态管理、路由管理、依赖管理,还可用它实现全局翻译、改变语言、改变主题、简单网络请求等。

get_storage | Flutter Package)

类似shared_preferences,更轻量,保存一些简单的数据,如用户的用户名,登录状态等。

shelf | Dart Package

此框架可很简单的创建一个web server。

shelf_router | Dart Package

上面的框架使创建web server很简单,这个框架则是提供了一个请求路由器,可使用路由模式将请求匹配到处理程序。

shelf_router_generator | Dart Package

Shelf 通过组合请求处理程序使在 Dart 中构建 Web 应用程序变得容易。 shelf_router 包为 Shelf 提供了一个请求路由器。 这个包可以从代码中的注释生成一个 shelf_route.Router。

slang | Dart Package

slang_flutter | Dart Package

此框架可更安全的使用.语法获取到json,yaml,csv文件的数据;

下面的库则是前者的支持库。

tray_manager | Flutter Package

此框架只支持桌面端,主要用处是可管理桌面端的状态栏图标。

url_launcher | Flutter Package

此框架是用于加载URL,也可作用类似Android原生中拨打电话的startIntent("tel://10086").

uuid | Flutter Package)

多用于获取设备的UUID.

wakelock | Flutter Package

在软件开发时特别是手机开发目前杀后台严重的情况下,很多时候App在后台运行比如蓝牙数据传输的行为时手机若息屏数据交互就会中断,此框架则是防止屏幕休眠时使用。

wechat_assets_picker | Flutter Package

官方解释:

基于 微信 UI 的 Flutter 图片选择器(同时支持视频和音频)。
该插件基于 photo_manager 实现资源相关功能, extended_image 用于查看图片, provider 用于协助管理选择器的状态。

当前的界面设计基于的微信版本:8.x 界面更新将在微信版本更新后随时进行跟进。

如果你需要拍照及录制视频,请先查看示例的详细用法,
并前往 wechat_camera_picker
该插件是独立扩展,需要结合使用。

window_manager | Flutter Package

此插件允许 Flutter 桌面应用调整窗口的大小和位置,故只支持桌面端。

convex_bottom_bar | Flutter Package

此插件中包含了许多优美的底部bar,即插即用,十分方便。