Å jobbe som HoloLens-utvikler

Nicolas og Eirik i Bouvet forteller om hvordan de koder for brillene til Microsoft.

📸: Bouvet
📸: BouvetVis mer

Det er ekstremt mye spennende som skjer rundt HoloLens om dagen, og mange snakker om muligheter i fremtiden, men i Bouvet er vi faktisk flere som allerede jobber med dette daglig, og derfor tenkte vi å fortelle litt om hvorfor flere utviklere bør være interesserte i dette allerede nå!

Først og fremst må vi understreke at å jobbe med en såpass ny teknologi som dette er svært spennende. HoloLens og augmented reality er fremdeles en nisje i markedet, men for hver uke som går, blir det stadig mer populært. Det er fullt mulig at MR (mixed reality) kan være inngangen til en ny teknisk revolusjon, og det er derfor utrolig kult å kunne være med på dette fra starten.

«Med HoloLens kan du jobbe med hele spekteret av programmering.»

Med HoloLens kan du jobbe med hele spekteret av programmering. Alt fra databaser, Web, IAM til UI/UX. Hvis du vil prøve mye forskjellig, gir HoloLens-utvikling mulighet til det. Dette er fordi HoloLens i kombinasjon med for eksempel en database og en nettside, kan gi utrolig mye mer til en applikasjon enn hvis den bare var frittstående.

Ved å jobbe med dette, får vi også brukt mange forskjellige teknologier, samt at vi er med på å utvikle og forme markedet. Det er enklere å komme i kontakt med de som står bak og promoterer HoloLens, noe som gir oss mulighet til å bli invitert til konferanser og få vist frem det vi jobber med. Vi har for eksempel vært i San Francisco og demonstrert en applikasjon på Spark+AI konferansen i juni 2018.

I tillegg opplever vi at ved å jobbe med HoloLens, så får vi jobbe med svært utfordrende problemstillinger. Det er ikke like enkelt å finne ferdigbygde løsninger på internett, og mye av det vi gjør, har ikke blitt gjort før. Det er kjekt med utfordring i hverdagen, og de får vi mange av. Samtidig er det ekstremt tilfredsstillende når det du programmerer faktisk ender opp som noe visuelt foran deg. Det får du kanskje ikke i like stor grad oppleve når du jobber med andre utviklingsområder.

Hvorfor vi begynte å jobbe med HoloLens

Jeg (Eirik) hadde tidligere jobbet med Oculus Rift (VR) på NTNU, der jeg var på et team som lagde en drillsimulator. Ved å ha en simulator i VR istedenfor å bruke millioner på simulatorrom med store TV skjermer og dyr drillstol, kunne vi spare mye penger. Jeg synes det var utrolig gøy, og når Bouvet lokket med stilling innenfor et AR/VR miljø, klarte jeg ikke si nei.

«Jeg hadde tidligere jobbet med Oculus Rift (VR) på NTNU.»

Jeg (Nicolas) jobbet allerede i Bouvet da jeg ble spurt om jeg hadde mulighet til å jobbe med backend-systemene, samt å optimalisere noe av koden på HoloLensen. Jeg så på dette som en fin mulighet til å være med på utviklingen av noe som var helt nytt, og som veldig få andre jobbet med. Etter dette ble jeg satt til å jobbe med de nye backend-systemene som skulle utvikles for de nye tjenestene og applikasjonene til HoloLens.

📸: Bouvet
📸: Bouvet Vis mer

Slik jobber vi

Rent teknisk bruker vi Unity og C# for å utvikle mot HoloLens. HoloLensen er bygget på UWP, så det er ikke alt som fungerer natively i Unity. Dette er kanskje noe av det mer kompliserte. Vi må til tider skrive native kode for HoloLensen som ikke fungerer i Unity, i tillegg til å skrive kode for Unity som ikke fungerer i HoloLensen, slik at vi kan få kjørt applikasjonen på begge plattformer.

UI/UX relatert, er det en del annerledes enn å lage websider/mobilapps/etc. Grunnen til dette er at AR opererer i 3D space, noe som krever at en også tenker i 3D. En vanlig problemstilling vi kan støte på, kan for eksempel være: hvordan kan vi skape dybde i bilder og dokumenter? Selv om ark og bilder i virkeligheten er tynt, så ser vi likevel at det er tykkelse på det. Vi skjønner at vi kan ta på det, plukke det opp og snu rundt på det. Men hvordan kan vi få samme opplevelsen i AR? Hvordan kan vi overbevise brukeren om at det han ser er ekte, og ikke et uendelig tynt panel generert i headsettet? Dette er utfordringer som er svært spennende å løse.

Samtidig kan det også være til tider være krevende å fikse bugs som ikke ser ut til å ha noe naturlig opphav. Ikke alle Windows bibliotek (og også tredjeparts) fungerer på HoloLensen, og det er ikke like enkelt å forstå hvorfor eller hvordan vi kan løse bugsene. Siden dette er en såpass ny teknologi, er det også mangel på god dokumentasjon. Dager du jobber med bugs kan derfor bli frustrerende og lange. For andre plattformer, som web, backend, etc kan vi dog følge standard kodekonvensjoner.

Dette har vi lært av å jobbe med HoloLens

Ved å jobbe med HoloLens, lærer vi mye innenfor Unity som vi ikke nødvendigvis ville lært andre steder. Det er også mange teknikker som brukes på HoloLens som også kan brukes når en lager et spill eller en mobilapplikasjon. Med denne kunnskapen blir barrieren for å skulle lage sin egen app eller lignende mye mindre, samt at det også gjør det hele morsommere. Med begrenset dokumentasjon har vi også blitt veldig gode på feilsøking.

Vi jobber med mye variert, og lærer derfor noe innenfor alle teknologier. Dette kan være Azure, WebRTC, SignalR, .NET Core, ASP.NET Core, UWP, Unity, C#, JSON, WebSockets, React, Webstandards, Bluetooth overføring, SQL, Entity Framework Core, Spatial Awareness, Authorization/Authentication, IAM, Azure Active Directory, CI/CD.

HoloLens 1 har ikke så kraftig hardware, så vi lærer også å skrive effektiv og rask kode. Vi er også mer observant på minneforbruk og prøver å minimere dette. Dette vil hjelpe oss til å fylle applikasjonen med mer funksjonalitet, uten at det går på bekostning av for eksempel «frames per second».

HoloLens fremover

Hololens er milevis foran konkurrentene, spesielt etter lanseringen av Hololens 2, og byr på så vannvittig mye at det faktisk kun er fantasien som setter grensene for hva som er mulig å få til. Til og med nå som vi har jobbet aktivt med dette i snart to år, er det fremdeles mye vi ikke har vært innom. Kunder og kollegaer kommer med nye idéer hele tiden, og det er spennende å oppleve at bruksområdene er så store som de er. Slik Microsoft pusher denne teknologien, og med tanke på hvor mye suksess de allerede har hatt, er det klart at fremtiden for HoloLens er veldig lys.

«Fremtiden for HoloLens er veldig lys.»

HoloLens 2 byr nemlig på alt HoloLens 1 har, pluss mye mye mer. Vi får nå tilgang på mye mer data, flere sensorer og mer funksjonalitet. Det har tatt lang tid å bli ekspert på alt HoloLens 1 har å tilby, og det vil nok ta like lang, hvis ikke lenger tid, å bli like gode på HoloLens 2. Med eye-tracking, finger-tracking, åpent API til sensordata, utvidet synsfelt, og mye mer, blir også bruksområdene betydelig utvidet. Nå som det er flere inputmuligheter, ser vi også nødvendigheten av å oppdatere alle våre eksiterende applikasjoner til å utnytte all den nye teknologien. Det er mye mulig at det vil bli UI endringer, siden du nå fysisk kan trykke/ta på alt av hologrammer som er foran deg.

Med ny lansering av headset, vil det også bli økt popularitet rundt teknologien. Vi forventer en liten boom i den internasjonale interessen i MR, og gleder oss til nye spennende real-world applikasjonsidéer som vi kan utvikle. Det er alltid givende å se arbeidet vårt fører til en forbedring i industrien for kundene våre.