Changelog
There is one version of RoamGuard: 1.0. Nothing has shipped after it, so nothing after it is listed here. When there is a 1.1, it will appear below this line with what actually changed.
Release
1.0
Current
Build 7 · iOS 18.0+, watchOS 11.0+
The first release. Everything below is in it.
Measurement
- Mobile data measured from the kernel's per-interface byte counters, with 32-bit counter wraps recovered exactly by modular subtraction.
- Reboots detected from system boot time, not inferred from the numbers.
- Rebuilt cellular contexts detected by kernel interface index, so one line re-anchoring never disturbs another.
- Multi-SIM: every cellular context resolved separately and summed afterwards, with per-line attribution on the dashboard and a flag on any line whose context restarted mid-cycle.
- Per-line pool assignment, so a home line and a local eSIM can be charged to different pools.
- Wi-Fi measured and reported separately, never charged against the plan.
- Time spent on each network, sampled while the app is running or granted a background refresh.
Forecast
- Separate home and roaming pools, each with its own allowance, projection and risk level.
- Projected end-of-cycle total from a linear run rate, plus a probability of exceeding derived from the spread of your own daily usage.
- Safe daily pace, daily average, days elapsed and days remaining.
- Billing cycles that clamp correctly in short months, across leap years and daylight-saving changes.
- Risk shown as On track / Watch out / At risk โ never by colour alone.
Alerts
- Cycle thresholds at 50, 70, 80, 90, 95, 98 and 100%, each switchable; 50, 80, 90, 95 and 100 on by default.
- Forecast alert when the projection lands past the allowance while you are still inside it.
- Heavy-day alert at 1.8× your recent daily average.
- Optional daily budget with alerts at 50, 75 and 100% of it.
- Optional daily summary at an hour you choose.
- Only the 100% alert is Time Sensitive, and only when you leave that switch on.
- Optional pause on Wi-Fi, which still lets the limit alert through.
- Separate sound choices for routine alerts and for reaching the limit, with a working preview.
- Every alert de-duplicated per cycle, or per day for the daily ones.
Surfaces
- Home Screen widgets (small and medium) and Lock Screen widgets (circular, rectangular, inline), which take their own reading rather than re-displaying what the app last wrote.
- A Live Activity scoped to a roaming trip, clearing two minutes after the trip ends.
- Apple Watch app and complications, mirroring the iPhone read-only.
- Siri and Shortcuts actions: remaining mobile data, remaining roaming data, data used today, days left in the cycle, refresh usage, switch roaming on or off.
- CSV and PDF export of daily history.
Honesty, privacy and platform
- A “How it works” screen stating what iOS does and does not expose, and a card on the dashboard saying the same thing where the numbers are.
- Calibration against your carrier's figure, applied to today's record so earlier days keep what was measured.
- No account, no analytics, no third-party SDK, no location access, and no network requests of the app's own.
- Optional iCloud sync, off by default, with per-device records so two devices are never summed.
- 13 languages: Arabic, Chinese (Simplified), Dutch, English, French, German, Italian, Japanese, Polish, Portuguese (Portugal), Russian, Spanish, Turkish.
- VoiceOver, Dynamic Type and Reduce Motion support; light, dark and automatic appearance.
Pre-release builds of 1.0
These are builds of the same 1.0, not separate releases. They are listed because the fixes in them are the kind a user would otherwise have to discover. Dates are the dates the work landed.
| Date | Build | What changed |
|---|---|---|
| 2026-08-24 | 7 | Wi-Fi usage surfaced in the app, which was already being measured but never shown. Alert thresholds became editable in Settings โ previously they could only be chosen once during setup, while setup itself promised they could be changed later. |
| 2026-08-21 | 6 | Play a preview could not work on any device. iOS suppresses an app's own notifications while that app is frontmost unless it explicitly asks for them, and the button also had three separate ways to do nothing without saying so. Both halves fixed: the app now presents its own alerts in the foreground, and the button reports what it did. The Live Activity trip buttons could fail the same silent way, and were fixed with it. |
| 2026-08-18 | — | The widget only ever re-rendered what the app had written. On a phone whose owner had not opened RoamGuard for two days, the widget showed a remaining allowance that ignored two days of traffic and a day count that had already run out, with no hint it was stale. The widget now takes its own counter reading and projects forward, and writes nothing back. |
| 2026-08-11 | 1 | First build: multi-SIM measurement and per-line attribution. |
Builds 2 to 5 were routine submission builds with no user-visible change recorded, so nothing is claimed for them.