2.3 KiB
Vortragsnotizen:
1. Status Quo (auch Randbedingungen)
Technologien
-
Golang als Programmiersprache (unverändert)
-
Goland als IDE (in Studienprojekt I)
-
VSCode (Editor mit Extension wegen besserer WSL Kompatibität)
-
Fyne als Frontend-Go-Library (unverändert)
-
Überlegung: Frontend-Framework als Frontend mit REST-API Kommunikation (React, Angular, Vue)
- mehr Aufwand der nur die Inconvinience von Fyne lösen würde
- Probleme mit Wails für Web-Framework-Desktop Apps
- somit mehr Aufwand als funktionale Veränderungen
- deshalb bei Fyne bleiben mit Kommunikation über Signal Channel
-
TCP/IP als Protokoll weiterhin
-
Testing: Zwei Szenarien:
- Zwei Computer (inconvinient)
- Zwei Instanzen auf dem selben Computer oder zwei VMs haben sich eher bewährt wegen Zeiteffizienz
Funktionalitäten
- Bisher bauen wir auf einer Software auf mit:
- Netzwerk: Lokale automatische TCP-Verbindungen
- TCP-Paketversand automatisch in drei verschiedenen Verzögerungen
- Pakete werden visualisiert über Balkendiagramme
- Verbindungsstatus LED für den User
- Dark Mode für Barriefreiheit, wie reduzierte Augenbelastung und bessere Lesbarkeit
- Fenster kann im Vollbild genutzt werden mit automatischer Skalierung der UI-Elemente
- Cross-Platform kompatibel, Auslieferung für Windows, Linux und MacOS
Frontend-Erweiterungen
Peer-Discovery
-
Vorher: Nutzer kann nicht sehen mit welchem anderen Peer er verbunden ist, nur dass er überhaupt verbunden ist oder nicht
-
Snapdrop UI nicht realisiert weil:
- Fyne arbeitet mit statischen Layouts und nativen Widgets
- Radar-Zeichnung im Canvas zu komplex zur Erhaltung der Wartbarkeit des Code
- Stattdessen Stärke von Fyne: Grid-Layout
- Für Snapdrop Frontend-Austausch durch Web-Framework nötig leider (besser lösbar darin)
-
Button Grid für verfügbare Instanzen, blau/weiß oder blau/schwarz für hohen kontrast
-
Grid wird vom Backend alle 100ms aktualisiert
-
Responsiveness im Button Grid Container :
- Schmales Fenster: Nur zwei Buttons nebeneinander
- Breites Fenster: Vier Buttons nebeneinander,
-
Vorher: User klickt auf Button -> verbindet sich -> kann nur disconnecten indem er das Programm schließt
-
Disconnect Button im verbunden Zustand
-
Keine Peers werden angezeigt, weil die aktuelle Instanz schon verbunden ist