一、前言
在平时的开发中,三方库的使用是少不了的,这里收集了一些自己平时开发中会使用的三方库,方便查阅与学习
二、三方库
1、网络请求
-
dio
一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等...
2、数据存储
-
shared_preferences
简单的,异步的,持久化的key-value存储系统, 在Android上它是基于SharedPreferences的,在iOS上它是基于NSUserDefaults
3、屏幕适配
-
flutter_screenutil
flutter 屏幕适配方案,让你的UI在不同尺寸的屏幕上都能显示合理的布局!
4、动画库
-
flutter_spinkit
支持各种动画,可用来做加载动画等
5、条形码-二维码扫描
-
barcode_scan
支持iOS、android两端的条码-二维码扫描库
6、下拉加载上拉加载更多
-
pull_to_refresh
很强大的一个库,可以实现多种效果,强烈建议 -
loadmore
ListView上拉加载更多,挺好用的
7、基本信息获取
-
PackageInfo
用来获取应用名称、版本号等基本信息
8、webView网页加载
-
flutter_webview_plugin
用来进行网页加载
9、国际化
flutter i18n 插件使用,快捷键 alt+enter 可快速替换文字
10、版本更新
-
ota_update
支持Android应用内下载,实现应用内更新功能
具体使用可参考Flutter 应用内App版本更新 -
url_launcher
网页打开工具,适用于iOS版本更新,可以打开应用地址,跳转AppStore更新
// 部分代码
import 'dart:io';
import 'package:url_launcher/url_launcher.dart';
import 'package:ota_update/ota_update.dart';
void updateVersionAction() async {
if (Platform.isIOS) {
const String url = 'https://itunes.apple.com/cn/app/idxxxxxx?mt=8';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
} else if (Platform.isAndroid) {
const String url = "http://thinkerx.oss-cn-qingdao.aliyuncs.com/mobile/android/xxxx.apk";
try {
OtaUpdate().execute(url).listen(
(OtaEvent event) {
print('EVENT: ${event.status} : ${event.value}');
},
);
} catch (e) {
Fluttertoast.showToast(msg: '更新失败,请稍后再试');
}
}
}
11、权限
-
permission_handle
权限管理,可用来检测权限是否获取等
12、视频封面图获取
-
video_thumbnail
可以获取本地和网络视频的封面图
final uint8list = await VideoThumbnail.thumbnailData(
video: videofile.path,
imageFormat: ImageFormat.JPEG,
maxWidth: 128, // specify the width of the thumbnail, let the height auto-scaled to keep the source aspect ratio
quality: 25,
);
13、状态、路由管理
-
getx
GetX 是 Flutter 上的一个轻量且强大的解决方案:高性能的状态管理、智能的依赖注入和便捷的路由管理。
三、其他
1、忽略文件(.gitignore)
Flutter 在git管理时会有很多无需追踪的文件,这时候就需要在忽略文件里将他们忽略掉,初次创建项目时创建忽略文件方法如下,如果已经上传过项目,需特殊处理下,具体参考这里
cd 项目路径
touch .gitignore
open .gitignore
具体忽略内容参考官方地址.gitignore