译 10 个 Flutter 组件举荐 – 4
原文
https://tomicriedel.medium.co…
注释
明天咱们又要解决软件包了。咱们次要解决的是数据库上的软件包,所以 … … 让咱们一起去浏览吧!
Hive
http://pub.dev/packages/hive
Hive 是最好的数据库包之一。作为一个开发者,它提供了很多可能性,对你很有帮忙。要晓得的最重要的一点是,Hive 是一个 NoSQL 数据库。另一个十分重要的一点是,你有十分弱小的加密内置。没有多少数据库包有这个性能,这使得 Hive 更加非凡。哦,还忘了说: 它有很好的文档。底线: 为您的下一个应用程序,你须要一个 NoSQL 数据库,蜂巢相对应该包含在内!你能够通过 Reso Coder 或 Johannes Milke 的教程来学习 Hive:
sqflite
http://pub.dev/packages/sqflite
是一个基于 SQLite 原理的 Android,iOS 和 macOS 的数据库系统。因而,简略地说,如果您想在 SQL 表中存储数据,这是正确的包。
你能够通过 Johannes Milke 的教程或者 Flutter in the Package of the Week 系列的教程来学习如何应用这个软件包:
Moor
http://pub.dev/packages/moor
Moor 是一个基于 SQLite 的数据库系统,应用 Dart 编写,能够在任何平台上应用。它比拟出名的 sqflite 软件包有许多长处。然而,因为它是绝对未知的,所以很难找到问题的解决方案。你能够应用 Reso Coder 的系列教程来学习 Moor:
Flutter Slidable
http://pub.dev/packages/flutt…
Flutter 滑动是一个包,容许您创立滑动列表我的项目。这也是可能的 Flutter 没有一个包,但这个包提供了一个很好的动画抉择。让咱们来看一下动画:
Behind Motion
幕后动作
Drawer Motion
抽屉静止
Scoll Motion
Stretch Motion \!
舒展静止!
诚实说,这看起来曾经很不错了。好消息是,你甚至不须要学习很多货色就能够将这个软件包利用到你的应用程序中。您能够很容易地理解如何在 README 中蕴含这些小部件。
Just Audio
http://pub.dev/packages/just_…
你始终想开发一个音乐应用程序。那么音频就是你想要的货色。我认为这张图片说明了这个软件包能做什么:
在上面的代码示例中,咱们只关注如何加载音频文件。
final player = AudioPlayer();
var duration = await player.setUrl('https://foo.com/bar.mp3');
var duration = await player.setFilePath('/path/to/file.mp3');
var duration = await player.setAsset('path/to/asset.mp3');
Agora RTC Engine
https://pub.dev/packages/agor…
兴许你们中的一些人以前据说过 Agora,然而我依然会解释你能够在你的应用程序中应用 Agora 做什么。兴许你想开发一个带有视频性能的通信软件或者一个纯视频通话软件。你很快就会遇到问题。在没有其余帮忙的状况下,本人打视频电话是十分艰难的。这就是 Agora 的用武之地。您能够应用 Agora 轻松创立视频通话,而不须要理解后端的很多信息。整个事件是很容易的 agora_rtc_engine 包。
当初你必定想晓得如何在你的应用程序中实现这个性能。塔达斯 · 佩特拉为此制作了一个十分好的视频。
Flutter Typeahead
https://pub.dev/packages/flut…
这个软件包为 Flutter 提供了一个简略的主动实现小工具,同样也不难实现:
TypeAheadField(
textFieldConfiguration: TextFieldConfiguration(
autofocus:true,
style: DefaultTextStyle.of(context).style.copyWith(fontStyle: FontStyle.italic),
decoration: InputDecoration(border: OutlineInputBorder()
)
),
suggestionsCallback: (pattern)async {returnawait BackendService.getSuggestions(pattern);
},
itemBuilder: (context, suggestion) {
return ListTile(leading: Icon(Icons.shopping_cart),
title: Text(suggestion['name']),
subtitle: Text('${suggestion['price']}'),
);
},
onSuggestionSelected: (suggestion) {Navigator.of(context).push(MaterialPageRoute(builder: (context) => ProductPage(product: suggestion)
));
},
)
上面是一个例子:
Sliding up panel
https://pub.dev/packages/slid…
滑动面板使得 SlidingUpPanel 的实现变得容易,上面是一个很好的例子:
上面是一个如何实现这个面板的例子,你必定会留神到它非常简单:
return Scaffold(
appBar: AppBar(title: Text("SlidingUpPanelExample"),
),
body: SlidingUpPanel(
panel: Center(child: Text("This is the sliding Widget"),
),
body: Center(child: Text("This is the Widget behind the sliding panel"),
),
),
);
Pull to Refresh
https://pub.dev/packages/pull…
能够随时扭转的程序数据吗?或者你正在构建一个社交媒体应用程序,只是想刷新用户的 feed?而后,pull_to_refresh 包应该能够帮忙您。
正如您所看到的,这个软件包有许多用处。
README 十分具体,因而您将很容易了解如何实现这个包。
Convex Bottom Bar
http://pub.dev/packages/conve…
又到了引入底线的时候了。这次是凸形的底条。有了这个包,你能够创立令人印象粗浅的底部 Pub,肯定会吸引用户的眼球!
看看有多少种办法能够实现这个底线:
再见,祝你有欢快的一天!
© 猫哥
- 微信 ducafecat
- 博客
- 之前文章
- github
- b 站