Skip to content

Repository files navigation

GeoWatch

GeoWatch logo

A compact Wear OS GPS viewer for round smartwatches.

GeoWatch displays live latitude, longitude, accuracy, and the latest update time on a clean round-first smartwatch interface.

Overview

GeoWatch is a focused smartwatch utility built for Wear OS devices. The app does one thing well: it reads the current GPS position and presents it in a simple, readable watch screen without unnecessary navigation or extra battery-heavy behavior.

It is designed for users who want a quick way to verify their live coordinates directly from the wrist.

Features

  • Live GPS position with Latitude and Longitude
  • Accuracy value in meters
  • Last update timestamp shown on screen
  • Lightweight single-screen design for round smartwatches
  • Built-in app version display
  • Location updates stop when the app leaves the foreground to help preserve battery life

Branding

The current branding uses a blue circular pulse theme with a location pin mark to match the app's GPS purpose and round-watch visual style.

Screenshot Gallery

The coordinates in the screenshots below are intentionally blurred for privacy.

GeoWatch GPS enabled screen
GPS Enabled
Shows the app after location services are enabled and the watch is ready to request live GPS data.
Purpose: explain the normal ready state before a location lock is acquired.
GeoWatch indoor no GPS screen
Indoor No GPS
Shows the watch being used indoors where GPS signal is weak or unavailable.
Purpose: show the expected behavior when the device cannot get a reliable satellite fix.
GeoWatch outdoor location lock screen
Outdoor Location Locked
Shows the main tracking screen after the watch successfully finds the current location outdoors.
Purpose: demonstrate the successful GPS result with live coordinates, accuracy, and update time.
GeoWatch Wi-Fi off screen
Wi-Fi Off
Shows the watch context with Wi-Fi turned off during testing.
Purpose: document a test condition where GeoWatch is used without depending on Wi-Fi connectivity.

Version

  • versionCode: 1
  • versionName: 1.0

Version metadata is defined in app/build.gradle.kts.

Tech Stack

  • Kotlin
  • Android SDK 34
  • minSdk = 30
  • XML layouts
  • AppCompatActivity
  • Google Play Services Location API

Main dependencies:

  • androidx.core:core-ktx
  • androidx.appcompat:appcompat
  • com.google.android.material:material
  • androidx.constraintlayout:constraintlayout
  • androidx.wear:wear:1.4.0
  • com.google.android.gms:play-services-location:21.3.0

Project Structure

How It Works

  1. The app checks location permission on launch.
  2. If the permission is not granted, the app requests it.
  3. Once permission is granted, GPS updates begin.
  4. The main screen displays:
    • The latest latitude
    • The latest longitude
    • GPS accuracy
    • Last update time
    • App version
  5. When the activity stops or closes, location updates are removed.

Install Only

Use this section if you only want to install and run the app on a watch.

What You Need

  • A Wear OS smartwatch
  • adb available on the computer
  • A built APK, or this project if you want to install the debug build

1. Connect the Watch

Enable developer options and wireless debugging on the watch, then pair and connect:

adb pair WATCH_IP:PAIR_PORT
adb connect WATCH_IP:CONNECT_PORT
adb devices

The watch should appear in the adb devices list before installation.

2. Install the App

If you already have an APK:

adb install app-debug.apk

If you are installing from this project:

.\gradlew.bat installDebug

3. Launch the App

On the watch:

  • Open the app list
  • Launch GeoWatch
  • Grant location permission when requested

Or launch it from the computer:

adb shell monkey -p com.abdul.geowatch 1

Development Setup

Use this section if you want to open the project, build it, or modify the code.

What You Need

  • Android Studio
  • Android SDK
  • Java through the Android Studio bundled JDK
  • A Wear OS smartwatch, or a Wear OS emulator
  • adb available on the computer

1. Configure Java

If Gradle cannot find Java, use the Android Studio bundled JDK:

$env:JAVA_HOME="C:\Program Files\Android\Android Studio\jbr"
$env:Path="$env:JAVA_HOME\bin;$env:Path"
java -version

2. Configure Android SDK

Create local.properties in the project root with your own Android SDK path:

sdk.dir=C:\\path\\to\\Android\\Sdk

Example:

sdk.dir=C:\\Users\\YourUserName\\AppData\\Local\\Android\\Sdk

Do not commit local.properties. It is machine-specific and already excluded in .gitignore.

3. Build the Project

To build without installing:

.\gradlew.bat assembleDebug

To build and install on a connected watch:

.\gradlew.bat installDebug

GitHub Notes

  • local.properties is machine-specific and should not be uploaded
  • Replace any personal paths, local IPs, or usernames in documentation before publishing
  • Build folders are already ignored in .gitignore
  • Package name: com.abdul.geowatch
  • Screenshots for the repository are stored in assets/screenshots

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages