@hajiracm/tracking-init
v0.1.0
Published
Expo/React Native tracking initiator (permissions + device id + foreground/background services) with an AsyncStorage queue (no SQLite)
Readme
@hajiracm/tracking-init
Small Expo/React Native helper package that initiates tracking:
- Checks/creates a
deviceId - Requests required runtime permissions
- Starts background tracking via
expo-task-manager+expo-location(Android foreground service notification included) - Falls back to foreground
watchPositionAsyncon Expo Go (Android) - Queues points to
AsyncStorage(no SQLite / no DB)
This package does not upload to your backend. Your app can read/drain the queue and upload however you want.
Install
npm i @hajiracm/tracking-init @hajiracm/tracking-corePeer deps (install in your app):
npx expo install expo-location expo-task-manager expo-constants
npx expo install @react-native-async-storage/async-storage @react-native-community/netinfoSetup (required)
Import the task once at app startup (side-effect import):
import "@hajiracm/tracking-init/trackingTask";Usage
import { startTracking, stopTracking, drainQueuedTrackingPoints } from "@hajiracm/tracking-init";
await startTracking({ sessionId: "shift_123" });
// ... later (e.g. when online)
const points = await drainQueuedTrackingPoints({ sessionId: "shift_123", limit: 200 });
// upload points yourself...
await stopTracking();