geo3bit is a professional GPS route recorder for Android and iOS. It records your outdoor activities in real time, saves them as industry-standard GPX files, and lets you review every detail — route map, speed profile, elevation graph, terrain gradient and attached photos — entirely offline on your device. No account or internet connection is required to record or view routes.
Background GPS Recording
Tracks your position continuously even when the screen is off or another app is in the foreground.
Interactive Route Map
OSM or Google Maps with tappable GPS points, fullscreen mode, photo markers and chart overlay.
Speed / Elevation / Gradient Charts
Interactive Chart.js graphs with crosshair that syncs a live cursor on the map.
Geotagged Photos
Capture photos during tracking — each photo is pinned to the exact GPS point where it was taken.
Import & Export
Share routes as GPX, KML or Garmin TCX. Import GPX / KML / TCX files from any other app. PRO adds ZIP packages with photos and videos.
PRO Toolkit PRO
Manual route builder, editing of recorded routes, and ZIP data packages (GPX + media) — unlocked with a single one-time purchase.
Fully Offline & Private
All data lives on the device. No cloud sync, no account, no ads. Only anonymous crash diagnostics.
geo3bit records your movement as a sequence of GPS track points. Each point captures coordinates, timestamp, altitude, speed, heading, accuracy, satellite count and device battery level. Recording continues in the background using the system location service.
Starting a New Route
Tap the + button on the dashboard. Fill in the route name (required), an optional description, and choose an activity type:
Running
Cycling
Hiking
Walking
Swimming
Skiing
Recording Controls
-
StartBegins background GPS collection. A persistent notification appears in the system tray with live distance and point count.
-
PauseFreezes point collection while keeping the session open. The notification shows "Paused" state. Resume any time.
-
Stop & SaveFinalises the track, calculates statistics, and saves the GPX file to local storage. A confirmation dialog is shown before stopping.
-
Camera CaptureTap the camera button on the recording banner to take a photo at the current GPS position. The photo is permanently linked to that track point.
Background Operation
geo3bit uses expo-location with Background accuracy and expo-task-manager to run a location task when the app is not visible. On Android a Foreground Service with type location ensures the OS does not kill the process. On iOS Background Modes → Location updates is enabled in the entitlements.
Battery logging: each recorded point stores the current battery percentage so you can correlate power drain with route segments in post-analysis.
Live Stats During Recording
| Stat | Description |
| Elapsed Time | Counting from the moment recording started (excludes paused periods) |
| Distance | Cumulative distance calculated via the Haversine formula (metres → km) |
| Avg Speed | Total distance ÷ elapsed seconds × 3.6, displayed in km/h |
| Max Speed | Peak instantaneous speed reported by the GPS sensor (km/h) |
| Elevation Gain | Total metres climbed (ignores downhill segments) |
| GPS Points | Number of location fixes collected so far |
GPS Recording Precision
| Setting | Available options | Default |
| Distance Interval | 5 · 10 · 20 · 50 · 100 m | 5 m |
| Time Interval | 1 · 3 · 5 · 10 · 20 · 30 s | 3 s |
A point is recorded when either threshold is crossed. Redundant duplicate points are filtered by a speed-plausibility check to suppress GPS jumps.
System Tray Notification
-
Live StatsElapsed time, distance and point count directly in the notification. On Android the timer is computed natively from persisted session anchors — it keeps running correctly and smoothly even in deep sleep, after the app is removed from memory, or after a phone reboot.
-
Accurate Point CounterThe number shown on Android is read from the single pipeline that writes the track file — what you see is exactly what gets saved, point for point.
-
Pause / ResumeAction buttons in the notification. Work from the lock screen, notification shade, or any other app — even when the app process has been killed by the system: the state is applied natively and reconciled on next launch.
-
Stop & SaveEnd your session and save the route directly from the notification. If the app was unloaded, the track is safely finalised on the next launch.
-
iOS BehaviourThe notification appears the moment the app goes to the background and is refreshed by the background location task even while the app is suspended. If the app is force-quit, the status line changes to "Recording suspended" so frozen numbers are never mistaken for live ones.
Recording Reliability
-
Deep-Sleep Protection (Android)A partial wakelock is held while recording, and the app asks once for a battery-optimization exemption — preventing aggressive OEM power managers (Doze) from starving the GPS pipeline on multi-hour recordings.
-
Native GPS Engine (Android)Track points are recorded entirely by native code inside the foreground service — no schedulers or app-layer code in the path, so Doze and deep sleep cannot interrupt point capture the way they throttle ordinary background work.
-
Self-Healing Service (Android)The tracking service restarts automatically if the system kills it — guarded by a heartbeat alarm, a periodic watchdog, and full session restore after a phone reboot or an app update installed mid-recording. Recording resumes without the app being opened.
-
Honest Status Banner (Android)If GPS delivery genuinely stops for over 3 minutes, the green banner turns amber and reads "Recording suspended" — frozen numbers are never dressed up as live ones, mirroring the iOS behaviour.
-
Force-Quit Recovery (iOS)iOS stops GPS when the user swipes the app away — that's an OS rule for every app. geo3bit arms the significant-change location service, which relaunches the app in the background after ~500 m of movement: full GPS recording resumes automatically and the gap is bridged with coarse "skeleton" points.
-
Crash-Safe Point StoragePoints are written as append-only journal fragments flushed to disk on every point — a crash, kill or reboot can never corrupt earlier data, and recording resumes into the same track.
Dashboard
-
Stats Overview CardShows total routes, combined distance and total time across all recorded tracks.
-
Recent Routes ListEach card shows route name, date, distance, duration, activity tag and a status badge (Active / Paused / Completed).
-
New Route Button (FAB)Floating action button at the bottom right. Opens the New Route form. During an active recording the button becomes a red Stop button.
-
Recording BannerA sticky banner at the top of the dashboard while GPS tracking is active, showing elapsed time, live distance and the camera capture button.
-
SettingsAccessible via the gear icon in the top-right corner of the dashboard header.
-
Import RouteAccessible via the import icon in the dashboard header. Supports GPX, KML, Garmin TCX and — with PRO — ZIP packages with photos and videos.
Track Detail View
-
Route Map PreviewEmbedded map showing the full track path, start marker (green), finish marker (red), and camera markers for points with photos. Tap to expand fullscreen.
-
Edit Name & DescriptionTap the name or description field inline to edit. Changes are saved automatically on submit.
-
Route StatisticsDistance, duration, average speed, max speed, elevation gain, altitude range (min–max) and total GPS points recorded.
-
Photos & VideosHorizontal scroll strip of all media attached to the route. Tap any thumbnail to open fullscreen viewer. "View All" button (≥ 9 photos) opens a 3-column grid browser.
-
Map with PhotosOpens the fullscreen map showing only GPS points that have photos attached. Tap any camera marker to slide up a photo thumbnail panel.
-
Edit Route PROOpens the completed track in the fullscreen route editor — move, edit or delete individual points, attach media to points, then save the corrected track.
-
Export Package PROSaves or shares a ZIP containing the GPX file plus all attached photos/videos — a complete, transferable copy of the route.
-
Delete RoutePermanently removes the route and all attached media from the device. A confirmation dialog is shown first.
Track Status Badges
| Status | Meaning |
|
GPS tracking is currently active for this route. Stats update in real time. |
|
Tracking was paused; the route can be resumed. |
|
Recording was stopped and the route is fully saved. |
The route map is rendered inside a WebView using Leaflet.js (OSM) or the Google Maps JavaScript API — eliminating any native map SDK dependency.
Map Providers
Free · No API key
OpenStreetMap (OSM)
Default provider. Uses Leaflet.js 1.9.4 with OSM tiles. Works offline for cached tiles. No account required. Native tiles up to zoom 19, over-zoom rendering up to 22.
API key required
Google Maps
Uses the Google Maps JavaScript API loaded via CDN. Enter your own API key in Settings → Map → Google Maps API Key.
iOS only · No API key
Apple Maps
Default provider on iOS via native MapKit. Standard Apple cartography, no key or account needed.
Map Features
-
Track PolylineThe recorded GPS path rendered as a solid blue line (#228be6) on both map providers.
-
Start / Finish MarkersGreen circle at the first point, red circle at the last point. Visible at all zoom levels.
-
Photo MarkersGPS points with photos attached are rendered as orange dots. Tap to see the photo thumbnail panel.
-
Point Info PopupIn interactive mode, tapping any track point shows: coordinates, time, altitude, speed, heading, accuracy, satellite count, battery level.
-
Fullscreen ModeTap the expand icon to open a fullscreen interactive map. Extends edge-to-edge on Android 15 (Portal-based rendering) and iOS.
-
Chart Panel ButtonA round button (stats-chart icon) in the lower-right of the fullscreen map opens the interactive chart panel. Disappears while the chart is open.
-
Chart Cursor MarkerWhen the user drags on a chart, a white circle with red border appears on the map at the corresponding GPS coordinates — moves in real time.
-
Open in Google MapsExports the full route as a Directions URL with up to 23 sampled waypoints and opens it in the Google Maps app.
-
Photo MapA dedicated fullscreen map showing only GPS points where photos were captured. Tap a marker to view its photos in the slide-up panel.
Manual Route Builder & Editor PRO
Create a route without GPS recording — or open any recorded track and edit its points on a fullscreen map.
-
Tap to Add PointsTap anywhere on the map to drop the next numbered route point. The dashed polyline connects points in order.
-
Address SearchType an address or place name — the device geocoder centres the map and adds a point there. No third-party geocoding API involved.
-
Per-Point EditingTap a point to edit its coordinates and data, attach a photo or video (camera or gallery), or delete it.
-
Built for Big RoutesHundreds of points render on a single canvas layer, so zoom and pan stay smooth even on imported 700-point tracks. Numbered markers appear at close zoom for the visible area only. On open, the map auto-fits so the whole route is in view.
-
Map Settings ("…" button)The round button at the end of the route-name field opens Map Settings with the Point Numbers Zoom slider (12–20) — choose yourself at which zoom level the numbered markers appear. The value is remembered and also editable in Settings → Map.
Technical note: The map fills the entire screen (height: 100vh in the WebView) including the status bar and navigation bar on Android 15 edge-to-edge mode via Portal-based rendering.
The chart panel slides up from the bottom of the fullscreen map and occupies approximately one-third of the screen height. Powered by Chart.js 4.4.6 in a dedicated WebView. Charts display up to 400 sub-sampled points for smooth rendering on long routes.
Available Chart Tabs
Speed
km/h — over cumulative distance (km)
Elevation
metres above sea level — over cumulative distance (km)
Gradient
% slope (rise ÷ run × 100) — over cumulative distance (km)
Chart Details
| Tab | Y-axis | X-axis | Line colour |
| Speed | km/h (speed × 3.6) | Distance km | ■ #228be6 |
| Elevation | metres | Distance km | ■ #2f9e44 |
| Gradient | % grade | Distance km | ■ #e67e22 |
Gradient Calculation
gradient[i] = ( altitude[i+1] − altitude[i] ) ÷ ( distance_m[i→i+1] ) × 100 %
Positive = uphill, negative = downhill. Points with distance < 1 m are skipped to prevent artefacts.
Interactive Features
-
Touch CrosshairTouch or drag on the chart to show a vertical dashed crosshair line at your finger position.
-
Floating TooltipAppears at the top of the chart showing the current value and cumulative distance: e.g. 42 km/h · 7.34 km
-
Map Cursor SyncWhile you touch the chart, a red/white circle marker appears on the map at the corresponding GPS coordinates — moves in real time. Disappears on finger lift.
-
Tab SwitchingTap Speed / Elevation / Gradient tabs at the top of the chart panel. Animates to the new dataset in 180 ms.
-
Drag to ClosePull the drag handle downward or tap × in the panel header to dismiss the chart panel.
Localised Tab Labels
| Language | Speed tab | Elevation tab | Gradient tab | Panel title |
| English | Speed | Elevation | Gradient | Charts |
| Українська | Швидкість | Висота | Ухил | Графіки |
| Русский | Скорость | Высота | Уклон | Графики |
| Deutsch | Tempo | Höhenprofil | Steigung | Diagramme |
| Italiano | Velocità | Quota | Pendenza | Grafici |
Export Formats
GPX 1.1
KML 2.2
Garmin TCX
ZIP Package · PRO
| Format | Standard | Compatible Apps | Contains |
| GPX 1.1 |
GPS Exchange Format |
Strava, Garmin Connect, Komoot, Google Maps, OsmAnd, any GPX viewer |
Track points (lat/lon/ele/time), metadata, statistics extensions |
| KML 2.2 |
Keyhole Markup Language |
Google Earth, Google Maps, Google My Maps |
Track polyline, start/end placemarks, route metadata |
| Garmin TCX |
Training Center XML |
Garmin Connect, TrainingPeaks, Strava, SportTracks |
Activity data, track segments, lap structure |
| ZIP Package PRO |
geo3bit data package |
geo3bit on any other device — full route transfer / backup |
GPX track plus all attached photos and videos with their GPS metadata |
Import Formats
GPX 1.0 / 1.1
KML 2.2
Garmin TCX
ZIP Package · PRO
-
Detailed Import PreviewBefore confirming, a full TrackDetail-style card shows the route name, description and dates, an icon stats grid (distance, duration, points, elevation gain), average / max speed, altitude range — and for ZIP packages, the number of bundled photos and videos.
-
Duplicate DetectionIf a route with the same internal ID already exists, a warning dialog offers to import anyway (GPX / KML / TCX) or — for ZIP packages — sync only the missing media into the existing route, or cancel.
-
Media Resync PRORe-importing a ZIP package for a route you already have restores any photos or videos you've since deleted — the packaged media is compared against what's on the device, so only the missing files are added back and nothing is duplicated.
-
Validation & Friendly ErrorsFiles are validated before import. Malformed or unrecognised files show a clear, human-readable error card with an icon — never raw technical error text.
Open in Google Maps
The Google Maps button in Track Detail samples up to 23 waypoints evenly from the route and opens a Directions URL. On iOS the comgooglemaps:// URL scheme is tried first, falling back to the web URL.
The free edition of geo3bit records, analyses, imports and exports routes without limits. The PRO upgrade unlocks the creator toolkit — building and editing routes by hand and moving complete routes (with media) between devices.
One-time purchase — no subscription.
Pay once through Google Play Billing or the App Store and use PRO forever. The purchase is restored automatically after a reinstall or on a new device ("Restore previous purchase"). All future PRO features are included. Payment is processed entirely by Google / Apple — the app never sees your payment details.
What PRO Unlocks
Manual Route Builder
Create routes without GPS: tap points on the fullscreen map, search addresses, reorder and refine — then save as a regular track.
Edit Recorded Routes
Open any completed track in the route editor: fix stray points, edit coordinates and per-point data, attach photos or videos to specific points.
ZIP Package Export
Bundle a route's GPX file together with all its photos and videos (including their GPS metadata) into a single ZIP — save to storage or share it anywhere.
ZIP Package Import
Import a geo3bit ZIP package on another phone: the track, statistics and every photo/video land exactly where they were — a full route transfer or backup restore. Re-importing the same package later resyncs any media you've since deleted, without duplicating what's still there.
Device migration tip: ZIP packages are the intended way to move routes between phones or between app versions — each package carries the complete route with media, so nothing depends on the device it was recorded on.
Settings are accessible via the gear icon on the dashboard. All values are persisted to AsyncStorage and restored on app launch.
Data
Use Demo Data
Load sample routes to explore the app without recording real tracks.
ON / OFF
GPS Tracking
Distance Interval
Minimum distance the device must move before a new GPS point is saved.
5 · 10 · 20 · 50 · 100 m
Time Interval
Maximum time between GPS points. A point is saved when either threshold is reached.
1 · 3 · 5 · 10 · 20 · 30 s
Map
Map Provider
Switch between OpenStreetMap (free, no key), Google Maps (requires API key) and — on iOS — Apple Maps.
Apple (iOS) · OSM · Google
Google Maps API Key
Your own Google Maps JavaScript API key. Stored locally, never transmitted.
Text field
Photo Nearby Radius
Max distance between a photo's GPS coordinates and a track point to link them.
10 · 20 · 50 · 100 · 200 m
Point Numbers Zoom
Zoom level at which numbered point markers appear on the route-editor map. Lower value shows numbers earlier; with many points the map may respond slower. Also adjustable from the "…" button on the editor map itself.
Slider 12 – 20 · default 15
Appearance
App Theme
Light, dark, or follow the system setting. The full palette — cards, badges, charts, panels — switches together. Takes effect after the app is restarted.
Light · Dark · System
Language
App Language
Override the device language. All UI text including chart labels updates immediately.
EN · UA · RU · DE · IT
About
App Info
Shows app name (geo3bit), version, and confirms all data is stored locally — no registration required.
Read-only
Each permission is requested in context with a rationale panel before the system dialog appears. Permissions that are denied do not block the app — only the relevant feature is disabled.
Location — Foreground Required
Needed to record GPS points while the app is visible. Requested when the user taps "Start Recording".
Location — Background Required for full tracking
Required for GPS recording to continue when the screen is off. On iOS: select "Always Allow". On Android 15: prompted separately by the OS.
Camera Optional
Needed to capture photos during a recording session. If denied, the camera button is hidden but all other features work normally.
Notifications (POST_NOTIFICATIONS) Recommended
Required on Android 13+ to display the live tracking notification. Without it, Pause/Stop controls are only available inside the app.
Wake Lock & Battery Optimization Exemption Recommended
Android only. A partial wakelock keeps the GPS pipeline alive with the screen off; a one-time system dialog (shown at the first recording) asks to exempt the app from battery optimization so Doze and OEM power managers don't create gaps in long recordings. Declining does not block any feature.
Android 15 specifics: The app declares FOREGROUND_SERVICE_LOCATION permission and targets API 35. READ/WRITE_EXTERNAL_STORAGE are limited to API ≤ 32 via maxSdkVersion="32".
geo3bit uses i18next with react-i18next for full UI localisation. The language can be changed at any time in Settings without restarting the app. All labels — including chart tab names, map point info fields, permissions panels and settings — are translated.
| Language | Code | Coverage |
|
English |
en |
Full — reference language |
|
Українська |
uk |
Full |
|
Русский (Украина) |
ru |
Full |
|
Deutsch |
de |
Full |
|
Italiano |
it |
Full |
The app detects the device locale on first launch and selects the closest supported language. If the device language is not in the list, English is used as a fallback.
-
On-Device Storage OnlyAll GPS tracks, photos and settings are stored exclusively on the device using AsyncStorage and the file system. Nothing is sent to any server.
-
No Registration RequiredThe app works fully in guest mode. An optional login screen exists for future authenticated features but is not required for any current functionality.
-
No Ads, No Tracking IDsNo advertising networks and no Advertising ID collection. Anonymous crash diagnostics and basic usage statistics (Firebase Crashlytics / Analytics) help fix bugs — never linked to your identity or location history.
-
PRO Purchase PrivacyThe one-time PRO purchase is processed entirely by Google Play Billing / the App Store. geo3bit never sees payment details — only the purchase confirmation, stored locally.
-
Google Maps API KeyStored locally in AsyncStorage. Sent directly to Google Maps CDN when loading map tiles — never transmitted to geo3bit servers.
-
App Private DirectoryGPX files are written to the app's private cache/document directory. No external storage permissions needed on Android 6+.