Widget Limitations
This is the most important page in the Hereish docs. Widgets are the primary way you interact with Hereish, and their behavior is largely controlled by iOS — not by the app itself. Understanding these constraints will save you from wondering why your widget says “Sudbury” when you’re clearly in Framingham now.
How Widget Refresh Works
Section titled “How Widget Refresh Works”Hereish requests a timeline update every 5 minutes. But “requests” is the key word — iOS controls the actual refresh budget and decides when (or whether) to honor each request.
When iOS does grant a refresh, the widget checks the cached location data:
- If the cache is fresh (updated within the last 5 minutes): the widget displays it immediately.
- If the cache is stale: the widget attempts a live GPS fix with a 10-second timeout. If that succeeds, it updates the display. If it times out, the widget shows whatever it has.
The freshness of your cache depends heavily on your permission level.
How Permission Level Affects Updates
Section titled “How Permission Level Affects Updates”With “Always” Permission
Section titled “With “Always” Permission”When you grant “Always” location access, Hereish registers for Significant Location Change monitoring. This is a low-power iOS service that wakes the app whenever you move approximately 500 meters. Each time it fires:
- Hereish gets your new location
- Reverse geocodes it to a town name
- Writes it to the shared cache
- Asks iOS to refresh your widgets
The result is that your widgets almost always have fresh data waiting. The 5-minute refresh cycle just picks up what’s already there.
With “While Using” Permission Only
Section titled “With “While Using” Permission Only”Without “Always” permission, there is no background location monitoring. Once you leave the app, the cache goes stale. Widgets must rely on their own live GPS fix during each refresh cycle — a fix that has a 10-second timeout and may fail entirely.
In practice, this means widgets with “While Using” permission can lag significantly, especially if you haven’t opened the app recently.
Expected Update Latency
Section titled “Expected Update Latency”How quickly your widget reflects your actual location depends on what you’re doing and which permission you’ve granted:
| Scenario | Permission | Expected Latency |
|---|---|---|
| Driving, app open | Either | Near-instant |
| Driving, app backgrounded | Always | 1-3 minutes |
| Backgrounded, stale cache | While Using | 5+ minutes |
| Manual refresh button | Either | 1-10 seconds |
These are typical values. Actual performance varies based on GPS signal strength, network availability for reverse geocoding, and iOS’s current power budget.
What iOS Controls (and Hereish Cannot)
Section titled “What iOS Controls (and Hereish Cannot)”iOS may delay or skip widget refreshes based on several factors:
- Widget visibility — Widgets that aren’t currently on screen get a lower refresh priority. If your Hereish widget is buried in a stack or on a secondary home screen page, iOS may refresh it less frequently.
- Power state — Low Power Mode reduces the widget refresh budget across the board. If your battery is low and Low Power Mode is on, expect slower updates.
- System load — When iOS is busy with other tasks, widget refreshes may be deferred.
- Battery level — Even without Low Power Mode, iOS becomes more conservative with widget budgets as battery decreases.
None of these factors are within Hereish’s control. The app does everything it can — requesting refreshes, keeping the cache current, flagging itself as location-relevant — but iOS has the final say.
Reverse Geocoding Accuracy
Section titled “Reverse Geocoding Accuracy”Hereish uses Apple’s reverse geocoding service to turn GPS coordinates into a town name. This is generally reliable, but it depends on Apple’s geographic data, which occasionally disagrees with municipal boundaries.
You might see a neighboring town’s name when you’re near a border, or an unincorporated area might resolve to the nearest named place. This is a data-quality issue on Apple’s end, not something Hereish can correct.
Troubleshooting Slow or Stuck Widgets
Section titled “Troubleshooting Slow or Stuck Widgets”If your widget isn’t updating as expected, check these in order:
-
Location permission — Open Settings, then Privacy & Security, then Location Services, then Hereish. Confirm it’s set to “Always” for the best experience. See Download & Permissions for details.
-
Background App Refresh — Open Settings, then General, then Background App Refresh. Make sure the master toggle is on and Hereish is enabled.
-
Low Power Mode — If Low Power Mode is active, iOS throttles widget refreshes. Turn it off if you need current location data on your widgets.
-
Widget visibility — Widgets that are visible on your active home screen page get priority. If Hereish is in a Smart Stack, try moving it to the front or placing it directly on your main page.
-
Manual refresh — Home screen widgets have a refresh button (the arrow icon). Tap it to force a location update. This bypasses the timeline schedule and typically returns a result in 1-10 seconds.
-
Restart the widget — Remove the widget and add it again. This resets the timeline and forces iOS to schedule fresh refreshes.
Why Can’t It Be Faster?
Section titled “Why Can’t It Be Faster?”iOS intentionally limits how often widgets can refresh. This is a platform-level design decision to preserve battery life across all apps on your device. Apple does not provide a way for any app — Hereish or otherwise — to force real-time widget updates.
Hereish does everything the platform allows: short timeline intervals, Significant Location Change monitoring, location-relevance hints to the system, and a manual refresh button as a fallback. The 1-3 minute latency with “Always” permission is about as good as it gets for any location widget on iOS.
This is a platform constraint, not a Hereish limitation.