<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vasanth K</title>
    <description>The latest articles on DEV Community by Vasanth K (@vasanth_k_8b976788bcb8df4).</description>
    <link>https://dev.to/vasanth_k_8b976788bcb8df4</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4124515%2F9033bd9c-8e46-4467-aa60-dda2d2b221ab.png</url>
      <title>DEV Community: Vasanth K</title>
      <link>https://dev.to/vasanth_k_8b976788bcb8df4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vasanth_k_8b976788bcb8df4"/>
    <language>en</language>
    <item>
      <title>AlertSpot: An open-source, battery-friendly transit alarm for Android</title>
      <dc:creator>Vasanth K</dc:creator>
      <pubDate>Mon, 14 Sep 2026 12:06:39 +0000</pubDate>
      <link>https://dev.to/vasanth_k_8b976788bcb8df4/alertspot-an-open-source-battery-friendly-transit-alarm-for-android-37i4</link>
      <guid>https://dev.to/vasanth_k_8b976788bcb8df4/alertspot-an-open-source-battery-friendly-transit-alarm-for-android-37i4</guid>
      <description>&lt;h1&gt;
  
  
  Building AlertSpot: A Privacy-First Location Alarm for Android
&lt;/h1&gt;

&lt;p&gt;Commuting on public transit comes with an everyday annoyance: falling asleep or getting absorbed in a book and missing your stop. &lt;/p&gt;

&lt;p&gt;While location-based reminder apps exist, many require cloud accounts, track location telemetry, or aggressively drain battery by pinging continuous high-accuracy GPS in the background.&lt;/p&gt;

&lt;p&gt;To solve this, I built &lt;strong&gt;AlertSpot&lt;/strong&gt; — a lightweight, completely free, and open-source Android app that fires high-priority audio and full-screen alerts when you enter a destination geofence.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ Architecture &amp;amp; Core Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language &amp;amp; UI:&lt;/strong&gt; Kotlin, Jetpack Compose, Material Design 3&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; MVVM with ViewModel and StateFlow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maps &amp;amp; Tiles:&lt;/strong&gt; OSMDroid (OpenStreetMap)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Location &amp;amp; Geofencing:&lt;/strong&gt; Google Play Services FusedLocationProvider + GeofencingClient&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Navigation &amp;amp; Serialization:&lt;/strong&gt; Jetpack Navigation Compose, Gson&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target SDK:&lt;/strong&gt; Android 8.0 (API 26) up to Android 15 (API 35)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚡ Technical Challenges &amp;amp; Solutions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Zero Google Maps API Costs (OSMDroid)
&lt;/h3&gt;

&lt;p&gt;Instead of relying on commercial Google Maps billing/keys, AlertSpot uses &lt;strong&gt;OSMDroid&lt;/strong&gt; for map rendering. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tile Caching:&lt;/strong&gt; Caches up to 600 MB of OpenStreetMap tiles locally so maps load reliably even with unstable transit mobile data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Geofencing:&lt;/strong&gt; Users can drop pins or search locations to define custom radius zones (in meters or kilometers) rendered directly on the map layer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Battery-Smart Adaptive GPS Polling
&lt;/h3&gt;

&lt;p&gt;Continuous location updates quickly drain battery on long trips. AlertSpot uses a &lt;strong&gt;dynamic polling mechanism&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Far:&lt;/strong&gt; When far from all active geofences, polling frequency drops to save power.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approaching:&lt;/strong&gt; As distance shrinks, polling frequency scales up dynamically to guarantee detection precision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual Detection:&lt;/strong&gt; Combines the Android Geofencing API with background timer distance checks to prevent dropped triggers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Reliable Waking (Surviving Doze Mode &amp;amp; Reboots)
&lt;/h3&gt;

&lt;p&gt;A transit alarm is useless if the system kills it or delays the notification due to Android Doze mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Foreground Service:&lt;/strong&gt; Runs a continuous foreground service with persistent notification status.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full-Screen Intent &amp;amp; Wake Lock:&lt;/strong&gt; When triggered, it fires a full-screen alarm overlay with looping audio and vibration, waking the screen even if the device is locked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reboot Resilience:&lt;/strong&gt; Listens for &lt;code&gt;BOOT_COMPLETED&lt;/code&gt; intents to automatically re-register active geofences on device restart.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔒 Privacy First
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No Accounts / Logins:&lt;/strong&gt; No backend servers, analytics tracking, or telemetry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Storage:&lt;/strong&gt; All locations and history logs remain strictly on the device.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📦 Try AlertSpot / Source Code
&lt;/h2&gt;

&lt;p&gt;The code and pre-compiled APKs are publicly available on GitHub:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/vasanth-kandasamy/alert-spot-android" rel="noopener noreferrer"&gt;vasanth-kandasamy/alert-spot-android&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Download APK Release:&lt;/strong&gt; &lt;a href="https://github.com/vasanth-kandasamy/alert-spot-android/releases" rel="noopener noreferrer"&gt;GitHub Releases&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Supporting the Store Launch
&lt;/h2&gt;

&lt;p&gt;I am an independent developer working to raise the one-time &lt;strong&gt;$25 Google Play Developer fee&lt;/strong&gt; to release AlertSpot on the Play Store for non-technical users. &lt;/p&gt;

&lt;p&gt;If you'd like to support the project, feel free to check out my &lt;a href="https://ko-fi.com/kvasanth" rel="noopener noreferrer"&gt;Ko-fi page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pull requests, feedback, and architecture suggestions are always welcome!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
