IRC Security

Grafische Desktopanwendungen unter Linux entwickeln programmieren

Date: []
Categories: [Software Entwicklung]
Tags: [Desktop Anwendungen], [javascript], [python], [electron], [java], [javafx], [linux], [gnome], [npm], [nodes], [todoliste], [c#], [c++]

Grafische Desktop-Anwendungen unter Linux entwickeln bzw. programmieren

Quelle: Python3 Tutorial

Manchmal hat man das Gefühl, man programmiere nur noch für das große WorldWideWeb und dann hat man einige Ideen für den eigenen Desktop.
Sei es eine To-Do-Liste oder ähnliche Programme.

Doch wie will man es umsetzen?

Ich arbeite viel mit dem Browser und implementiere hier schon viele Tools, aber für welches Projekt eigenet sich welche Implementierung und welche Programmiersprache.

Wenn Du auch Du einige Programme selbst schreiben möchtest, hier einige Gedanken für die richtige Auswahl:

**Unter Linux gibt es mehrere geeignete Programmiersprachen für die Entwicklung grafischer Programme. Die Wahl der richtigen Sprache hängt oft von den spezifischen Anforderungen des Projekts, den vorhandenen Bibliotheken und Frameworks sowie deinen persönlichen Präferenzen und Kenntnissen ab.

Programmiersprachen für die grafische Desktop-Programmierung unter Linux

C++ mit Qt

Allerdings programmieren jüngere Menschen nur noch wenig mit C++, bzw. starten oft mit Python und Co.

Python mit Tkinter oder PyQt

Java mit Swing oder JavaFX

Während Swing eher altmodisch wirkt, ist JavaFX eine schöne Alternative, allerdings auch anstrengender umzusetzen.

C# mit Mono und GTK

Wenn du Erfahrung mit C# hast, kannst du Mono, eine plattformübergreifende Implementierung von Microsofts .NET Framework, zusammen mit GTK# für die Entwicklung von GUI-Anwendungen unter Linux verwenden.

Man fragt sich, warum C# unter Linux? Fachinformatiker in der Anwendungsentwicklung starten oft mit C#, das gilt auch für viele Studiengänge.
Microsoft ist wieder bei den oberen Rängen dabei, c# - Kenntnisse sollten auf jeder To-Learn Liste stehen.

JavaScript mit Electron

Für Web-Entwickler kann Electron eine gute Wahl sein. Es ermöglicht dir, Desktop-Anwendungen mit Webtechnologien wie JavaScript, HTML und CSS zu erstellen.

Vala mit GTK+

Vala ist eine Programmiersprache, die speziell für die GNOME-Plattform entwickelt wurde. Sie verwendet GTK+ für die GUI-Entwicklung und ist eine gute Wahl, wenn du dich auf die GNOME-Umgebung konzentrieren möchtest.

Jede dieser Sprachen und Frameworks hat ihre eigenen Stärken und Schwächen. Die Wahl hängt letztendlich von den spezifischen Anforderungen deines Projekts und deiner Vertrautheit mit der Sprache und den dazugehörigen Werkzeugen ab.

Ich persönlich schwanke hier zwischen Java-Script kombiniert mit Electron sowie Phyton und Qt-Framework

Desktopanwendungen mit Javascript/electron vs Python mit QTFramework! Vor- und Nachteile

JavaScript mit Electron

Vorteile:

Plattformübergreifende Entwicklung

Electron ermöglicht es, Desktop-Anwendungen für Windows, Linux und macOS mit denselben Webtechnologien (HTML, CSS, JavaScript) zu entwickeln.

Moderne Webtechnologien

Entwickler können moderne Webframeworks und -bibliotheken nutzen, was die Entwicklung oft beschleunigt und vereinfacht.

Starke Community und Ressourcen

Electron wird von einer großen Community unterstützt und bietet viele Ressourcen und Plugins.

Integration mit Node.js

Electron-Apps können auf Node.js zurückgreifen, was den Zugriff auf ein umfangreiches Ökosystem von NPM-Paketen ermöglicht.

Nachteile

Speicherverbrauch

Electron-Apps sind oft kritisiert worden für ihren hohen Speicherverbrauch und ihre Größe.

Performance

Obwohl sie leistungsfähig sind, können Electron-Apps langsamer sein als native Anwendungen.

Sicherheit

Electron-Apps können Sicherheitsrisiken bergen, wenn sie nicht sorgfältig entwickelt werden.

Python mit Tkinter/PyQt

**Vorteile:

Einfachheit und Schnelligkeit mit Tkinter

Tkinter ist einfach zu erlernen und zu verwenden, was es ideal für kleinere Projekte und Prototyping macht.

Reichhaltige UI-Komponenten mit PyQt

PyQt bietet eine umfangreiche Sammlung von UI-Komponenten und ist gut für komplexe Anwendungen geeignet.

Python-Ökosystem

Zugang zu Pythons umfangreichem Ökosystem von Bibliotheken für verschiedene Anwendungsfälle.

Geringerer Speicherverbrauch

Im Vergleich zu Electron haben Python-basierte GUI-Anwendungen oft einen geringeren Speicherverbrauch.

**Nachteile:

Plattformübergreifende Herausforderungen

Obwohl sowohl Tkinter als auch PyQt plattformübergreifend sind, können sich Herausforderungen in Bezug auf das Look-and-Feel und das Verhalten auf unterschiedlichen Betriebssystemen ergeben.

Ältere Technologien

Insbesondere Tkinter kann veraltet wirken und bietet nicht die modernen Features, die in Webtechnologien verfügbar sind.
Lernkurve für PyQt: PyQt kann eine steilere Lernkurve haben, insbesondere für Entwickler, die nicht vertraut sind mit Qt.

Tutorial, für eine ToDo-Liste mit Java-Script und Electron unter Linux:

Um Dir den Aufwand zu verdeutlichen, möchte ich Dir hier die Schritte verdeutlichen, um ein solches Script zu schreiben.
Ich gehe davon aus, dass Du bereits weißt, was Du für ein Programm schreiben möchtest und was diese Tool können soll.
In diesem Fall bleibe ich bei einer einfachen ToDo-Liste für Linux. Den Programmier-Part bleibt unausgefüllt, da es hier um die Schritte geht.

Um eine To-Do-Liste unter Linux mit JavaScript und Electron zu erstellen, folge diesen Schritten:

Installiere Node.js und npm**

Initialisiere ein neues Node.js-Projekt**

Installiere Electron**

Führe im Projektverzeichnis npm install electron --save-dev aus, um Electron lokal in deinem Projekt zu installieren.

Erstelle deine Hauptdatei**

Entwickle die grafische Oberfläche:

*Schreibe JavaScript-Code (innerhalb oder als separate Datei eingebunden in deine HTML-Datei), um das Hinzufügen und Entfernen von Listeneinträgen zu ermöglichen.
Füge deine Anwendung zu package.json hinzu:

*Bearbeite die package.json-Datei, um das Skript für den Start deiner Electron-Anwendung zu definieren. Zum Beispiel "start": "electron .".
Teste deine Anwendung:

** Führe im Terminal npm start aus, um deine Electron-To-Do-Liste zu starten und zu testen.
Erweitere und verfeinere:

*Erweitere deine Anwendung um zusätzliche Funktionen und verbessere das Design und die Benutzererfahrung.

Hier ist ein einfaches Beispiel für die Struktur deiner main.js-Datei:

onst { app, BrowserWindow } = require('electron');

function createWindow() {
let win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
});

win.loadFile('index.html');

}

app.whenReady().then(createWindow);

Und ein einfaches Beispiel für deine index.html

<!DOCTYPE html>

Meine To-Do-Liste

Meine To-Do-Liste

    Dies gibt dir einen guten Startpunkt, um eine grundlegende To-Do-Liste zu entwickeln. Du kannst dann weitere Features hinzufügen und das Design anpassen, um deinen Anforderungen gerecht zu werden.