
Ani Search 是一个基于 Flutter 的动漫聚合搜索与播放客户端,当前面向 Android 平台。应用通过本地依赖 dart_ani_search 直接获取搜索结果、详情、章节和播放源,远程 API 仅用于版本检查。搜索历史、播放历史、收藏作品、主题偏好和播放器设置存储在本地 SQLite 数据库,不依赖云端同步。
应用使用 GetX 管理路由、依赖注入和页面状态,采用 Material 3 与 FlexColorScheme 构建浅色和深色主题。
场景痛点
追番时在多个动漫站点之间来回搜索同一部作品,是不少观众的日常。每个站点的搜索结果、播放线路和章节列表格式各异,找到一个稳定可用的播放源往往需要反复尝试。换一台设备后,之前的搜索记录和播放进度全部丢失,想接着看只能凭记忆找回上次看到第几集。播放过程中遇到加载失败,需要手动重新打开页面。倍速播放和自动切集等功能,并非每个站点都提供。

核心功能
聚合搜索
应用通过 dart_ani_search 并发查询已启用的 Provider,可携带 Provider 筛选并展示聚合结果。搜索历史保存在本地,支持单条删除和清空。
详情播放
Ani Search 详情播放页在同一页面展示视频播放器、操作按钮、简介、播放线路和章节列表,用户可以边看边选。章节按固定区间分组展示,避免大列表一次性渲染导致页面卡顿。
收藏与播放历史
详情页支持收藏和取消收藏,收藏页提供最近收藏和标题排序两种浏览方式。播放历史按 provider + animeId 维护同一作品的最新记录,保存最近播放剧集、进度、来源和更新时间。详情播放页和历史页均可恢复到上次播放的剧集和秒级进度。
视频播放
播放内核使用 better_player_plus,支持上一集、下一集、重试、缓存、预加载、倍速调节、循环模式,以及播放完成后的自动切集。播放器手势支持进度拖动预览、音量调节、应用亮度调节和自托管全屏路由。自动播放设置可分别控制 WiFi 和移动网络下是否自动播放。
主题与封面
主题支持跟随系统、浅色和深色三种模式,提供多套 Material 3 主题配色。网络封面通过 cached_network_image 统一处理加载、缓存和错误占位。
版本更新
启动时和设置页可检查最新版本。版本服务默认地址为 https://anime.appsrv.pro,可通过编译变量 --dart-define=API_BASE_URL 覆盖。
安装与使用
前置条件
- Flutter / Dart SDK
^3.11.0 - Android 模拟器或真机设备
- Flutter 环境已通过
flutter doctor检查
安装
克隆仓库后,安装依赖:
运行应用:
如需使用自定义版本 API 地址:
构建与测试
| 场景 | 命令 | 说明 |
| 构建 APK | flutter build apk | 构建 Android 安装包 |
| 静态分析 | flutter analyze | 运行 flutter_lints 检查 |
| 运行测试 | flutter test | 执行单元测试和 Widget 测试 |
| 代码生成 | dart run build_runner build --delete-conflicting-outputs | 重新生成 Drift、JSON Serializable 和 Retrofit 代码 |
我的使用感受
从 README 描述来看,Ani Search 把搜索、播放和收藏整合到一个客户端里,直接回应了多站点来回切换的痛点。聚合搜索并发查询多个 Provider,省去了逐个站点搜索同一部作品的时间。播放历史按秒级进度恢复,追番中断后可以无缝衔接。自动切集、倍速播放和手势控制覆盖了主流观影需求,WiFi 和移动网络下的自动播放策略也可分开设置。整体功能定位清晰,适合想在一个应用里集中追番的用户。
官方网站
https://github.com/zhao004/flutter_ani_search
下载地址
https://pan.quark.cn/s/2f94ae1042a2







