Den Chromium-baserte nettleseren Arc fikk mye oppmerksomhet da den kom til macOS i fjor høst, etter å ha vært i lukket beta lenge.
Arc ute i 1.0 - nå kan du laste ned uten invitasjon
Windows-versjonen har imidlertid latt vente på seg, ettersom selskapet bak – The Browser Company – ønsker å bygge nettleseren på en måte som ikke har vært gjort før:
De vil bygge alt sammen i Swift – med det nyeste UI-rammeverket til Windows. Det som er spennende for andre utviklere, er at løsningen som gjør dette mulig for en tid tilbake ble gjort til åpen kildekode.
Prosjektet kalles Swift/WinRT og skal gjøre livet enklere for alle som vil å bruke Swift til å bygge moderne Windows-applikasjoner basert på Microsofts WinUI-rammeverk.
Native Windows-apper kodet i Swift
Selv om mange forbinder Swift med Apple, er språket åpen kildekode og tilgjengelig for både macOS, Windows og Linux – og kan til og med brukes på backend. Apple har imidlertid bygget en masse proprietært rundt Swift, som UI-rammeverket SwiftUI som er det utviklere i stor grad bruker når de skal bygge apper for macOS eller iOS.
Et tilsvarende UI-rammeverk har manglet for Swift på Windows-plattformen. For å bøte på dette bygger Swift/WinRT en "bro" mellom Swift og Microsofts egne WinRT-API-er (Windows RunTime).
Swift/WinRT er ifølge The Browser Company basert på Microsofts cppwinrt-prosjekt. Kort fortalt betyr det at du skal kunne lage fullverdige "native" Windows-applikasjoner basert på WinUI 3. WinUI 3 er rammeverket som anbefales av Microsoft for apper som skal bruke Microsofts nyeste Fluent 2 Design System, og er en del av Windows App SDK.
In the last 6 months, we've managed to turn some of the best Swift/iOS/Mac engineers on this 🌎 and turn them into @WindowsUI engineers.
— Steve Kirbach (@steven_brix) December 11, 2023
Kudos to @alexandracoding @sherryshao_ @jasdev @codeblue87 @brianmichel @_tamijo @jumhyn @mseijas and everyone else who made this a reality
På spørsmål om hvorfor, oppgir en av hovedbidragsyterne til prosjektet, Steve Kirbach, at de ønsker å få til kodedeling mellom macOS og Windows i et minnesikkert språk, i tillegg til at deres eksisterende utviklere kan Swift best.
– Native kan være dyrt og unødvendig, mener Flutter-elsker
"C++ er ikke bra nok"
Så hvorfor ikke bare bruke en kryssplattformløsning som React Native eller Flutter?
– React Native, Flutter, Xamarin regnes ikke for å være "kult", og har utfordringer med hensyn til ytelse, kompleksitet, og så videre, hevdet Hursh Agrawal, sjef for The Browser Company i en presentasjon i mai i fjor – før de opensourcet Swift/WinRT.
Ifølge Hursh er det veldig få alternativer for å lage kryssplattform-applikasjoner.
– Apple eller Adobe, eller vi, ville aldri brukt dem, sa Hursh.
«Du kan ha C++-lignende ytelse uten noen av sikkerhetsproblemene eller problemene med manuell minnehåndtering.»
Ifølge Hursh blir alle "seriøse" kryssplattformapplikasjoner, som for eksempel nettlesere, skrevet i C++. Det har vært det eneste alternativet for applikasjoner som skal ha høy ytelse, mener han. Problemet ifølge Hursh er at C++ ikke er"ergonomisk", det har manuell minnehåndtering, og så videre.
– Swift har automatisk minnehåndtering uten "garbage collection". Det betyr at du kan ha C++-lignende ytelse uten noen av sikkerhetsproblemene eller problemene med manuell minnehåndtering, sa Hursh.
Han anslår at det vil gå 2-3 ganger raskere å skrive en Windows-applikasjon i Swift sammenlignet med C++, og for the Browser Company vil det også være enklere å kode i enn C#.
Du finner Swift/WinRT-repoet her – og det er også laget eksempelapplikasjoner som viser hvordan du går frem.