从新手到Flutter架构师,一篇就够!Flutter-最全开源项目(UI、导航、网络、导航、音视频---)

这篇博客全面介绍了Flutter的网络请求、序列化、数据库、图像处理、消息通知、视频音频播放以及一系列实用的开源项目。内容包括dio、http、sqflite、cached_network_image等库的使用,还有地图、二维码、图表库和权限管理等。通过阅读,开发者可以从新手迅速成长为Flutter架构师。
摘要由CSDN通过智能技术生成

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

网络与数据序列化

网络请求

http

pub.dartlang.org/packages/ht… github.com/dart-lang/h… http是使用Dart原生编写的网络请求库,可以轻松的实现HTTP资源请求,并且它与平台无关,可以在命令行和浏览器上使用。

HttpClient

HttpClient是Dart IO库提供的一种Http请求,可以实现一些基本的Http请求。不过,HttpClient只能实现一些基本的网络请求,对应一些复杂的网络请求还无法完成,如POST里的Body请求体传输内容类型部分还无法支持,multipart/form-data这个类型传输还不支持。

dio

pub.dartlang.org/packages/di…

Dart社区提供的http请求库,不仅支持常见的网络请求,还支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等操作。

http_multi_server

pub.dartlang.org/packages/ht…

HttpServer包装器,可以用于处理来自多个服务器请求。

ps: 关于网络库的详细使用,可以参考我之前文章的介绍:Flutter开发之Http网络请求

序列化

Flutter序列化可以分为手动序列化和使用工具序列化。手动序列化指的是使用 dart:convert 的内置解码器,包括传入 JSON 原始字符串给 JSON.decode() 方法,然后从 Map<String, dynamic> 中查询你需要的数据。自动序列化可以使用诸如json_serializable、built_value、built_value_generator和built_value_test库。

除此之外,如果涉及到json解析,还可以使用codable库,它可以将动态结构化数据(JSON,YAML)转换为Dart类型的库。以下是一些常用的json解析库的比较。

编码解码

有时候为了数据的安全方面的考虑,会对传输的数据或本地保存的数据进行编解码、加密解密操作,如果有这方面的操作,可以使用下面的库。

ninja

pub.dartlang.org/packages/ni… 在Dart的Converter和Codec接口上完善的AES以及RSA加密解密算法的库。

archive

pub.dartlang.org/packages/ar… 为各种存档和压缩格式提供编码器和解码器,如zip,tar,bzip2,gzip和zlib。

数据库

如果有涉及到数据存储、缓存相关的需求,可以使用如下的第三方库。

sqflite

pub.dartlang.org/packages/sq… SQLite的Flutter插件,一个自包含的高可靠性嵌入式SQL数据库引擎。

file_cache

pub.dartlang.org/packages/fi… 为flutter package项目缓存Json、Buffer、FileCacheImage。

图像加载与加工

图像加载

在Flutter开发中,图像是一个重要的模块,主要是图片的加载和图片的处理。关于加载图片,除了使用Image组件的Image.network 、 FadeInImage.memoryNetwork 来加载图片外,还可以使用如下的一些图片库来加载图片。

cached_network_image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值