目录
项目描述
- WikiSearch 是一个使用 BLoC/Cubit 模式构建的 Flutter 搜索引擎,由 MediaWiki API 提供支持。
- 它还使用 NewsApi 在主屏幕上显示最新新闻。
- WikiSearch 还使用缓存来提高用户体验,我们使用了一个名为 HiveDB 的 NoSQL 数据库进行缓存。
工作
应用架构
应用程序逻辑流程
- 当通过函数调用或 initState 初始化时,cubit 会接收此请求。
- 然后 cubit 调用存储库,存储库会进一步发起 API 调用来获取此数据。
- 此数据存储在 cubit 中,一旦成功,cubit 会发出一个合适的 state,UI 会相应地进行更改。
- 如果数据已成功获取,它将使用 HiveDB 进行缓存。
- UI 根据这些状态显示。
BLoC/Cubit 模式
BLoC 是 Flutter 的状态管理解决方案。在此项目中,我们使用了 cubit 模式。
下面是 cubit 模式工作方式的图示表示
要了解更多关于 BLoC 的信息:https://github.com/felangel/bloc
使用 HiveDB 进行缓存
缓存用于提高应用在用户体验方面的性能,此应用中的缓存是通过 HiveDB 实现的。
Hive – Hive 是一个用纯 Dart 编写的轻量级且极快的键值数据库。
Hive 是一个 NoSQL 数据库,在读写操作方面都具有非常出色的性能。
我们在此应用中缓存的数据
- 搜索历史(用户搜索过的任何关键词)。
- 从 MediaWiki API 获取的维基文章列表。
应用UI
项目设置
您需要遵循的基本步骤来开始此项目。
要求
步骤 1:克隆此仓库
git clone https://github.com/Shashwat-Joshi/WikiSearch.git
步骤 2:在项目目录中运行这些命令以下载所需的包
flutter clean
flutter pub get
步骤 3:运行项目以发布
flutter run --release
待办事项
- 实现分页(
⭐
缓存应仅针对前 10 个结果)- 主屏幕顶部新闻的分页。
- 维基搜索结果的分页
- 浅色主题模式(
?
) - 连接天气 API
- 从天气 API 获取数据并在主屏幕上显示。
- 缓存天气数据。
- 改进文档(
?
)
如何开始使用 Flutter
如果您这是您的第一个 Flutter 项目,这里有一些入门资源
要开始使用 Flutter,请参阅我们的 在线文档,其中提供了教程、示例、有关移动开发的指南以及完整的 API 参考。





