以下是我在日常开发中,整理出的使用频率可能会比较大的一些库,做了些许的整合,对我而言是个记录,可能也许大概 也会对看官你有一丢丢的帮助,不过本文不涉及库的使用,若有什么问题或者错误可以留言,我们再一起讨论(别问,问了我就是菜狗)。
当然,如果看官你有更好使用或者简便的库,无论是实现哪方面的功能,都可推荐给我。
注:我列举的库,只是我个人使用的较多或者个人觉得对我更加适合的解决方案,并不一定最优,举个栗子:也许你搜索状态管理工具,会发现许多人推荐 Provider,甚至于官网方案中它都居于首位(也许排名不分先后??)而我则更加倾向于了 Getx,但是这不是意味着 Provider 不优秀或者不好用(我先手动狗头)。
文章列举的库的地址,我统一使用了 pub-web.flutter-io.cn ,但是对于 pub.dev 而言二者并没有什么大区别。
强,无敌
GetX
Getx,没有给他归类是因为他的功能非常之多,他是一个超轻且强大的 Flutter 解决方案,诸如:状态管理,路由管理,依赖注入,国际化等 都可以使用 Getx 方便且便捷的实现。
一张图片,尽显它的强大。
网络请求
Http
用于发出 HTTP 请求的官方库,支持多平台,无论是简易请求或者复杂功能,都可以使用它。
Dio
一个强大的 Flutter HTTP网络包,支持全局配置,拦截器,FormData,请求取消,文件上传/下载,超时,自定义适配器等,因此,请求复杂或者包装请求的前提下,我个人更加推荐。
日志打印
logging
简单的日志配置,基本等同于 print ,但是他还支持为日志消息添加处理程序。
logger
这是一款小巧,易于使用和可扩展的的日志打印,类似于安卓日志打印(带有不同的颜色)。
Loading 解决方案
loader_overlay
你有没有发现自己在做一些异步处理,并希望防止用户与屏幕交互,而应用程序正在加载的情况下?如果是这样,这个包就是为你量身定做的。
flutter_easyloading
toast loading 的解决方案(比较好用,可惜很久不更新了)。
flutter_spinkit (loading 样式集合)
提供 loading 动画的集合。
loading_animation_widget(loading 样式集合)
提供 loading 动画的集合。
动画
lottie(动画库)
Lottie 是一个适用于 Android 和 iOS 的动画库,让你的御用 UI 为你制作动画吧。
animate_do(动画包)
受 animate.css 启发的动画包,仅使用 Flutter 动画构建,具有零依赖性,前端童鞋熟悉的不得了。
animated_text_kit(文本动画)
很酷且很棒的文本动画的集合,想让自己的文本动起来,用它就对了。
animations
此包包含预制动画,可实现常见的效果。这些动画可以根据您的内容进行自定义,并嵌入到您的应用程序中。
文件处理或图片上传
image_picker (图片选择上传)
适用于 iOS 和 Android 的 Flutter 插件,用于从图像库中选取图像,或者使用相机拍摄新照片。
path_provider (文件系统)
用于查找文件系统上的常用位置,也可以实现文本的读写。
cached_network_image
用于显示来自互联网的图像并将其保存在缓存目录中。
数据存储
shared_preferences (数据存储)
包装简单数据的特定于平台的持久存储。数据可能会异步持久化到磁盘,并且不能保证写入返回后会持久化到磁盘,因此该插件不得用于存储关键数据。
注:这里我还想提一嘴 path_provider 库,对于静态应用,想在本地通过写入文件的方式(比如读写 json)存储数据的话,path_provider 是一个比较简单的方案。
扫码
qr_flutter (二维码渲染)
pub-web.flutter-io.cn/packages/qr…
用于通过 Widget 或自定义 Painter 进行简单快速的 QR 代码渲染。
mobile_scanner (QR扫码)
基于 MLKit 的 Flutter 通用扫描仪。
文本
auto_size_text (自动文本大小)
可自动调整文本大小,文本适配的方案。
mask_text_input_formatter
文本格式化的方案。
后台任务及通知功能
background_fetch (后台周期任务)
Background Fetch 是一个非常简单的插件,大约 每 15 分钟 就会在后台唤醒一个应用程序,提供较短的后台运行时间。每当发生后台获取事件时,该插件就会执行你提供的内容。
flutter_background_service
可以开启一个前台服务。
Awesome_notifications (通知)
在Flutter上使用自定义本地和推送通知来吸引用户,但实际中我只是用了 flutter_local_notifications。
flutter_local_notifications (通知)
用于显示本地通知的跨平台插件。
地理位置、网络状态、权限控制
geolocator (地理位置)
Flutter 地理定位插件,可轻松访问特定于平台的位置服务
geocoding(地理编码)
提供了简单的地理编码和反向地理编码功能。
connectivity_plus (网络)
该插件允许 Flutter 应用程序发现网络连接并进行相应的处理。
wifi_iot
可以获取 wifi 信息。
permission_handler (权限处理)
该插件提供跨平台(iOS、Android)API 来请求权限并检查权限状态。
响应式
sizer (响应式)
一个 Flutter 插件,可轻松使 Flutter 应用程序响应。自动调整 UI 以适应不同的屏幕尺寸。响应能力变得简单。
responsive_framework (响应式)
响应式框架包含可帮助开发人员为移动、桌面和网站布局构建响应式应用程序的小部件。
flutter_staggered_grid_view (网格布局)
提供了 Flutter 网格布局的集合。
音视频播放器、图表集成
audioplayers(音频播放器)
一个可同时播放多个音频文件的 Flutter 插件
video_player(视频播放器)
适用于 iOS、Android 和 Web 的 Flutter 插件,用于在 Widget 表面上播放视频
flutter_sound(录音)
播放和录制音频的解决方案。
fl_chart(Flutter 图表库)
高度可定制的 Flutter 图表库,支持折线图、条形图、饼图、散点图和雷达图。
轮播、滑块
syncfusion_flutter_sliders(滑块)
Flutter Sliders 包是用 Dart 原生编写的,用于创建高度交互且 UI 丰富的滑块小部件,以便在 Flutter 应用程序中进行过滤。
card_swiper
swiper 解决方案,他就是原来的 flutter_swiper。可以说是 swiper 最好的方案,没有之一。
底部选择器
day_night_time_picker
零依赖的 Flutter 昼夜时间选择器。
flutter_datetime_picker_plus / bottom_picker
底部时间选择器
HTML
flutter_widget_from_html
是的,你没有看错,也没有理解错,他就是干这个的!
Scroll
Flutter 的 ListView 已经足够强大,但是这里还是有几个很强大的库。
infinite_scroll_pagination
无限滚动分页。
scrollable_positioned_list
当你需要通过列表索引滚动,或者需要知道当前你滚动到了第几个索引时,这个库会很有用,尤其是列表高度并不确定或者不一致的情况下。
scrollview_observer
这个库,可能比较小众,但是他实现了 ListView 使用的某些小痛点,看官使用 ListView 应该非常熟练了,按我的理解来说,我们非常方便的可以获取到当前列表滚动的距离,但是却不好获取列表项索引的信息,毕竟你的列表项可能是高度不定或者内容不定,又或者懒加载而来等等,因此遇到诸如:滑动到某一项后,更新下标索引的功能时,就会突然两眼一黑。
当然也得推荐大佬的文章:
其他
dotted_border
虚线边框的解决方案。
clipboard(剪切板)
无需多言。
share_plus
想要分享功能,使用它就对了。
date_format(时间格式化)
时间格式化,想怎么化就怎么化。
flutter_launcher_icons (启动图标)
一个命令行工具,可简化更新 Flutter 应用程序启动器图标。
flutter_dotenv
通过 .env 设置配置或环境变量。
flutter_overlay_window (桌面悬浮框)
可以实现桌面悬浮框,类似:一个圆形的球?
url_launcher
让你在移动平台上打开默认浏览器以显示给定的 URL。
in_app_review (显示评论弹出窗口)
可让您显示评论弹出窗口,用户可以在其中为您的应用留下评论,而无需关闭您的应用。
easy_localization (国际化方案)
可以轻松快速的实现 flutter 应用国际化。
uuid
可快速生成 UUID
showcaseview
允许你逐步展示/突出显示您的小部件(蒙版解决方案)。
Play Install Referrer 库
可以使用 Google Play 商店的 Install Referrer API 从 Google Play 安全地检索引荐来源内容,希望你不会用到它。
google_mobile_ads
不用介绍它是谁,不知道的,你一定用不到,如果你用到了,那祝你好运。
后续,如果我记得的话,也许还会更新......