常用的包
— 焉知非鱼Commonly used packages
本页列出了一些 Dart 开发者发布的最流行和最有用的包。要找到更多的软件包–也可以搜索核心库–请使用 pub.dev 网站。
常用的软件包可分为三类:
通用包 #
以下包对各种项目都很有用:
包 | 描述 | 常用的 API |
---|---|---|
archive | 对各种档案和压缩格式进行编码和解码。 | Archive, ArchiveFile, TarEncoder, TarDecoder, ZipEncoder, ZipDecoder |
characters | 对用户感知的字符进行字符串操作(Unicode 字符簇) | String.characters, Characters, CharacterRange |
http | 一组高级的函数和类,使其易于消费 HTTP 资源 | delete(), get(), post(), read() |
intl | 国际化和本地化设施,支持复数和性别、日期和数字格式化和解析以及双向文本 | Bidi, DateFormat, MicroMoney, TextDirection |
json_serializable | 一个易于使用的代码生成包。更多信息,请参阅 JSON 支持 | @JsonSerializable |
logging | 一个可配置的机制,为你的应用程序添加消息记录 | LoggerHandler, Level, LogRecord |
mockito | 一个在测试中模拟对象的流行框架。如果你正在编写依赖注入的测试,特别有用。与 test 包一起使用 | Answering, Expectation, Verification |
path | 操作不同类型路径的常用操作。更多信息,请参见拆包: path | absolute(), basename(), extension(), join(), normalize(), relative(), split() |
quiver | 实用工具,使 Dart 核心库的使用更加方便。Quiver 提供额外支持的一些库包括 async、cache、collection、core、iterables、pattern 和 测试 | CountdownTimer (quiver.async); MapCache (quiver.cache); MultiMap, TreeSet (quiver.collection); EnumerateIterable (quiver.iterables); center(), compareIgnoreCase(), isWhiteSpace() (quiver.strings) |
shelf | Dart 的 Web 服务器中间件。Shelf 使它能轻松地创建和组成 Web 服务器,以及 Web 服务器的一部分 | Cascade, Pipeline, Request, Response, Server |
stack_trace | 用于解析、检查和处理由底层 Dart 实现产生的堆栈痕迹的方法。还提供了以比原生 StackTrace 实现更可读的格式生成堆栈跟踪的字符串表示的函数, 更多信息,请参见拆包: stack_trace | Trace.current(), Trace.format(), Trace.from() |
stagehand | 一个 Dart 项目生成器。当你创建一个新的应用程序时,WebStorm 和 IntelliJ 使用 Stagehand 模板,但你也可以从命令行使用模板 | 一般通过 IDE 或 stagehand 命令来使用 |
test | 在 Dart 中编写和运行测试的标准方法 | expect(), group(), test() |
yaml | YAML 解析器 | loadYaml(), loadYamlStream() |
扩展 Dart 核心库的包 #
以下每个包都建立在一个核心库的基础上,增加了功能并填补了缺失的功能:
包 | 描述 | 常用的 API |
---|---|---|
async | 在 dart:async 的基础上进行了扩展,增加了实用类来处理异步计算。更多信息,请参见拆包: async 第1部分、第2部分和第3部分 | AsyncMemoizer, CancelableOperation, FutureGroup, LazyStream, Result, StreamCompleter, StreamGroup, StreamSplitter |
collection | 在 dart:collection 的基础上进行了扩展,增加了实用函数和类,使处理集合的工作变得更加容易。更多信息,请看拆包:collection | Equality, CanonicalizedMap, MapKeySet, MapValueSet, PriorityQueue, QueueList |
convert | 在 dart:convert 的基础上,增加了编码器和解码器,用于在不同的数据表现形式之间进行转换。其中一种数据表示方式是百分比编码,也被称为 URL 编码 | HexDecoder, PercentDecoder |
io | 包含两个库,ansi和io,以简化对文件、标准流和进程的处理。使用 ansi 库可以自定义终端输出。io 库有处理进程、stdin 和文件复制的 API | copyPath(), isExecutable(), ExitCode, ProcessManager, sharedStdIn |
专用包 #
下面是一些寻找比较专业的包的技巧,比如手机的包(Flutter)和网页开发的包。
Flutter 包 #
请看 Flutter 网站上的使用包。或者使用 pub.dev 网站搜索 Flutter 包。
网络包 #
参见网络库和包。或者使用 pub.dev 站点搜索 web 包。
命令行和服务器软件包 #
参见命令行和服务器库和包。或者使用 pub.dev 站点搜索其他包。