这个项目能做什么
概览
Rybbit Mobile 是一个社区维护的 Flutter 应用,连接到 Rybbit 分析服务器。它提供原生移动体验,以隐私和开源开发为重点,查看网页分析数据。
截图
应用包含仪表盘概览、分析图表、会话列表、站点设置等页面。其他截图展示国家地图、页面列表和详细会话视图。
功能
- 仪表盘,实时访客计数、组织过滤和时间范围选择。
- 时间序列图表,显示用户、会话、页面浏览、跳出率、时长等。
- 详细指标:热门页面、推荐来源、国家(带国旗)、设备、浏览器、操作系统。
- 核心 Web Vitals 监控(LCP、CLS、FCP、TTFB、INP),使用颜色评级和趋势图。
- 自定义事件概览、属性细分和外链追踪。
- 目标创建(基于路径和基于事件)以及漏斗可视化和转化率。
- 会话列表显示国家旗帜、浏览器信息、入口页面;会话详情展示完整事件时间线和回放。
- JavaScript 错误追踪,显示出现次数和受影响的会话。
- 站点配置(跟踪开关、排除 IP/国家)和组织成员管理。
- 设置深色/浅色/自动主题、语言选择(11 种语言)、服务器 URL 和认证方式。
支持语言
English (en), Japanese (ja), Czech (cs), Korean (ko), German (de), Polish (pl), Spanish (es), Portuguese (pt), French (fr), Chinese (zh), Italian (it).
入门指南
前置条件
- Flutter SDK 3.38+。
- Android SDK (API 21+) 或 iOS Xcode (12+)。
- 可访问运行中的 Rybbit 实例。
设置
1. 克隆仓库。
2. 运行 `flutter pub get` 安装依赖。
3. 使用 `flutter pub run build_runner build --delete-conflicting-outputs` 生成代码。
4. 使用 `flutter gen-l10n` 生成本地化文件。
5. 将 `.env.example` 复制为 `.env` 并填写必需变量。
6. 使用 `flutter run --dart-define-from-file=.env` 运行应用,或以相同方式构建 APK/IPA。
认证
支持两种方式:邮箱+密码登录和 API‑key 认证。在登录界面输入 Rybbit 服务器 URL 和凭证。
技术栈
- 框架:Flutter 3.38+ / Dart 3.10+
- 状态管理:Riverpod
- 路由:go_router
- HTTP 客户端:Dio,带 Cookie 处理
- 本地存储:Hive 与 Flutter Secure Storage
- 图表:fl_chart
- 序列化:Freezed + json_serializable
- 本地化:Flutter gen‑l10n(ARB 文件)
- 可选错误追踪:Sentry(通过 `SENTRY_DSN` 配置)
架构
项目采用特性优先的模块化布局:
lib/
core/ // 配置、网络、路由、主题、存储、Sentry
features/ // 各分析特性(仪表盘、会话、性能等)
l10n/ // 翻译 ARB 文件
shared/ // 公共模型、工具、可复用组件
每个特性分为 data(API)、application(状态)和 presentation(UI)层。
开发命令
- 调试:`flutter run --dart-define-from-file=.env`
- 构建 APK:`flutter build apk --debug|--release --dart-define-from-file=.env`
- 代码生成:`flutter pub run build_runner build --delete-conflicting-outputs`
- 重新生成翻译:`flutter gen-l10n`
- 分析:`flutter analyze`
- 测试:`flutter test`
添加新语言
基于 `app_en.arb` 创建新的 ARB 文件,翻译所有键,将语言代码加入应用入口的支持语言列表,然后运行 `flutter gen-l10n`。
兼容性
- Android:API 21(Lollipop)及以上。
- iOS:12.0 及以上。
- 后端:兼容 Rybbit v1.0 及更高版本。
贡献
欢迎贡献。Fork 仓库,创建特性分支,提交更改,推送并打开 Pull Request。遵循已有代码风格,提交前运行测试。
许可证
这是一项非官方社区项目。底层 Rybbit 平台由 rybbit‑io 组织开发。应用遵循仓库相同的许可证(见 LICENSE 文件)。
评论
0 评分人数达到10人后显示
登录后参与讨论。