bakom appen·
Vi antog att nätet inte finns
De flesta appar behandlar dålig täckning som ett fel. För en fiskeapp är det arbetsmiljön, och att vända på antagandet kostade mer än det lät.

Det finns ett ögonblick varje utvecklare av en fiskeapp borde ha varit med om innan de skriver en rad kod. Man står vid ett vatten, telefonen visar en snurrande cirkel, och frågan man faktiskt hade var om det är tillåtet att fiska där man står.
Vi hade byggt något som fungerade utmärkt. På kontoret.
Undantaget som är normalfallet
Nästan all mjukvara antar att nätet finns, och hanterar frånvaron av nät som ett fel: något som inträffar ibland, och som man visar ett felmeddelande för. För en app som används i Stockholms innerstad är det en rimlig modell.
För en fiskeapp är den bakvänd. Sportfiskare befinner sig i genomsnitt längre från en basstation än nästan någon annan grupp, vilket gör att dålig täckning inte är undantaget utan förutsättningen.
Vad det innebar
Att vända på antagandet lät som en teknisk detalj. Det var det inte. Kartan måste gå att spara ner i förväg. Vattenkatalogen, nästan 64 000 sjöar och vattendrag, måste ligga i appen redan vid installationen i stället för att hämtas vid första starten. En fångst som skrivs utan täckning måste sparas fullständigt lokalt och synkas senare, utan att någonting tappas på vägen.
Och så en regel som var lättare att formulera än att följa: appen får inte vänta på nätet. Inte vänta länge, utan inte alls. Varje anrop har en gräns, och när gränsen nås fortsätter appen med det den redan har.
Att mäta i stället för att gissa
Det mest lärorika i hela arbetet var att mäta vad en enskild vy kostade i data. En ruta i områdesöversikten vägde 318 kB. På en dålig länk är det över tre sekunder av ren överföring, och under de sekunderna såg appen ut som om den inte hittade någonting alls, eftersom en timeout och ett tomt resultat ser likadana ut för den som tittar på skärmen.
Lösningen blev inte en längre timeout. Den blev att inte ställa frågan: samma information ligger nu i ett index på telefonen.
Där vi själva gick på det
I augusti fick vi en rapport från en telefon i flygplansläge. Tolv sekunder vit skärm vid start.
Sju tjänster startade i tur och ordning, och var och en av dem hade en korrekt satt gräns. Problemet var att offline misslyckas ingenting snabbt, så varje gräns spenderades i sin helhet, efter varandra. En gräns per anrop är inte en budget. Det som saknades var en summa.
Numera startar tjänsterna i två grupper i stället för i en rad, och hela startsekvensen har ett tak på sex sekunder. Den vita skärmen visade sig dessutom vara vår egen startbild som kastades bort en bråkdel för tidigt, vilket ingen hade märkt eftersom allt annat i den koden var rätt.
Vad det ger dig
Att kartan öppnas direkt. Att fångstloggen fungerar i skogen. Att appen inte blir anledningen till att gå tillbaka mot vägen för att få täckning.
Det är svårt att sätta i en funktionslista, eftersom det mest består av saker som inte händer.