it-bransjen
Norskutviklet løsning gjør det mulig å bygge «full-stack»-applikasjoner uten å skrive en eneste kodelinje
Nå skal selskapet ansette flere for å vokse videre.
TORGGATA, OSLO (digi.no): Det å utvikle egen programvare kan være dyrt og tidkrevende, og i mange tilfeller også ta fokuset vekk fra bedriftens kjernevirksomhet. Det er bakgrunnen for at de to gründerne og studiekameratene Simon Larsen og Ole Johnny Borgersen for et par år siden gikk sammen og startet selskapet Appfarm. Med seg har de også fått tre andre – alle fem sivilingeniører fra NTNU.
Målet var å lage en løsning som gjør det mulig for bedrifter å bygge egne applikasjoner uten å måtte å skrive en eneste kodelinje selv – en såkalt «no code»-løsning.
Selskapet leverer skreddersydd SaaS (Software as a Service) til bedrifter med utgangspunkt i Appfarm-plattformen. I tillegg så tilbyr selskapet selve plattformen til kunder så de selv kan bygge og administrere applikasjoner i Appfarm (aPaaS – Application Platform as a Service).
Først nå at skyteknologi har gjort det mulig
Simon Larsen forteller at det først de siste årene har blitt mulig for et oppstartsselskap å utvikle en såpass funksjonsrik plattform – uten å være avhengig av mye ekstern finansiering eller en stor organisasjon.
– Det handler om at teknologien har blitt moden. Moderne skyløsninger gjør at mindre selskaper uten store ressurser kan bygge løsningene sine på profesjonell infrastruktur. Hvis vi hadde måttet kjøpe inn serverpark og så videre selv... det hadde ikke gått, forteller Larsen.
– Trenden innen open source er også at det har blitt en kraftig profesjonalisering hvor selv store aktører bidrar. For eksempel er det jo Facebook som står bak React, som vi bruker. Det hadde vært utenkelig for bare noen år siden.
De mange åpen kildekodeprosjektene betyr at selskapet slipper å utvikle absolutt alt selv. For eksempel har Appfarm-plattformen muligheter for grafer og diagrammer i løsningene man bygger. Disse komponentene ville tatt lang tid å utvikle selv, men siden det fantes gode løsninger basert på åpen kildekode kunne dette raskt legges til som en av de mange byggeklossene kundene har tilgang til når de skal bygge sine applikasjoner.
Det er flere konkurrenter som tilbyr «no code»- eller «low code»-verktøy i likhet med det Appfarm tilbyr, blant andre Outsystems og Mendix. Gründerne i selskapet – Simon Larsen og Ole Johnny Borgersen – mener imidlertid at det er få andre som gjør det samme som dem, selv om det de siste årene har det dukket opp selskaper som tenker litt i de samme baner og bygger alt 100 prosent i skyen.
– Men lisensmodellen til de store kan være litt avskrekkende. Vi prøver å åpne opp muligheten også for andre enn bare de største selskapene. Vi jobber derfor både med SMB-selskaper og startups, sier Borgersen, som er teknologisjef (CTO).
Hans Magnus Wold, leder for forretningsutvikling, sier til digi.no at «no code» egentlig har eksistert en god stund, både som metodikk men også i konkrete verktøy for ulike formål. Men disse verktøyene har gjerne ikke hatt evnen til å håndtere hele prosessen ved å lage og forvalte applikasjoner. Der Appfarm ønsker å skille seg ut er ved å tilby ett verktøy som via nettleseren lar deg gjøre alt fra design av brukergrensesnitt til å lage logikk og applikasjonsflyt, utforme datamodell, integrere med eksterne tjenester og systemer, og til slutt håndtere all teknisk infrastruktur i skyen.
For tiden har selskapet rundt 10 kunder på plattformen. En av disse er Artistpartner, et av Norges største agentbyråer. Her har Appfarm levert en portefølje av skreddersydde applikasjoner på mobil og web for både agenter, artister og arrangører som håndterer alle aspekter ved artistbooking. En annen kunde er oppstartsselskapet Kruser som utvikler et båtpool-konsept for elektriske båter.
Dra-og-slipp
Vi fikk en demo av løsningen da vi besøkte Appfarm i selskapets kontorer i Torggata i Oslo.
Når du skal lage en ny applikasjon i det som kalles «Appfarm Create» starter du med å dra og slippe inn de ulike komponentene du vil at brukergrensesnittet skal bestå av. Det kan være tekstfelter, knapper, grafer eller andre elementer. Det er Google Material Design som ligger bak, slik at det ser bra ut uten at man behøver å holde på med manuell og tidkrevende styling i CSS-filer slik man gjerne må ved tradisjonell web-utvikling.
Fargevalg, fonter og så videre kan settes ved å velge mellom forhåndsdefinerte temaer, så endres alt på tvers av hele applikasjonen. Det er imidlertid mulig å overstyre dette for enkeltkomponenter (for eksempel en tekstboks eller en knapp) via en visuell CSS-editor. Der skriver du ikke CSS-en selv i en kodeeditor, men velger i stedet farger, fonter, marger, justering, «padding» og andre ting i et grafisk brukergrensesnitt.
Applikasjonen har selvfølgelig liten nytteverdi uten data, og alle komponentene man setter sammen for å bygge opp brukergrensesnittet kan kobles til data. Via en visuell editor kan man lage den underliggende datamodellen, uten at man trenger databasekunnskap.
Når både datamodellen og brukergrensesnittet er laget, kobles dette sammen – og så setter man opp den logiske flyten i applikasjonen. I dette «logikk-laget» har man tilgang til en rekke ulike byggeklosser, hvor det i tillegg til enkel navigasjon mellom skjermbilder også kan legges inn mer avansert logikk med for eksempel if-statements og komponenter som henter inn data fra ulike kilder. Det kan være for eksempel fra et økonomisystem eller en kundedatabase.
Det er også en web-request-byggekloss som tar seg av for eksempel spørringer mot REST-baserte API-er eller andre typer datakilder på nett. Det meste av applikasjonslogikken gjøres via det grafiske grensesnittet, men om man vil er det mulig å skrive Javascript-kode – for eksempel hvis du vil loope over data med egne algoritmer for å gjøre noe spesielt med dataene. Det kan være for eksempel for å generere tilpasset tekst som skal sendes ut via SMS til brukere.
I bunnen ligger det selvfølgelig også en autentiseringsløsning og mulighet til å styre hvem som skal ha tilgang til hva.
Når applikasjonen er ferdig kan den «deployes» med et trykk på en knapp, og endringene blir automatisk rullet ut og gjort tilgjengelig for brukerne. De som lager applikasjonene kan operere med opp til fire ulike «miljøer» – dev, test, staging og production. Dermed kan man teste ut applikasjonene man bygger før man gjør det tilgjengelig for faktiske brukere.
Bygget i React og kjører på Google Clouds Kubernets-plattform
Når man først har dataene man ønsker inn i applikasjonen, så vil disse dataene være tilgjengelige på tvers av de ulike komponentene – eller for andre applikasjoner – enten via konfigurerbare API eller via API-spørrespråket GraphQL. En av de store fordelene med GraphQL, som har gjort det veldig populært i løpet av kort tid, er at en GraphQL-spørring i motsetning til tradisjonelle REST-API-er returnerer kun de dataene du ber om. Dette gir raskere svartider og mindre belastning på serveren. Det går også an å få resultater fra mange ulike datakilder via én og samme GraphQL-spørring.
– Takket være GraphQL er det veldig enkelt å eksponere data fra applikasjonen hvis det skal brukes i andre sammenhenger, sier Larsen.
Plattformen er bygget i Javascript og bruker blant annet React, et etter hvert svært populært bibliotek for å lage brukergrensesnitt. Det hele kjører i konteinere på Google Clouds Kubernetes-plattform og med MongoDB som databaseteknologi.
– Men vi er ikke låst til Google, teoretisk sett kunne vi brukt en hvilken som helst av de store leverandørene som tilbyr tilnærmet de samme tjenestene. Vi kan i teorien også bytte ut andre deler av plattformen uten at kundene skal merke noe til det. Filosofien er at det er vi som tar teknologivalgene, det er det vi er eksperter på – så er det kunden som er ekspert på det forretningsproblemet som skal løses, sier Larsen.
Lager systemet sammen med kundene
Ifølge Appfarm har mange kunder store behov for digitalisering, men de har ikke alltid en tydelig kravspesifikasjon. Derfor jobber de tett sammen med kundene når applikasjonene skal utvikles.
– Som regel starter vi med å etablere en grundig forståelse for problemet som skal løses fra et rent forretningsmessig perspektiv, sier Dr. Marius Tuft Mathisen, som er daglig leder i selskapet. Vi utvikler først en fungerende prototype i løpet av noen dager som løser de mest sentrale aspektene av problemet. Deretter jobber vi tett og iterativt sammen med brukerne, og introduserer stadig ny funksjonalitet. Vi opplever ofte at viktige behov blir avdekket løpende gjennom denne prosessen som kunden selv ikke var klar over i forkant, sier Mathisen.
Nesten alle selskaper har eksisterende systemer som de nye løsningene må spille på lag med. Derfor innebærer nesten alle Appfarms prosjekter integrasjoner med interne eller eksterne systemer.
– Mange bedrifter har systemer med svært varierende kvalitet på grensesnittene, og det må vi håndtere, sier Larsen.
Når spesialtilpasningene er laget så nyter imidlertid alle brukerne godt av det, siden plattformen er en SaaS-tjeneste der alle brukerne til enhver tid benytter den nyeste versjonen. Nye byggeklosser som blir laget på grunn av behov én kunde har, blir altså tilgjengelig for alle de andre kundene også.
– Innovasjon og introduksjon av nye komponenter i samarbeid med markedet er svært viktig for oss, sier Mathisen. På den måten vil plattformen ha de egenskapene som gjør at applikasjonene alltid er i fronten på hva som forventes av virksomheter og brukere.
Vil satse internasjonalt
– Hva er veien videre nå?
– Strategien er todelt: Vi skal fortsette med det vi gjør, og vokse i antall hoder for å kunne levere flere oppdrag enda raskere. Parallelt med dette har vi introdusert plattformen som en tjeneste for kunder som vil lage programvare for andre eller seg selv, sier Mathisen. Vi er allerede godt i gang med et utvalg partnere som lager egne applikasjoner i Appfarm i dag.
Larsen legger til at de bevisst har valgt å ikke ta inn ekstern kapital ennå, og at selskapet allerede har lønnsom drift.
– Men det er klart at vi nærmer oss et punkt hvor vi ønsker enda høyere tempo for å kunne gi mange flere muligheten til å jobbe med digitalisering på en enklere og bedre måte.
– En ting er sikkert, Appfarm som plattform blir aldri ferdig og vi skal ut på det internasjonale markedet i løpet av kort tid.
Les også vårt utviklerintervju med Kristian Mella i Appfarm: – Man kan fint være utvikler uten å kunne kode