Eget verktyg · App för macOS
Tidsappen Soda Time
När bolaget startade kom uppdragen ofta via en byrå. Kunden godkänner en budget, vi lägger timmarna och fakturan går till byrån. Budgeten och timmarna ska gå ihop och fakturan ska till rätt mottagare.
Soda Time är en app för macOS som jag byggt för vårt bolag. Den visar timmarna mot budgeten, vad som väntar på faktura och vad som är klart. Själva fakturan skrivs i Fortnox.
- Typ
- Eget verktyg, i bruk i bolaget
- Roll
- UX, UI och utveckling
- Teknik
- SwiftUI, SwiftData, macOS
- Tid
- Juli till oktober 2026

01Caset på 30 sekunder
Problemet
Timmar och budget i olika världar.
Lösningen
En app som visar båda.
Det jag valde bort
Ett eget fakturaregister.
02Problemet
Två siffror som måste mötas.
2
siffror per uppdrag. Timmarna jag lägger och budgeten kunden har godkänt.
Det jag behövde se
- Hur mycket tid ett uppdrag faktiskt tar mot det som är godkänt.
- Vad som är klart men inte fakturerat än.
- Tid som loggas efter att fakturan gått.
- Vilken byrå som ska ha fakturan för vilken slutkund.
Det jag inte behövde
- Ännu ett ställe att skriva fakturor på.
- En tjänst i molnet för något bara vi använder.
03Det avgörande valet
Ta bort det som redan fungerade.
Valt
Appen markerar, Fortnox fakturerar.
Ett projekt får ett belopp att fakturera, en markering när det är fakturerat och Fortnox-numret. Inga fakturor, inga rader och inga statusar som måste hållas i synk med bokföringen.
Fyra fält · Inga nya tabeller
Vägar jag valde bort
01
Ett fullständigt fakturaregister
Utkast, skickad och betald med PDF ur sparade rader. Byggt och testat, sedan borttaget.
Registret fungerade. Men varje faktura hade funnits på två ställen och bara det ena räknas i bokföringen. Jag valde att hålla appen ren och enkel och låta den göra det Fortnox inte gör.
04Designbesluten
Små regler som speglar hur jobbet faktiskt går till.

01
Loggat eller fakturerat, överallt
En växel på varje vy byter mellan timmarna jag lagt och det jag kommer att fakturera. Budgeten är ett golv och tid över budget räknas mot ett eget timpris.

02
Klart är inte fakturerat
Ett jobb blir ofta klart en tid innan fakturan går. Därför är det två markeringar och klara projekt hamnar först i listan över det som väntar.

03
Tid efter fakturan
Loggas tid efter att ett projekt fakturerats dyker det upp igen. Jag väljer om tiden ska faktureras som extra eller ingår.

04
Byrå och slutkund
En kund kan ha en byrå som fakturamottagare. Slutkunderna grupperas under sin byrå, så jag ser både vem jobbet är för och vem som betalar.

05
Timern i menyraden
Timern startas från menyraden med en rad om vad jag tänker göra. Planen följer med in i tidsposten.
05När allt försvann
All loggad tid var borta en morgon.
I augusti 2026 var appens databas plötsligt tom. Appen använde systemets standardplats för SwiftData, en delad fil som en annan process i macOS migrerade till sitt eget format. Det gick inte att återställa.
Nu har appen en egen mapp, en uttrycklig sökväg och en säkerhetskopia vid start, var trettionde minut och vid avslut. En tom kopia skrivs aldrig, så en tömd databas kan inte tränga undan de bra kopiorna. Återställningen testades innan den skickades.
- Säkerhetskopior
- 60 sparade, dubbletter hoppas över
- Återställning
- Tar en kopia av nuläget först
- Lärdom
- Ange alltid en egen sökväg för datan
06Utseendet
Samma system som resten av bolaget.
I oktober gjordes appen om efter bolagets nya identitet. Figma först med samma variabler som sajten, kodat och installerat dagen efter. Läs mer i caset om designsystemet.




07Resultatet
Varje uppdrag går att följa från timer till faktura.
4
fält i stället för ett fakturaregister
30
minuter mellan säkerhetskopiorna
41/41
kontroller gröna när faktureringen byggdes om
08Lärdomar
Fungerar
Jag ser direkt vad som väntar på faktura.
Skillnaden mellan lagd och fakturerad tid är synlig överallt.
Datan har en egen plats och kopior som går att återställa.
Kvar
Formulären för kund, projekt och taggar har inte fått den nya stilen.
Appen finns bara för macOS. Koden är förberedd för iOS men inte byggd.