App-udvikling

App udvikling i Danmark med fokus på produkt, drift og skalering.

UnderStack omsætter app-idéer til produkter, folk kan bruge: webapps til teams og kunder, og mobilapps, når selve enheden gør en forskel.

Hvis du foretrækker at tale om flere detaljer, finder vi gerne et tidspunkt, der passer.

01

Hvem det er til, og hvad det løser

En app er sjældent målet. Målet er, at en tekniker kan afslutte en opgave ude hos kunden, at en kunde kan følge en ordre uden at ringe, at et medlem kan booke og betale ét sted, eller at en inspektør kan registrere fund med billeder uden netforbindelse. Virksomheder kommer til os i tre situationer. Nogle har en intern arbejdsgang, der skal fungere på telefon eller tablet, væk fra skrivebordet. Nogle vil give kunderne selvbetjening i stedet for mail og telefon. Og nogle er stiftere med en produktidé, som skal ud til rigtige brugere. Den typiske fejl i alle tre er at begynde med en funktionsliste og to native apps. Vi begynder med den ene opgave, appen skal gøre lettere, og vælger det mindste produkt, der kan det.

02

Webapp eller native app

Det er den beslutning, der påvirker prisen mest. En webapp kører i browseren på alle enheder, bliver opdateret med det samme og kræver ingen godkendelse i en app-butik. Derfor er den det rigtige første produkt i de fleste forretningstilfælde. En native app giver mening, når produktet afhænger af enheden: kamera og tekstgenkendelse, lagring på telefonen, notifikationer, sensorer eller brug uden forbindelse. Vores egne Android-produkter, UnderStack Pocket AI og Life, er native af netop den grund. De holder personlige data på telefonen og bruger kamera, OCR og lokal lagring.

  • Webapps til interne teams med roller og rettigheder
  • Kundevendte apps: booking, bestilling, konti og status
  • Mobile værktøjer til arbejde i marken og inspektioner
  • Android-apps med local-first datahåndtering
  • Prototyper til at teste en idé på rigtige brugere
  • Backend og API, der deles af web og mobil

03

Fra idé til udgivet app

Faserne er korte, og hver af dem giver noget, I kan vise til brugere.

  1. 1Produktscope: vi definerer brugeren, kerneopgaven og det, første udgave udelader. I modtager et skriftligt scope, en anbefaling af platform og et tilbud.
  2. 2Flows og prototype: de vigtigste skærmbilleder bliver til en klikbar prototype. I modtager en prototype, der kan afprøves på kommende brugere, før udviklingen bliver betalt.
  3. 3Udvikling: app og backend bygges i iterationer. I modtager en testversion efter hver iteration, i et preview-miljø eller som testbuild på enheden.
  4. 4Udgivelse: afsluttende test, butiksopslag hvor det er relevant, og udgivelse til produktion. I modtager den udgivne app. For mobilapps indgår butikkens gennemgang i tidsplanen.
  5. 5Videreudvikling: nye funktioner kommer til ud fra, hvad brugerne gør, og ikke ud fra den oprindelige ønskeliste.

04

Teknologi og tekniske valg

Webapps bygges i React og TypeScript med Node.js og PostgreSQL bagved. Det er den samme stack som vores forretningssoftware, så en app kan dele data og logik med et eksisterende system. For mobile produkter afgør vi tidligt, hvor data skal ligge. Local-first apps gemmer oplysningerne på enheden og beder udtrykkeligt om lov, før de bruger kalender, kontakter, kamera eller filer. Det gør privatliv enklere, fordi data ikke forlader telefonen. Apps, der skal dele data, bruger et API med login og rollebaseret adgang. Vi holder første version på én platform, medmindre der er belæg for, at den anden er nødvendig, for to native kodebaser fordobler vedligeholdelsen.

React
TypeScript
Node.js

05

Efter udgivelsen: opdateringer og vedligehold

En app er ikke færdig, når den er udgivet. Styresystemer og browsere ændrer sig, brugere melder ting, ingen havde forudset, og den første reelle brug viser, hvilke funktioner der betyder noget. Det planlægger vi efter fra begyndelsen. Første version bliver bygget, så ændringer er billige, fejl meldes i en ticketportal med hastegrad, og forbedringer leveres i små udgivelser frem for store omskrivninger. En opdatering af en webapp når alle brugere med det samme. En opdatering af en mobilapp skal gennem butikkens gennemgang, så rettelser bliver samlet og planlagt.

06

Pris og tidsplan

Prisen afhænger af platform, backend, antal brugerroller, designniveau og integrationer. En webapp med én klar arbejdsgang er et andet projekt end en native app med offline-lagring og distribution i en butik. Vi offentliggør ikke prisintervaller. Artiklen om, hvad en app koster at udvikle, gennemgår, hvad der driver prisen, og I får et tilbud på en afgrænset første udgave, før udviklingen begynder.

Spørgsmål og svar

Skal vi bygge en webapp eller en native mobilapp?

Begynd med en webapp, medmindre produktet afhænger af enhedens funktioner som kamera, offline-lagring, notifikationer eller sensorer. En webapp er billigere at bygge og vedligeholde og virker på alle enheder fra første dag.

Hvad koster det at udvikle en app?

Prisen følger platform, backend, brugerroller, design og integrationer. Vi afgrænser første udgave, giver et tilbud på den og udbygger appen ud fra brugen. Vi giver ikke et tal, før scope er kendt.

Har I selv udgivet mobilapps?

UnderStack har bygget to Android-produkter, UnderStack Pocket AI og Life. Begge er færdige og er i øjeblikket i Google Play-review. De er beskrevet under cases.

Kan appen kobles til vores eksisterende systemer?

Ja. Apps læser og skriver normalt data gennem et API. Har jeres system et, bruger appen det. Ellers bygger vi en lille backend mellem appen og systemet.

Hvad betyder local-first, og hvornår er det nyttigt?

Local-first betyder, at appen gemmer sine data på enheden og virker uden en server. Det er nyttigt til personlige eller følsomme oplysninger og til arbejde steder med dårlig dækning.

Kan I hjælpe med at teste en idé, før vi binder os til et helt projekt?

Ja. Det er formålet med prototypefasen. En klikbar prototype eller en smal første version bliver afprøvet på rigtige brugere, og resultatet afgør, hvad der bygges bagefter.

Hvem bygger appen?

Diego Posleman designer og udvikler den selv. I arbejder direkte med den, der skriver koden, uden mellemled.