Er det mulig å kjøre en app i bakgrunnen hele tiden eller logge data i sanntid på Apple Watch?
iOS stenger ned apper som kjører lenge i bakgrunnen for å spare batteri og personvern. Bruk heller polling med intervaller (f.eks. hvert 60. sekund) eller Apples egne rammeverk HealthKit og CoreMotion fremfor uavbrutt sanntidslogging.
Slik løser du det
Her møter du en reell teknisk begrensning, og det er viktig å forstå hvorfor. Apple (iOS og watchOS) er bygget for å spare batteri og verne om brukerens personvern, og operativsystemet stenger derfor ofte ned apper som forsøker å være aktive i bakgrunnen over lang tid. Det er altså utfordrende å tvinge en app til å holde seg åpen hele tiden, og kontinuerlig sanntidslogging kan føre til ytelsesproblemer (det Apple kaller «excessive performance»), tappe batteriet raskt og i verste fall gjøre at appen blir avvist i App Store eller drept av systemet.
Løsningen vår står ved lag: i stedet for konstant logging setter du opp et intervall for sjekking – for eksempel at appen henter data hvert 60. sekund i stedet for hele tiden. Dette kalles ofte «polling», altså at appen våkner med jevne mellomrom, gjør én måling, og legger seg til ro igjen. Det gir nesten like nyttige data, men er langt skånsommere mot batteri og ytelse.
Et godt alternativ er å hente data direkte fra Apples egne analyse- og helseverktøy. Apple tilbyr rammeverk som HealthKit (Apples system for helse- og treningsdata) og CoreMotion (for bevegelse og aktivitet), som allerede samler inn sensordata i bakgrunnen på en batterivennlig og godkjent måte. Da slipper du å finne opp hjulet på nytt, og du holder deg innenfor Apples regler.
En vanlig fallgruve er å bygge hele konseptet på antakelsen om uavbrutt sanntidsdata. Tenk heller gjennom: hvor ofte trenger du egentlig oppdatering? Ofte er periodiske målinger mer enn nok, og det sparer deg for mye hodebry.
Begreper forklart
- Polling
- At appen våkner med jevne mellomrom, gjør én måling og legger seg til ro igjen, i stedet for å kjøre konstant.
- HealthKit
- Apples system for helse- og treningsdata, som samler inn sensordata batterivennlig i bakgrunnen.
- CoreMotion
- Apples rammeverk for bevegelses- og aktivitetsdata, godkjent og batterivennlig.