Field Track 360

Location infrastructure for developers

Build location-aware apps without building location infrastructure.

Add continuous, background and motion-triggered location tracking to your application with an SDK built for apps that run all day - one that keeps working when the app is backgrounded, the network drops and the battery is at 12%.

No developers? Use our app instead - ready-made field workforce tracking, nothing to build.

TrackPoint

accepted
latitude
19.0760
longitude
72.8777
accuracy
8.5f
speedMps
3.4f
bearingDeg
184.2f
provider
"fused"
movementStatus
MOVING
odometerMeters
18624.0

Captured on device. Delivered to your backend, not ours.

The problem

Location tracking is harder than getting GPS coordinates.

A single getCurrentPosition() call is a demo. Production-grade tracking means owning an entire subsystem - one that keeps working when the app is backgrounded, the network drops and the OS decides your process is expendable.

  • 01 Background execution
  • 02 Permission management
  • 03 Battery optimisation
  • 04 Offline persistence
  • 05 Synchronisation
  • 06 Geofencing
  • 07 Movement detection
  • 08 Location history
  • 09 Accuracy handling

Without an SDK

9 subsystems

Every layer is yours to build, test, ship and maintain - twice, because Android and iOS disagree about all of it.

GPS APIs Permissions Background service Offline store Sync Geofencing Motion Retry logic

With Field Track 360

1 dependency

One integration surface, the same on every platform. You write product code.

Tracker.getInstance() your application
Setup
~10 min
Platforms
4
Network to start
none

Core capabilities

Everything you need to build location-aware experiences.

Use modular location capabilities instead of building the underlying infrastructure from scratch.

01

Real-time location

One fresh fix on demand, or a continuous stream as the device moves.

getCurrentLocation()

02

Background location

Capture continues in a foreground service, and survives a swipe-away and a reboot.

foregroundService

03

Geofencing

Define boundaries and respond to entry and exit events.

addGeofence()

04

Location history

Read stored points back, paged, for routes and activity timelines.

getPoints(query)

05

Movement detection

Moving and stationary states, so tracking can stand down when nothing is happening.

MotionChange

06

Distance and trips

Sessions, odometer and a built track with stops and speed bands.

getOdometerMeters()

07

Offline capture

Points persist locally with their own TTL and reconcile when the network returns.

PersistenceConfig

08

Plot and export

Build a track and export it as polyline JSON or GeoJSON.

exportGeoJson()

How integration goes

From SDK integration to location intelligence.

  1. 1

    Add the SDK

    Pull the package in with your platform's dependency manager.

    gradle / spm / pub / npm

  2. 2

    Supply your licence

    Read it from local.properties into a build config field.

    FIELDTRACK_LICENSE

  3. 3

    Request permissions

    Prompt for foreground and background location, following platform rules.

    when-in-use → always

  4. 4

    Start tracking

    Configure accuracy and interval, then open the session.

    tracker.start(tag)

  5. 5

    Build your product

    Ship live maps, geofence triggers, trip summaries and your own logic.

    your code

Developer experience

Designed for developers. Built for fast integration.

Clear APIs, predictable behaviour, and documentation that matches the release you are actually holding.

A small API surface

Three calls to start tracking, and nothing on the Tracker surface throws - every fallible call returns a typed result. Licensing is handled inside the SDK: no endpoint to call, and no crypto for you to write.

  • Tracker.getInstance(context) idempotent, one per process
  • tracker.ready(config) verify the licence, prepare
  • tracker.start(tag) open a session
  • tracker.stop() close it

One key, every platform

Native Android and iOS, with React Native and Flutter bridging to the same native code. A single access key covers all four.

Guides are published from each SDK's own README, so they match the release rather than a transcription of it.

Quick start

Start tracking with a few lines of code.

Prepare the tracker with your access key, then start a session. The key is verified on the device, offline - there is no activation call to wait for.

Read the documentation
// Three calls: getInstance -> ready -> start.
val tracker: Tracker by lazy { Tracker.getInstance(this) }

when (val result = tracker.ready(
    TrackerConfig.builder()
        .license(BuildConfig.FIELDTRACK_LICENSE)
        .build()
)) {
    is TrackerResult.Ok    -> Log.d("app", "ready: ${result.value}")
    is TrackerResult.Error -> Log.w("app", "${result.code}: ${result.message}")
}

// Once permissions are granted. Before ready(), this is NOT_READY.
when (val session = tracker.start(tag = "commute")) {
    is TrackerResult.Ok    -> Log.d("app", "session ${session.value.id}")
    is TrackerResult.Error -> Log.w("app", "${session.code}")
}

Kotlin 17 lines Full Android guide

Use cases

One SDK. Many location-based applications.

01

Field workforce

Track visits, movement and field activity across a shift.

02

Logistics and delivery

Follow delivery agents, routes and trip progress in real time.

03

Fleet management

Monitor vehicle and device movement as it happens.

04

Ridesharing

Power live driver and passenger location experiences.

05

Location attendance

Build presence and attendance workflows tied to a place.

06

Asset tracking

Keep sight of mobile assets, equipment and connected devices.

07

On-demand services

Connect users with the nearest available provider.

08

Location experiences

Trigger in-app behaviour when someone arrives or leaves.

Built for the real world

Built for real-world location tracking.

Background tracking

Updates continue while the app is backgrounded, within what the OS permits.

foreground
updates
background
updates
terminated
OS-dependent

Behaviour varies with OS policy and the permission level granted.

Battery conscious

Trade update frequency against power draw, per tracking profile.

high
5 s
balanced
30 s
low
5 min

Motion-triggered capture slows updates while a device is stationary.

Offline first

Points are persisted through a connectivity gap and reconciled afterwards.

device queue sync

Your app keeps receiving events locally throughout the outage.

Never goes dark

The licence is verified on the device. If our servers are unreachable, tracking carries on.

offline verify fail open no activation call

A tracking app should never stop because a server blinked.

Location data

Rich location data - and it is yours alone.

Every fix carries the metadata your product logic needs, not just a pair of coordinates. All of it stays on the device and goes to your backend.

latitude / longitude
Decimal degrees, WGS 84
accuracy
Horizontal radius, in metres
speed
Ground speed at the time of the fix
heading
Direction of travel, in degrees
movement
Moving or stationary state
timestamp
ISO 8601, UTC

Where it goes

  • 1

    The device captures a fix

    Buffered locally if the network is gone.

  • 2

    Your app sends it to your backend

    Your endpoint, your schema, your retention policy.

  • 3

    We receive a licence check

    A key and an application id, occasionally. Never a coordinate.

There is no location ingestion endpoint to opt out of, because there is no location ingestion.

Security and privacy

Location data deserves strong protection.

Nothing to leak

We hold no location data, so there is no store of your users’ movements for anyone to breach - ours or yours.

Signed licences

Access keys are signed with Ed25519 and verified on the device. A key cannot be edited, extended or forged.

Permission-led

The SDK asks for what the platform requires and works within the level the user granted. It never routes around consent.

Encrypted in transit

The one call we do receive - the licence check - travels over TLS and its response is signed, so a hostile network cannot fake a revocation.

No certification claims are made on this page. Everything above is a control the product actually implements, and each one is documented in the integration guides.

Pricing

Buy once. Ship forever.

Licences are perpetual and priced per application key - no renewals, no per-device fees, and no charge for how much location data you capture.

Compare all plans

STARTER

For building 1 app

₹49,000

one-time

  • 1 application key
  • Perpetual licence, never expires
  • One key covers every platform
Buy Starter

STUDIO

For building 5 apps

₹1,75,000

one-time · ₹35,000 per app

  • 5 application keys
  • Perpetual licence, never expires
  • One key covers every platform
Buy Studio

TEAM

For building 10 apps

₹2,95,000

one-time · ₹29,500 per app

  • 10 application keys
  • Perpetual licence, never expires
  • One key covers every platform
Buy Team

Not ready to buy? Start a free 30-day trial - a signed key, issued immediately, no card required.

FAQ

Frequently asked questions.

Still have questions? Talk to our team.

What is a location tracking SDK?

A client library that owns the whole lifecycle of location data inside your app - acquiring fixes from the device, managing foreground and background permissions, surviving the OS killing your process, buffering while offline, and handing your code structured location events. It replaces the platform-specific plumbing you would otherwise write and maintain separately for every OS you ship on.

Which platforms are supported?

Native Android (Kotlin) and iOS (Swift), plus React Native and Flutter, which bridge to those same native SDKs. One access key covers all four - a React Native app and a native Android app built from the same application id use the same licence.

Can the SDK track location in the background?

Yes, and that is what it is built for. Background behaviour is still governed by the operating system: the user must grant background location access, and delivery frequency depends on OS power policies, app state and device conditions. The SDK works within those rules rather than around them.

Do you receive our location data?

No. The SDK sends no location data to us. It stays on the device and in whatever backend you send it to. The only thing our servers ever see is an occasional licence check, which carries a key and an application id - never a coordinate.

Does my app need internet to start tracking?

No. The access key is verified on the device, offline, using a signature - so tracking starts on a plane, on first launch, in a basement. We do check periodically whether a licence has been revoked, but if that check cannot reach us your app carries on working. A tracking app should never go dark because a server blinked.

How does the SDK affect battery usage?

Power draw scales with how often you request a fix and how precise it must be. Accuracy profiles and update intervals are configurable, and motion-triggered capture lets updates slow or pause while a device is stationary - so the cost matches what your use case actually needs rather than a fixed worst case.

What does a licence cost, and does it expire?

Licences are perpetual and priced per application key, quoted in your local currency. Buy once and that application is licensed forever, including builds already released. A year of SDK updates is included; when it lapses, everything you have shipped keeps working - you simply stop receiving new SDK releases until you renew.

Ready when you are

Build location intelligence into your application.

Integrate background location tracking without building the infrastructure underneath it. Start with a free 30-day key and keep the same key when you buy.