这个项目能做什么

概览 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 文件)。