Teil 4 des Rasberry Pi I2C Projektes

Erst mit einem UI wird die software so richtig nutzbar

Um das Thema Eingabe- und Ausgabe geht kein Weg an einem user interface vorbei. Bisher hatte ich das mit einer terminalbasierten Version gemacht und konnte so auf dem Handy (oder jedem Internetbasiereten Device mit einer Terminalemulation) Kontakt mit dem Programm aufnehmen. Die Eingaben waren einfach aber das UI zu programmieren ist mit sehr viel Handarbeit verbunden. Der Vorteil, es läuft quasi auf jedem Endgerät, ist zwar vorhanden aber so richtig „state of the art“ ist es irgendwie nicht. Eine grafische Oberfläche und ein Programm machen da schon etwas mehr her.

Recherge im Internet verschafft den Überblick

Welche Möglichkeiten bestehen denn? Was sind denn überhaupt meine Vorstellungen von einer Entwicklungsumgebung und passt das Ganze in mein Konzept? Hier mal ein paar Anforderungen:

  • Es muss ein IDE geben um die Fenster/ Masken/ Forms (allgemein Widgets) zu erstellen
  • Das System muss skalierbar sein und muß ein Interface (eine Schnittstelle) zu C haben. Pyton und andere Sprachen fallen raus, weil nicht HW nah genug und zu langsam in der Ausführung
  • Das Ergebnis muß ein Programm sein, kein getrennter Code
  • Das System muß open Source sein, ich will keine Lizenzgebühren etc. zahlen
  • möglichst einfach zu erlernen
  • Zukunftssicher – Nix. mit version 1.0 etc. Am besten wenn es sich bewährt hat und eine große Community das System nutzt
Photo by Firmbee on Pixabay

Was ist mein Ergebnis

Nachdem ich nun einige Stunden im Internet gesucht und auch gefunden habe ist mein Weg erst einmal gesetzt. Ich denke die Bausteine für das User Interface (UI) welche ich in meine Entwicklung einbauen möchte sind GTK+ und als IDE GLADE. Da ich für die Programmierung C mit der IDE CodeBlocks verwende passt das auf den ersten Blick gut zusammen. Für GTK+/ Glade gibt es einiges an Lernvideos und Tutorials bei YouTube und auf den Webseiten von GNOME. Vorteile laut Beschreibung von GTK sind:

  • Portability – damit ist man NICHT nur auf Linux fixiert
  • Interface zu Programmiersprachen
  • open source
  • Stabilität
  • leicht einzusetzende und beschriebene API