Hoppa till innehållet

Blixtvakt · 2022 · arbete

Blixtvakt — blixtvarningar i telefonen

På Zenon AB byggde jag om Blixtvakt, en Ionic-app som bevakar SMHI:s blixtdata och varnar när nedslag kommer nära, på en karta ritad från OpenStreetMap, med varningsinställningar man ställer in själv.

Lager
gränssnitt, applikation, tjänster
Byggt med
Ionic · TypeScript · OpenStreetMap · SMHI API · Push notifications
14:02 Vättern 25 km 3 nedslag inom 25 km RADIE 25 km TYST 23–06 · LJUD PÅ IONIC · TYPESCRIPT SMHI blixtnedslag · API var 5:e minut lat · lon · kA · t OpenStreetMap kartrutor · z/x/y cachade på enheten appen hämta → filtrera → varna poll dist push haversine mot min position tiles nedslag → appen → telefonen VARNINGAR I DAG 11:40 13:15 13:52 14:02 tyst 23–06: inget ljud, bara banner 10 km 1 2 3 4 5
Fig. 01 — En varning från början till slut: SMHI rapporterar ett nedslag, appen mäter det mot din radie, telefonen säger till.
  1. 1SMHI-flöde · blixtnedslag med position, strömstyrka och tid
  2. 2OpenStreetMap · kartan, som rutor cachade på enheten
  3. 3Varningsradie · din att ställa in; nedslag innanför räknas
  4. 4Inställningar · radie, tysta timmar, ljud
  5. 5Notis · hämta, mät, pusha

Problemet

Blixtvakt är en app för den som behöver veta när blixten är nära: den som är utomhus, på sjön eller ansvarig för andra. Zenon AB hade en befintlig app, och mitt praktikuppdrag var att få den i tidsenligt skick och göra den bättre på sin enda uppgift: att varna rätt person, på rätt avstånd, vid rätt tid.

Vad jag byggde

Jag byggde om appen med Ionic och TypeScript, så att en kodbas tjänade båda telefonplattformarna. Kartan kommer från OpenStreetMap2; nedslagen kommer från SMHI1 via deras API, hämtade enligt schema och utritade allt eftersom de kommer in. Runt den kärnan lade jag till funktionerna som gjorde appen personlig: en varningsradie användaren själv ställer in3, tysta timmar4 och ett val av hur högljudd en varning5 ska vara. Varje inställning är en fråga jag fick svara på om hur människor faktiskt använder en väderapp.

Vad jag lärde mig

Extern data har aldrig riktigt den form man vill ha, och appen är bara så pålitlig som det sämsta flödet en dålig dag. Jag lärde mig att behandla SMHI:s data som något att validera, inte visa upp, och att den viktigaste funktionen var den användarna kunde ställa in själva: när folk kunde sätta sin egen radie slutade de stänga av varningarna.