Skip to Content
中心となる概念エコシステムとパッケージ

Tracelet エコシステムとパッケージ

Tracelet は フェデレーテッド プラグイン アーキテクチャ を使用して構築されています。 Tracelet は、アプリに大規模でモノリシックな依存関係を強制するのではなく、いくつかのモジュール式パッケージに分割されています。これにより、アプリのサイズは小さく保たれ、実際に必要なネイティブの権限とコードのみを配布し、バックエンド ロジックは位置追跡から完全に切り離されたままになります。

以下は、Tracelet エコシステム内のすべてのパッケージとその機能の概要です。

コアパッケージ

これらのパッケージは、Tracelet の基盤です。ほとんどのアプリは、メインの tracelet パッケージと直接対話するだけで済みます。

翻訳されない

これは、pubspec.yaml に追加する主要なフロントエンド パッケージです。これは、メインの Dart API (Tracelet.start()Tracelet.ready())、構成オブジェクト (Config.balanced()) を提供し、Dart から Rust へのバインディングを処理します。

翻訳されない

フロントエンド tracelet パッケージを基礎となるネイティブ プラットフォームに接続する抽象的な共通インターフェイス。これを直接操作することはありませんが、すべてのプラットフォームがまったく同じメソッドと戻り値の型に準拠していることが保証されます。

tracelet_android & tracelet_ios & tracelet_web

これらはプラットフォーム固有の実装です。 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 Realtime Database (RTDB)  用の事前構築済みアダプター。これは、Tracelet のネイティブ HTTP 同期エンジンを RTDB REST API (100% サーバーレス、Cloud Functions なし) でポイントし、バックグラウンドで Firebase Auth ID トークンを更新するため、アプリが終了しても同期が機能し続けます。


診断およびデバッグツール

翻訳されない

開発者向けのドロップイン UI オーバーレイ パッケージ。通常の依存関係ではなく、開発依存関係 (flutter pub add dev:tracelet_doctor) として追加します。Flutter はリリース ビルドから開発依存関係パッケージを除外するため、出荷されるものから自動的に削除されます。テスト中にアプリに tracelet_doctor を追加すると、以下を表示する美しい診断オーバーレイが得られます。

  • リアルタイムの GPS 精度リング
  • 現在の動作状態 (STATIONARY vs MOVING)
  • ネイティブ SQLite データベースの行数
  • 根本的なバッテリーの消耗

QA およびテスト中に tracelet_doctor を使用することを強くお勧めします。 dev_dependencies の下に保持し、kDebugMode の背後で使用を保護して、リリース ビルドからツリーシェイクアウトされるようにします。