Lager sin egen open-source nettleser, med fokus på PWA-er

- Nettlesere pleide å være mye mer forskjellige, men nå er de utrolig like, nesten alle sammen, mener utvikler Patricia Aas.

Patricia Aas utvikler sin egen nettleser, TurtleBrowser. 📸: Privat
Patricia Aas utvikler sin egen nettleser, TurtleBrowser. 📸: Privat Vis mer

Da koronaen traff Norge i 2020 bestemte vi oss alle for å skaffe et hobbyprosjekt, og en uke etter, droppet vi det og så på Netflix istedenfor.

Bortsett fra utvikler Patricia Aas da, som satt i gang å bygge sin egen nettleser!

Turtlebrowser heter den, og målet i følge prosjektets Github-side er å skape en fullverdig nettleser til Linux, macOS, Windows, iOS og Android.

Men det finnes jo allerede drøssevis av nettlesere på markedet, så hvordan skal en hjemmesnekret nettleser fra én utvikler kunne skille seg ut? Vi tok en prat med Aas om prosjektet.

Altfor like

Patricia Aas er selvfølgelig ikke hvem som helst i norsk kodebransje. Aas driver sitt eget selskap TurtleSec, og er kjent for utallige foredrag, som gjerne omhandler C++.

Ikke minst har hun tidligere arbeidet for de norske nettleserne Opera og Vivaldi. Begge kjent for å være nettlesere som går mot strømmen.

Så hvorfor vil Aas likevel lage en ny nettleser?

- Nettlesere pleide å være mye mer forskjellige, men nå er de utrolig like, nesten alle sammen. Jeg tror derfor det er rom for å lage forskjellige nettlesere, markedet er enormt og bare 1% av et slikt marked er større enn de fleste andre markeder, forklarer Aas.

«Jeg håper at TurtleBrowser kan være en applikasjon hvor web ikke er noe du besøker, men noe du er i hele dagen»

- Jeg håper at TurtleBrowser (navnet kommer fra selskapet mitt TurtleSec) kan være en applikasjon hvor web ikke er noe du besøker, men noe du er i hele dagen. Men det er langt dit.

- Jeg har alltid syntes at browsere er teknisk veldig interessante, og at konseptene internett og web er politisk fascinerende. Internett er en unik plattform hvor hvem som helst kan delta, og dette ville nok ikke ha skjedd om ikke hele utviklingen gikk litt under radaren til storsamfunnet. Store selskaper og stater prøver fortsatt å kontrollere det, men det er umulig å fange helt.

Tilrettelegger for PWA-er

Et av de uttalte målene for nettleser-prosjektet er å tilrettelegge for å kjøre progressive web-apper i egne sandkasse-miljøer på desktop.

Aas forteller at det er gode grunner til det.

- I dag er “app stores” lukkede miljøer hvor du må aksepteres inn, hvor terskelen for å bygge noe ofte er høy, med plattform-API-er som er forskjellige. PWA-standardene er basert på web-standarder som ble lagd av Opera i sin tid, til noe som Opera hadde før “apps” ble en greie, Opera Widgets.

Opera Widgets var webapplikasjoner som fløt rundt i egne vinduer forteller Aas, og forklarer videre at Opera til og med lagde en egen runtime for dette, som dessverre aldri nådde ut til brukerne.

- Veldig mange Widgets ble lagd, alt fra spill til klokker til en Trafikanten (Ruter) widget som kunne si hvor lenge det var til bussen din kom.

«Målet med TurtleBrowser er å integrere websider mer hos brukeren, både i GUI og i OS-et.»

Skiller seg fra Opera

Men selv om det er nikk til gamle arbeidsplasser i TurtleBrowser-prosjektet til Aas, er det et markert skille i programvaren.

- TurtleBrowser skal være helt Open Source, noe som ikke tilfellet med de fleste nettlesere i dag, så sånn sett håper jeg at den vil bli annerledes.

Aas forteller at grunn-funksjonaliteten er inspirert av gamle Opera, som Aas forklarer var en “power user”-browser, men at målet med TurtleBrowser er å integrere websider mer hos brukeren, både i GUI og i OS-et.

- I første omgang så blir dette mest å stable på beina et rammeverk for å lage en browser, noe som i seg selv er et veldig stort prosjekt, forklarer Aas.

Koder multi-plattform

Aas forteller at akkurat nå arbeider hun med å få til å oppdatere Chromium/Blink regelmessig, og at hele prosjektet foreløpig er pre-Alpha.

Likevel er det fremgang, og grunn-funksjonalitet som faner skal være på plass allerede.

Selve TurtleBrowser-prosjektet bruker det norskutviklede rammeverket Qt, blant annet for å oppnå multiplattform-støtte.

- Qt er et modent rammeverk for å lage portable native GUI applikasjoner, og ble originalt utviklet av det norske selskapet Trolltech. Med Qt så kan du lage applikasjoner som kan kjøre på Windows, MacOS og Linux uten kode endringer, forklarer Aas.

«du har nok brukt Qt-applikasjoner selv som du kanskje ikke vet det.»

- De støtter også mobile plattformer som iOS og Android, men disse er lagt til nyligere. Å ha et kryss-plattform GUI og en kodebase som også er portabel er veldig verdifullt for et prosjekt med få utviklere. Qt er også veldig populært blant embedded prosjekter og du har nok brukt Qt-applikasjoner selv som du kanskje ikke vet det.

Håper på alpha

Aas forteller at foreløpig koder hun på prosjektet alene, og at prosjektet nok er for spesielt interesserte akkurat nå.

- Folk har kommet innom og hjulpet med noen ting, men der hvor vi er nå så er prosjektet for spesielt interesserte. Gjerne folk som kan CMake og CPack nå for tiden, for å få på plass pakker.

Aas trekker likevel frem at hun gjerne vil høre fra grafiske designere som vil lage første design av GUI-et.

- Om man vil bidra så er prosjektet på GitHub og man kan også ta kontakt med meg på Twitter @pati_gallardo.

Aas forteller at hun nå jobber med å få på plass en veldig "basic"-browser, men som likevel har de fundamentale tingene på plass, inkludert Chromium-oppdateringer og skikkelig sandkassemiljø på alle plattformer.

- Jeg håper å få ut en alpha i 2021, men det krever at jeg har nok tid, evt nok hjelp.