Flutter 一些常用库插件【一路整理】

8,804 阅读8分钟

网络请求

http

^0.11.3+16

pub.dartlang.org/packages/ht…

github.com/dart-lang/h…

该软件包包含一组高级函数和类,可以轻松使用HTTP资源。它与平台无关,可以在命令行和浏览器上使用。

dio

0.0.14

pub.dartlang.org/packages/di…

Dart的一个强大的Http客户端,支持拦截器、全局配置、FormData、请求取消、文件下载、超时等。

http_multi_server

2.0.5

pub.dartlang.org/packages/ht…

dart:io HttpServer包装器,用于处理来自多个服务器的请求

图像加载

可使用 Image.network 、 FadeInImage.memoryNetwork 或下面的库加载。

cached_network_image

"^0.4.1"

pub.dartlang.org/packages/ca…

Flutter库来加载和缓存网络图像。也可以与占位符和错误小部件一起使用。

flutter_advanced_networkimage

0.2.8

pub.dartlang.org/packages/fl…

高级图像缓存加载和缩放控制。

transparent_image

^0.1.0

pub.dartlang.org/packages/tr…

简单的透明图像,表示为Uint8List。在加载图片时可以用来做为占位符。

图像处理

image_jpeg

0.0.1

pub.dartlang.org/packages/im…

github.com/yangyxd/ima…

用于图像上传之前转jpeg缩放压缩,调用Android或iOS原生功能进行处理,性能较高,支持的源图像格式也更多。

image_picker

0.4.5

pub.dartlang.org/packages/im…

用于从Android和iOS图像库中选择图像,并使用相机拍摄新照片。

photo

0.1.4

pub.dartlang.org/packages/ph…

用于选择图像,支持多选,而且这个是用Flutter做的UI,可以很方便的自定义修改(强烈推荐)。

image

2.0.4

pub.dartlang.org/packages/im…

DART库,提供以各种不同的文件格式加载、保存和操作图像的能力。该库不依赖于DART:IO,因此它可以用于服务器和Web应用程序。

flutter_svg

0.6.3

pub.dartlang.org/packages/fl…

加载svg图像。

zoomable_image

1.2.0
pub.dartlang.org/packages/zo…

提供图像查看和手势缩放操作功能。

image_carousel

0.4.1

pub.dartlang.org/packages/im…

Flutter图像展示控件,可以左右划动切换上一张下一张图像,还结合了zoomable_image可以点击后缩放查看。支持Asset和网络图像。

carousel_slider

0.0.4

pub.dartlang.org/packages/ca…

一个支持手势划动和自动播放的图像展示控件。

parallax_image

0.3.0

pub.dartlang.org/packages/pa…

视差图像可以与任何可滚动(例如ListVIEW)一起使用。说白了就是让放在滚动区域内的图像滚动时看起来更平滑。

camera

0.2.1

pub.dartlang.org/packages/ca…

用于在Android和iOS上获取有关和控制相机的信息。支持预览相机馈送和捕捉图像。

UI相关

fluttertoast

2.0.3

pub.dartlang.org/packages/fl…

用于Android和ios的toast库。

flutter_html_view

0.5.2

pub.dartlang.org/packages/fl…

Flutter没有默认的支持来显示html,所以需要三方的包来显示。这个包可以将html呈现给原生的Widget。(目前支持的标签比较少)

flutter_html_textview

0.2.6

pub.dartlang.org/packages/fl…

将html呈现为一个Widget,在textview中呈现html。

markdown

2.0.0

pub.dartlang.org/packages/ma…

用Dart编写的便携式Markdown库。它可以在客户端和服务器上将Markdown解析为HTML。

html2md

0.1.7

pub.dartlang.org/packages/ht…

将html转换为Dart中的MarkDown.

flutter_calendar (日历)

0.0.3

pub.dartlang.org/packages/fl…

日历组件.

flutter_picker

0.0.1

pub.dartlang.org/packages/fl…

github.com/yangyxd/flu…

选择器。可以根据json或自定义数据生成选择器。

flutter_spinkit

github.com/jogboms/flu…

加载动画。支持多种常用效果,非常酷炫。

extended_nested_scroll_view

github.com/zmtzawqlp/F…

一个扩展NestedScrollView,能够更好的处理列表、TabView、Sliver混合的情况(但是这个插件没有在pub找到)

badge

0.0.3

pub.dartlang.org/packages/ba…

小红点插件,可以用来显示小红点、未读消息数量等,非常方便

视频 & 音频

chewie

0.6.1

pub.dartlang.org/packages/ch…

视频播放器,在video_player的基础上包装了控制UI。

video_player

0.6.0

pub.dartlang.org/packages/vi…

用于在Android和iOS上与其他Flutter窗口小部件一起显示内嵌视频。

video_launcher

0.3.0

pub.dartlang.org/packages/vi…

视频播放器,可播放本地文件和字节流。

flute_music_player

0.0.6

pub.dartlang.org/packages/fl…

基于Flutter的材料设计音乐播放器与音频插件播放本地音乐文件。自带华丽的播放界面。

audioplayer

0.5.0

pub.dartlang.org/packages/au…

一个播放远程或本地音频文件Flutter音频插件

audioplayers

0.5.2

pub.dartlang.org/packages/au…

这是rxlabz的audioplayer的一个分支,不同之处在于它支持同时播放多个音频并显示音量控制。

spritewidget

0.9.17

pub.dartlang.org/packages/sp…

SpriteWidget是用于构建复杂、高性能动画和带有2D游戏的插件包,可与其它小部件无缝混合。您可以使用SpriteWidget创建任何东西,从动画图标到成熟的游戏。

路由和消息传递

fluro

1.3.1

pub.dartlang.org/packages/fl…

github.com/theyakka/fl…

最好用的路由导航框架。功能:简单的路线导航;函数处理程序(映射到函数而不是路径);通配符参数匹配;查询字符串参数解析;内置常用转换;简单的定制转换创建。

flutter_local_notifications

0.3.0

pub.dartlang.org/packages/fl…

一个跨平台的显示本地notifications的插件。

local_notifications

0.0.6

pub.dartlang.org/packages/lo…

这个库能让你在Android和iOS上创建Notifications很简单。

url_launcher

3.0.2

pub.dartlang.org/packages/ur…

用于在Android和iOS上启动URL。支持网络,电话,短信和电子邮件方案。

firebase_messaging

1.0.2

pub.dartlang.org/packages/fi…

一款跨平台的消息传递解决方案,可让您在Android和iOS上可靠地传递消息。

flutter_msg_engine

0.0.1

pub.dartlang.org/packages/fl…

github.com/yangyxd/flu…

消息引擎, 注册一个消息,在任何地方响应并处理。。

event_bus

0.4.1

pub.dartlang.org/packages/ev…

一个使用Dart流进行解耦应用程序的简单事件总线的库。

数据存储、缓存有关的库

sqflite

"^0.11.0"

pub.dartlang.org/packages/sq…

SQLite的Flutter插件,一个自包含的高可靠性嵌入式SQL数据库引擎。

file_cache

0.0.1

pub.dartlang.org/packages/fi…

为flutter package项目缓存Json,Buffer,FileCacheImage。

flutter_cache_manager

0.1.1

pub.dartlang.org/packages/fl…

管理你的app下载到本地的文件缓存。它使用缓存控制HTTP报头有效地检索文件。

类型编解码的库

html_unescape

1.0.0

pub.dartlang.org/packages/ht…

用于解决HTML编码字符串的Dart库。支持所有命名字符引用(如 ),小数字符引用(如á)和十六进制字符引用(如ã)。

html

0.13.3

pub.dartlang.org/packages/ht…

HTML解析库。

crypto

2.0.6

pub.dartlang.org/packages/cr…

在纯DART中实现的加解密函数库。支持SHA-1、SHA-256、MD5、HMAC

序列化

  • 手动序列化:

使用 dart:convert 的内置解码器。包括传入 JSON 原始字符串给 JSON.decode() 方法,然后从 Map<String, dynamic> 中查询你需要的数据。

  • 自动序列化:

库名版本号链接描述
json_serializable0.5.7pub.dartlang.org/packages/js…
built_value5.5.1pub.dartlang.org/packages/bu…runtime依赖项
built_value_generator5.5.1pub.dartlang.org/packages/bu…dev依赖项
built_value_test5.5.1pub.dartlang.org/packages/bu…test依赖项

Json解析

方式大小 (js)序列化 (dart)反序列化 (dart)序列化 (js)反序列化 (js)
json_serializable80 KB9.09 ms6.61 ms8.23 ms8.12 ms
Serializable79 KB6.1 ms6.92 ms4.37 ms
DSON94 KB12.72 ms11.15 ms16.64 ms17.94 ms
Dartson86 KB9.61 ms6.81 ms8.58 ms7.01 ms
Manual86 KB8.29 ms5.78 ms10.7 ms7.9 ms
Interop70 KB61.55 ms14.96 ms2.49 ms2.93 ms
Jaguar_serializer88 KB8.57 ms6.58 ms10.31 ms8.59 ms
Jackson (Groovy) 496 ms252 msn/an/a

国际化和本地化

intl

0.15.6

pub.dartlang.org/packages/in…

这个包提供国际化和本地化功能,包括消息翻译、复数和性别、日期/数字格式和解析以及双向文本。

rx系列

rxdart

0.17.0

pub.dartlang.org/packages/rx…

RxDart是一种基于ReactiveX的谷歌Dart反应性函数编程库。谷歌Dart自带了一个非常不错的流API;RxDart没有尝试提供这个API的替代方案,而是在它上面添加了一些功能。

rx_widgets

1.0.3

pub.dartlang.org/packages/rx…

rx_widgets是一个包含基于流的Flutter Widgets和Widget帮助程序/便利类的程序包,它们有助于反应式编程风格,特别是与RxDart和RxCommands结合使用。

rx_command

2.0.0

pub.dartlang.org/packages/rx…

RxCommand是针对事件处理程序的基于Reactive Extensions(Rx)的抽象。它基于ReactiveUI框架的ReactiveCommand。它大量使用了RxDart包。

系统平台有关的库

path_provider (获取本地文件)

0.4.1

pub.dartlang.org/packages/pa…

用于获取Android和iOS文件系统上的常用位置,例如temp和app数据目录。

shared_preferences (读写sp文件)

0.4.2

pub.dartlang.org/packages/sh…

用于读写简单键值对的Flutter插件。包装iOS上的NSUserDefaults和Android上的SharedPreferences。

connectivity (网络状态)

0.3.1

pub.dartlang.org/packages/co…

用于发现Android和iOS上的网络状态(WiFi和移动/蜂窝)连接。

device_info (设备信息)

0.2.1

pub.dartlang.org/packages/de…

提供有关设备(品牌,型号等)的详细信息,以及应用程序正在运行的Android或iOS版本。

flutter_blue (蓝牙)

0.3.3

pub.dartlang.org/packages/fl…

这是跨平台的蓝牙sdk.

share (分享)

0.5.1

pub.dartlang.org/packages/sh…

支持分享的flutter插件

open_file (打开文件)

1.1.1

pub.dartlang.org/packages/op…

调用平台打开文件。比如直接打开一个apk文件会调起平台的安装向导。

权限库

simple_permissions

0.1.5

pub.dartlang.org/packages/si…

用于android和ios的请求权限的库

flutter_simple_permissions

0.0.1

pub.dartlang.org/packages/fl…

地图(地图显示、定位、经纬度等)

map_view

0.0.12

pub.dartlang.org/packages/ma…

一个用于在iOS和Android上显示谷歌地图的Flutter插件

flutter_map

0.0.10

pub.dartlang.org/packages/fl…

基于leaflet的Flutter地图包

location

1.3.4

pub.dartlang.org/packages/lo…

这个插件 处理Android和iOS上的位置。它还提供位置更改时的回调。

latlong

0.5.3

pub.dartlang.org/packages/la…

LatLong是一个计算通用的纬度和经度的轻量级库。

flutter_amap

0.0.1

pub.dartlang.org/packages/fl…

高德地图3d flutter组件。展示原生android、ios高德地图,并与flutter交互。

二维码

barcode_scan

0.0.4

pub.dartlang.org/packages/ba…

用于扫描2D条形码和QRCodes的Flutter插件。

qrcode_reader

0.3.3

pub.dartlang.org/packages/qr…

使用相机读取二维码的Flutter插件。

WebView

flutter_webview_plugin

0.1.6

pub.dartlang.org/packages/fl…

允许Flutter与原生Webview进行通信的插件。

图表库

charts-common

0.3.0

pub.dartlang.org/packages/ch…

Material Design风格的图表库

charts-flutter

0.3.0

pub.dartlang.org/packages/ch…

通用的图表库组件

flutter_circular_chart

0.0.3

pub.dartlang.org/packages/fl…

一个让你使用flutter轻松创建的动画圆形图控件的库。

其它

pwa

0.1.10

pub.dartlang.org/packages/pw…

基于Dart的PWA应用程序的库

fluwx (微信)

0.5.5

pub.dartlang.org/packages/fl…

适用于Flutter的微信SDK,方便快捷。 QQ群:892398530。

alipay_me (支付宝)

1.0.0

pub.dartlang.org/packages/al…

支付宝插件,支持登录、支付。android还支持本地计算签名。

flutter_qq (QQ)

0.0.4

pub.dartlang.org/packages/fl…

QQ登录、分享到QQ、分享到QQ空间。

学习资料

github.com/AweiLoveAnd…

网友阿韦整理的学习资料和demo.


顺便给大家推荐个免费的实用例子课程,

Flutter实用例子进阶课程