iPad & iPhone: waarom uw locatie soms niet meeloopt
22 februari 2024 om 04:12
Apple-apparatuur en iPads in het bijzonder zijn voor ons lastige apparaten om rekening mee te houden bij de ontwikkeling van onze app. We schreven eerder al deze blogpost, over navigeren met een iPad. We gingen hier specifiek in op iPads met alleen wifi en die dus geen GPS-antenne bevatten.
Sinds vorig jaar kregen we uit het niets meldingen van onze gebruikers die allen tegen hetzelfde probleem aan liepen. Hun locatie op onze kaart stond regelmatig ineens stil en ‘liep dus niet meer mee’. Product Owner Sven ging op onderzoek uit en kwam met een bijzondere oorzaak.
Afgelopen jaar kregen we uit het niets, en vrij kort achter elkaar, dezelfde opmerking van meerdere van onze app-gebruikers. Hun locatie op de kaart viel soms abrupt stil en liep niet meer mee terwijl ze aan het varen waren. En dat het probleem even verdween als ze hun apparaat even oppakten en daardoor bewogen. Nu krijgen we wel meer feedback, maar deze was bijzonder, aangezien we in onze app niets veranderd hadden qua locatievoorzieningen en GPS.
In de eerste mail die we in zo’n geval terugsturen, stellen we drie vragen:
#1: Op wat voor apparaat gebeurt dit (merk, type)?
#2: Welk besturingssysteem heeft u op dat apparaat geïnstalleerd (bijv: iOS 17.1)?
#3: Welke versie van onze app gebruikt u op dat apparaat (dat kunt u onderaan uw profielpagina vinden)?
Aan de hand daarvan kwamen we erachter dat het in nagenoeg alle gevallen op iOS (Apple) apparaten gebeurde, dus iPhones en iPads. Maar blijkbaar niet op alle Apple-apparaten en niet onder alle omstandigheden, anders hadden we veel meer e-mails ontvangen.
De meeste app-gebruikers mailen ons namelijk niet. Bij een probleem met de app sluiten de meeste mensen eerst de app af, starten de app weer opnieuw en vaak is dan miraculeus genoeg ook het probleem verholpen. Maar toch hadden we genoeg e-mails om op zoek te gaan naar dit ‘issue’.
Reproduceren
Met alle informatie die we van onze gebruikers kregen, zijn we met een aantal Apple-apparaten gaan kijken hoe we dat probleem konden reproduceren. Het eerste wat ik deed is mijn iPads in de auto aan de tand voelen, maar dat haalde niets uit; geen problemen.
Ik woon op mijn schip, dus ben ik de volgende dag gaan varen. En inderdaad…op één van de drie iPads viel mijn eigen locatie stil. Heel vervelend, maar voor het kunnen vinden waarom dit gebeurde nóg vervelender: hoe kon dat nou wel op de ene iPad wel gebeuren, maar op de ander niet, en op de iPhone ook niet?
Vergelijken
De iPads waar ik het issue op kon reproduceren waren twee verschillende. Met elk een verschillend OS (besturingssysteem). Dus dat bood perspectief. Echter, toen we op identieke iPads met een identiek OS probeerden dit issue te reproduceren…lukte dat niet? Hoe kon dat nou?
Techniek in een iPad en iPhone
Om te achterhalen wat er nou precies gebeurde, zijn we gaan kijken wat er nou precies gebeurt in een Apple-apparaat, want we kregen steeds meer het vermoeden dat het een hardware-probleem bij Apple-apparaten was. In een iPad op iPhone zitten:
- Een accelerometer: die registreert verplaatsing/voortbeweging (afstand, snelheid)
- Een gyroscoop: die registreert beweging over de X- en Y-as
- Een GPS chip: die registreert uw locatie, koers en snelheid (overigens: in ‘wifi only’ modellen zit geen GPS chip)
- Een batterij/accu
An sich niets bijzonders, deze componenten zitten in nagenoeg elke smartphone. Maar, wezenlijk verschil is dat Apple al jaren problemen heeft met hun accu: die gaan domweg niet zo lang mee als die van andere smartphones. Niet per oplaadbeurt en niet qua levensduur.
Batterijleven besparen
Om de batterijduur in hun apparaten te kunnen verlengen doet Apple in hun besturingssysteem allerlei dingen om energie te besparen en dus activiteiten in het apparaat te minimaliseren.
Om te kijken wat er nu precies gebeurde in iOS tijdens het varen, zijn we met een van onze programmeurs bij Erik-Jan Geniets aan boord geklommen bij een Stromma rondvaartboot. Erik-Jan is rondvaartschipper in Amsterdam én Waterkaarten-power user. Superfijn dus, want zo hadden we onze handen vrij om te testen, terwijl Erik-Jan ons door de grachten van Amsterdam voer.
Door een laptop aan een iPad te verbinden, konden we zien wat er gebeurde in iOS met het locatieprobleem. Ondanks dat we ons over de grachten voortbewogen, zagen we dat iOS onder bepaalde omstandigheden de GPS berichten pauzeerde…totdat we het apparaat dus even bewogen, dat triggerde de iPad om weer verder te gaan met het ontvangen van nieuwe GPS-berichten. In die GPS berichten zit overigens informatie over uw locatie, koers en snelheid.
De omstandigheden en criteria
We voeren dus over de grachten van Amsterdam, in een rondvaartboot van 40 ton, op nagenoeg stilstaand water, zonder golfslag, met een gemiddelde snelheid van 7 km/u. U weet hoe dat voelt:
- De boot beweegt nauwelijks
- U beweegt zich nauwelijks voort
En juist wanneer aan bovenstaande criteria of één daarvan wordt voldaan, zagen we dat iOS, ondanks dat we wel degelijk over de grachten voeren, de GPS-melding pauzeerde; we kregen letterlijk steeds dezelfde Lat/Lon coördinaten door.
De conclusie
Wanneer een apparaat zich onder een bepaalde snelheid voortbeweegt én niet beweegt over de X- en Y-as, worden de accelerometer én gyroscoop niet getriggerd en wordt de ontvangst van GPS-berichten gepauzeerd.
Waarom gebeurt dat? Omdat het ontvangen en zenden van GPS-berichten een energieslurpend proces is. En om batterij te besparen op (een betere batterij in) uw Apple-apparaat is de makkelijkste winst te behalen door het zenden en ontvangen van GPS uit te schakelen.
Helaas gebeurt dit niet bij alle apparaten, is het onderhevig aan het iOS wat u gebruikt én aan de componenten die per iPad of iPhone gebruikt werden. En zelfs per type iPad of iPhone zijn er wel verschillende gyroscopen, accelerometers of GPS-chips gebruikt.
Zijn er vragen?
Vraag:
Maar, als ik Google Maps of een andere app open, doet ‘ie het wel!
Antwoord:
Klopt. U pakt het apparaat, opent Google Maps en houdt uw apparaat misschien wel vast. Het apparaat wordt over de X- en Y-as bewogen en de GPS-berichten komen weer binnen. We hebben dit getest met Navionics, Savvy Navvy, Google Maps, Apple Maps en wat andere navigatie-apps
Vraag:
Gebeurde dit de hele tijd in Amsterdam?
Antwoord:
Nee. Op het IJ gebeurde het niet, sterker nog; daar hadden we helemaal geen problemen. De minimale golfslag daar bewoog de boot minimaal over X- en Y en werd de gyroscoop getrieerd, en we voeren daar zo’n 13 km/u waardoor ook de accelerometer werd getriggerd.
Vraag:
In mijn auto beweeg ik ook nauwelijks, maar daar doet Maps het ook gewoon, hoe kan dat?
Antwoord:
Het zit ‘em in het woordje ‘nauwelijks’. We vergelijken het rijden in een auto even met het vliegen in een groot vliegtuig. Als u ooit gevlogen heeft, weet u dat een vliegtuig heel snel en vooral supersnel, zonder trilling kan vliegen. Vergelijk dat eens met rijden in uw auto, of beter nog: focus u eens op de beweging of trilling die u in een auto ervaart; die is er nagenoeg altijd. En bovendien: de accelerometer registreert dat u voortbeweegt. 2 criteria die ervoor zorgen dat de GPS-berichten blijven binnenkomen.
Oplossing
We zijn gaan nadenken over hoe we de gyroscoop of accelerometer konden manipuleren en in de code van iOS konden vertellen dat er bewogen wordt. Maar u raadt het al: dat kan niet. Maar, we bedachten ons wel iets anders.
U weet dat we de afgelopen tijd druk zijn geweest met het kunnen koppelen van AIS-apparatuur met de app.
- AIS-transponders hebben altijd al een GPS module en/of er kan een externe GPS antenne op aangesloten worden
- Steeds meer AIS-receivers hebben bovenstaande opties ook
- …en dus ontvangen die apparaten ook GPS-berichten.
En die GPS-berichten worden via zo’n AIS-apparaat doorgestuurd naar de app. Onze programmeurs hebben getest en voor ons een versie van onze app gebouwd waarin de GPS-berichten uit een gekoppeld AIS-apparaat worden uitgelezen en gebruikt kunnen worden in onze app.
We hebben dat onlangs getest en het werkt: de locatie loopt constant mee, en de koers en snelheid worden prima weergegeven. We hebben zelfs de locatievoorzieningen op de iPad en iPhone compleet uitgezet, want die gebruikt onze app dan niet meer. En bij toeval is zo’n AIS-receiver met GPS-ontvangst een win-win situatie. Want naast dat uw locatie prima meeloopt, ziet u ook het scheepvaartverkeer om u heen.
Ook voor iPad ‘wifi-only’ modellen heel zinvol
Nog een kleine nota bene: in een ‘wifi-only’ iPad zit geen GPS-chip en wordt locatiebepaling onder andere gedaan door middel van wifi-netwerken in de buurt, waar u niet eens op hoeft in te loggen. Maar ook voor dit soort modellen werkt zo’n AIS-receiver (of transponder, maar daar zit een ander prijskaartje aan én heeft u een basiscertificaat Marifonie nodig).
Auteur: Sven Lens, Product Owner Waterkaarten