Ett användargränssnitt kan beskrivas som en länk mellan användaren och den hårdvara eller programvara som användaren arbetar med. Användargränssnittet medger två saker:

  • Inmatning, som ger användaren möjlighet att påverka systemet
  • Utdata, som ger systemet möjlighet att presentera information och visa resultatet av användarens påverkan

Interaktionen med användargränssnitt studeras framförallt inom området Människa–datorinteraktion (MDI).

Användargränssnitt på skärmenRedigera

Det många (förenklat) menar med användargränssnitt är avgränsat till det man ser på skärmen.

Denna del av gränssnittet kan vara antingen ett grafiskt användargränssnitt, som till exempel för de flesta Windows-program, eller textbaserat, som de flesta äldre DOS-program och många Unix-program.

I Unix- och Linux-miljöer kan man ofta välja om man ska lösa en uppgift med ett grafiskt gränssnitt eller ett textbaserat. Många program har tre typer av gränssnitt: ett som används genom enskilda kommandon och parametrar till dessa, ett textbaserat interaktivt och ett grafiskt interaktivt. Det grafiska användargränssnittet finns ofta i varianter för olika skrivbordsmiljöer. Användargränssnittet är i många fall ett självständigt program, som antingen använder bakgrundsprogrammet genom ett programbibliotek eller använder det genom kommandogränssnittet.

Då man arbetar i en grafisk miljö kan man använda kommando- och textbaserade program genom en terminalemulator, som erbjuder programmen den ”icke-grafiska” miljö de är skrivna för.

Det kommandobaserade gränssnittet har den stora fördelen att kommandona lätt kan anropas från skript och olika uppgifter därmed kan automatiseras. Exempel på detta är bildhanteringsprogrammet Gimp som genom verktygssamlingen imagemagick tillåter bildmanipulation från kommandoraden. Därmed kan till exempel stora mängder bilder snabbt beskäras, förminskas, sparas i andra format, vändas och förses med korrekt datumstämpel.

Andra typer av gränssnittRedigera

En typ av gränssnitt som blir allt vanligare är webb-baserade användargränssnitt. Det innebär att användaren kan styra ett system med hjälp av sin webbläsare via en webbsida. På så sätt behöver inget enskilt program installeras på användarens dator.

Även maskingränssnitt (till exempel REST API) finns ofta tillgängligt via webben, vilket gör att programmet kan användas som byggkloss i ett annat program. API:n behöver vara väldokumenterad för att vara användbar för utvecklare. Detta är vanligt för webbsidor för organisationer som även vill bygga en mobilapplikation för sina tjänster. Då byggs en API först som sedan byggs på med en webb-del och en mobilapplikationsdel. Ibland görs båda i samma programspråk, till exempel Traderas webbsida är skriven i React och mobilappen i React Native. Detta gör att färre kompetenser behövs på utvecklingsavdelningen och kan leda till lägre kostnader. Ofta görs dock mobilapplikationen i ett programspråk som passar enheten, till exempel Kotlin för Android eller Swift för Apple-produkter av prestandaskäl.

Ibland finns även maskingränssnitt för vanliga desktop-program som gör att programmet kan användas som byggkloss i ett annat program. Detta är vanligt inom till exempel Rust och Python där program ofta både kan användas i CLI-miljö och som programbibliotek (via en API). API:n behöver vara väldokumenterad för att vara användbar för utvecklare.

Vid sidan av moderna persondatorer finns det många olika typer av system med andra användargränssnitt. Till exempel telefonbaserade användargränssnitt hos banker med mera där användaren får en datorgenererad röst uppläst, och kan göra olika val genom att trycka på telefonens knappsats eller säga röstkommandon.

Hålkort eller hålremsa användes som användargränssnitt på många tidiga datorer. De kom att spela en viktig roll ända till 1980-talet, då för speciella tillämpningar (såsom körningar på dator på annan ort eller för arkiv), vid sidan av andra användargränssnitt.