WikiSearch

Issues Contributors License Flutter

目录

项目描述

  • WikiSearch 是一个使用 BLoC/Cubit 模式构建的 Flutter 搜索引擎,由 MediaWiki API 提供支持。
  • 它还使用 NewsApi 在主屏幕上显示最新新闻。
  • WikiSearch 还使用缓存来提高用户体验,我们使用了一个名为 HiveDB 的 NoSQL 数据库进行缓存。

工作

应用架构

App Architecture

应用程序逻辑流程

  1. 当通过函数调用或 initState 初始化时,cubit 会接收此请求。
  2. 然后 cubit 调用存储库,存储库会进一步发起 API 调用来获取此数据。
  3. 此数据存储在 cubit 中,一旦成功,cubit 会发出一个合适的 state,UI 会相应地进行更改。
  4. 如果数据已成功获取,它将使用 HiveDB 进行缓存。
  5. UI 根据这些状态显示。

BLoC/Cubit 模式

BLoC 是 Flutter 的状态管理解决方案。在此项目中,我们使用了 cubit 模式。
下面是 cubit 模式工作方式的图示表示

要了解更多关于 BLoC 的信息:https://github.com/felangel/bloc

使用 HiveDB 进行缓存

Flutter logo

缓存用于提高应用在用户体验方面的性能,此应用中的缓存是通过 HiveDB 实现的。

Hive – Hive 是一个用纯 Dart 编写的轻量级且极快的键值数据库。
Hive 是一个 NoSQL 数据库,在读写操作方面都具有非常出色的性能。

我们在此应用中缓存的数据

  1. 搜索历史(用户搜索过的任何关键词)。
  2. 从 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 logo

如果您这是您的第一个 Flutter 项目,这里有一些入门资源

要开始使用 Flutter,请参阅我们的 在线文档,其中提供了教程、示例、有关移动开发的指南以及完整的 API 参考。

GitHub

https://github.com/Shashwat-Joshi/WikiSearch