Tracelet 生态系统和软件包
Tracelet 是使用 联合插件架构 构建的。 Tracelet 不是将大量的整体依赖项强加到您的应用程序中,而是分为几个模块化包。这可以确保您的应用程序大小保持较小,您只发送实际需要的本机权限和代码,并且后端逻辑与位置跟踪完全分离。
下面概述了 Tracelet 生态系统中的每个包及其用途。
核心包
这些包是 Tracelet 的基础。大多数应用程序只需要直接与主 tracelet 包交互。
未翻译
这是您添加到 pubspec.yaml 的主要前端包。它提供主要的 Dart API (Tracelet.start()、Tracelet.ready())、配置对象 (Config.balanced()),并处理 Dart-to-Rust 绑定。
未翻译
将前端 tracelet 包连接到底层本机平台的抽象通用接口。您永远不会直接与之交互,但它确保所有平台都遵循完全相同的方法和返回类型。
不翻译迟到 & 不翻译1迟到 & 不翻译2迟到
这些是特定于平台的实现。当您安装 tracelet 时,Flutter 会自动在后台提取这些平台包。
tracelet_android包含 Kotlin 包装器和 Android 后台服务逻辑。tracelet_ios包含 Swift 包装器和CLLocationManager逻辑。
网络和同步适配器
Tracelet 将“位置跟踪”与“网络同步”严格分开。如果您想在 onLocation 中构建自己的手动 HTTP 重试逻辑,则无需安装这些。但如果您想要自动、省电的离线同步,则可以使用适配器。
未翻译
核心本机网络引擎。它提供 TraceletSync API。它不是唤醒 Dart 引擎来发送 HTTP 请求,而是运行本机 WorkManager (Android) 或 BGTask (iOS),自动将 SQLite 位置刷新到 HTTP 后端,即使您的应用程序强制退出也是如此。
未翻译
Supabase 的预构建适配器。它将 Tracelet 的本机 HTTP 同步引擎指向 Supabase Postgres RPC 函数(或 Edge Function),为您设置 apikey/Authorization 标头,并在后台刷新 Supabase 会话令牌,以便在应用程序终止时同步继续工作。
未翻译
适用于 Firebase 实时数据库 (RTDB) 的预构建适配器。它将 Tracelet 的本机 HTTP 同步引擎指向 RTDB REST API(100% 无服务器,无云功能),并在后台刷新 Firebase Auth ID 令牌,以便在应用程序终止时同步继续工作。
诊断和调试工具
未翻译
为开发人员提供的嵌入式 UI 覆盖包。将其添加为 开发依赖项 (flutter pub add dev:tracelet_doctor),而不是常规依赖项 — Flutter 从发布版本中排除开发依赖项包,因此它会自动从您发布的内容中删除。通过在测试期间将 tracelet_doctor 添加到您的应用程序,您将获得一个漂亮的诊断叠加层,其中显示:
- 实时 GPS 精度环
- 当前运动状态(静止与移动)
- 本机 SQLite 数据库行计数
- 底层电池消耗
强烈建议在 QA 和测试期间使用 tracelet_doctor。将其保留在 dev_dependencies 下并保护 kDebugMode 后面的使用,以便它从您的发布版本中摇出。