Ubuntu – Applikationen schnell und einfach mit Quickly erstellen

Wer sein erstes eigenes Ubuntu-Programm erstellen möchte, welches nicht nur aus einer reinen Konsolenanwendung besteht, sondern auch Dialoge & Co benutzen möchte, benötigt am Anfang seines Weges viel Wissen über den Aufbau und die notwendigen Bibliotheken um eine native Anwendung zu schreiben.

Natürlich ist es möglich, plattformübergreifende Toolkits zu benutzen, wie z.B. Java-GUI-Bibliotheken (Swing, SWT, Java Gnome), Qt und ähnliches. Diese haben aber meist den Nachteil, dass sie sich nicht ordentlich in den Desktop von Ubuntu integrieren, weshalb man hier eher auf das Standard-Toolkit von GTK+ zurück greift, um ein möglichst konsistentes Look and Feel zu bieten.

Um den Einstieg für die Entwickler zu vereinfachen, bietet es sich an einmal Quickly zu testen. Quickly beschreibt sich selbst als einfache und schnelle Methode, welches ein stabiles Grundgerüst/Template für euer erstes Ubuntu-Programm bereits mitbringt.


Die Installation ist schnell erledigt, da Quickly in den normalen Paketquellen verfügbar ist. Entweder ihr nutzt das Ubuntu Software Center oder nehmt den schnelleren Weg über:

$ sudo apt-get install quickly

Quickly selbst benötigt einiges an zusätzlichen Programmen und Bibliotheken, daher mussten bei mir ca. 250MB an Daten heruntergeladen werden. Folgende Programme werden bei der Installation von Quickly mitinstalliert:

  • Python (Das Template setzt auf Python zum Programmieren eurer Anwendung)
  • GTK+ als Toolkit
  • PyGObject
  • Glade einfache Möglichkeit euch eure Oberfläche in einer Oberfläche zurecht zu ziehen
  • Bazaar als Versionskontrollsystem
  • Windp ein Python Debugger
Nach der Installation könnt ihr direkt beginnen euer erstes Programm anzulegen. Wer zunächst ein kurzes Tutorial über Quickly sich anschauen möchte, kann zunächst in der Konsole mittels:
$ quickly tutorial ubuntu-application

eine kurze Einführung in das Programm bekommen. Beginnen wir aber mit unserer ersten Anwendung, in dem ihr folgenden Befehl eingebt:

$ quickly create ubuntu-application test

Dabei steht test im Befehl für den Namen eurer Applikation. Anschließend erstellt Quickly automatisch im Hintergrund alle benötigten Dateien, um eine erste lauffähige Desktop-Anwendung zu erstellen, die ihr direkt betrachten könnt. Ihr findet diese Dateien im eigens angelegten Order, der dem Namen eures Programms entspricht.

Wechselt also mit

$ cd test

in euer Programmverzeichnis und startet einfach mal euer Programm mittels:

$ quickly run

Ihr seht dann folgendes Template.

Quickly - GUI

Das Template liefert einen fertigen Dialog, ein einfaches Standardmenü, einen Hilfe-Dialog, About-Dialog. Alles Bestandteile, die man eigentlich in jeder Software irgendwo wiederfindet. Wollt ihr jetzt euer Programm anpassen, bietet es sich an, zunächst zu Glade zu wechseln, um das Design eurer GUI zu verändern. Dies erreicht ihr über:

$ quickly design

Glade

Wer schon einmal mit solchen Designern gearbeitet hat, der wird sich auch hier recht schnell zurecht finden (ähnlich wie Qt Creator & Co). In der Mitte findet ihr eine Vorschau eures Dialoges, wie er später aussehen wird, links alle Widgets wie Textboxfelder, Buttons usw., die ihr eurer Oberfläche hinzufügen könnt, und auf der rechten Seite die Eigenschaften der jeweiligen Elemente. Dort könnt ihr z.B. einstellen, welchen Namen das Element bekommt, wie groß das Element ist und vieles mehr. Ändert hier einfach alle eure Angaben und speichert das ganze wieder ab. Anschließend könnt ihr über quickly run sehen, dass die Änderungen sofort übernommen worden sind.

Natürlich nimmt euch Quickly nicht die Arbeit des Programmierens vollständig ab. Ein wenig Grundlagenwissen in Python sollte nach Möglichkeit vorhanden sein. Um jetzt also gewisse Funktionalität hinzuzufügen, müssen wir mittels

$ quickly edit

in den dazugehören Quellcode wechseln. Dies öffnet Gedit und ihr könnt nun relativ einfach beginnen eure Funktionalitäten hinzuzufügen. Nachdem ihr all eure Funktionen implementiert habt, gibt es eine sehr einfache Möglichkeit ein fertiges Paket für eure Software zu erstellen, um das Programm auf eurem System zu installieren. Mittels:

$ quickly package

bekommt ihr ein .deb File, sowie ein gepacktes Paket im .tar.gz Format mit dem enthaltenden Quellcode. Leider sind dort noch etliche Metadaten nicht gepflegt, dort müsst ihr also noch ein wenig selbst Hand anlegen, in dem ihr die setup.py bearbeiten müsst.

Mein sehr einfach gehaltenes Beispiel sieht dann in der Realität folgendermaßen aus:

Beispielprogramm

Wer sein Programm direkt auf Launchpad veröffentlichen möchte, kann dies mittels Quickly ebenfalls sehr einfach durchführen (Account bei Launchpad und ein vorbereitetes PPA vorausgesetzt):

$ quickly release

Es gibt noch eine ganze Reihe, weitere Möglichkeiten, die ihr aber auch in den Dokumentationen findet. Einen sehr guten Einstieg liefert das englischsprachige Video vom Community Manager Jobo Bacon

Er zeigt alle Bestandteile nochmal sehr ausführlich an einem einfachen Beispiel, wie man in ein paar Minuten einen simplen aber funktionsfähigen Webbrowser mithilfe von Quickly erstellt.


  • noisefloor

    Ich habe mit Quickly seinerzeit (als es neu war) auch mal gespielt, primär um den Wikiartikel bei uu.de dazu erstellen.
    Was sehr schön bei Quickly ist, ist, dass es sehr viel “Basisarbeit” (=Code) direkt mitbringt, so dass man schneller los legen kann.
    Wer keine Ahnung von Python hat, der kriegt mit Quickly auch keine brauchbare Applikation hin. Also Programmieren können sollte man schon. Ebenso ist es IMHO hilfreich, wenn man eine Grundidee von GTK+ hat.

    Abgesehen davon sehen Qt-Anwendungen unter Ubuntu / Unity genau so aus wie die von GTK+ – die Themes bringt Ubuntu ootb mit. :-)

  • flup

    An einer Qt (nicht KDE) App erkennt man nicht das sie in Qt geschrieben ist…….
    Alles andere ist eine Lüge.

    Mich nervt das FUD gegen Qt langsam, da werden immer Halbwahrheiten verbreitet.

    Qt ist mit abstand das mächtigste, performanteste und best-dokumentierte plattformunabhängige Framework das es gibt. Da kann das Hobby-Projekt GTK gleich einpacken,

    • storminator

      Ich mag hier kein Glaubenskrieg austragen, welches nun das mit Abstand beste Framework ist.
      Mit dem befürchteten schleichenden Niedergang von Nokia muss man aber auch warten, wie es mit Qt weitergeht.

      GTK würde ich aber nicht so abwerten, man kann da unterschiedlicher Auffassung sein, dennoch wird dort auch gute Arbeit geleistet.

      Du kannst mich aber gerne über Halbwahrheiten aufklären, bin stets daran interessiert, wenn hier etwas völlig falsch dargestellt wurde.

      • http://sgaul.de Sebastian

        Worauf Flup wohl hinaus wollte, (wenn er denn vorher noch mal durchgeatmet hätte):

        „Natürlich ist es möglich, plattformübergreifende Toolkits zu benutzen, wie z.B. [...] Qt [...]. Diese haben aber meist den Nachteil, dass sie sich nicht ordentlich in den Desktop von Ubuntu integrieren…“

        Das kann man wirklich nicht stehen lassen. Reine Qt-Anwendungen, die nicht aus KDE stammen, kann man in aller Regel nicht von GTK-Anwendungen unterscheiden.

        • storminator

          Ok ihr habt schon Recht, das hätte ich tatsächlich noch ein wenig konkretisieren können.

          Habe zwar Qt mit genannt und hatte auch KDE-Anwendungen im Hinterkopf, bezog mich aber mit meist eher auf die Java-Bibliotheken, da ich nur wenig direkt mit Qt bisher gearbeitet habe.

          • noisefloor

            Ja, ja, das ist von der Ansicht her landläufig populär (primär wegen dem KDE-Desktop), aber Qt != KDE. Sehr wichtig.

  • AlphaX2

    Gut dass das geklärt ist, zumal man mit Qt eigentlich jeden Pups geliefert bekommt, Gui, Threading, Plugins, Netzwerk …eigentlich alles denkbare und dazu sogar 1a Anbindung an ebenfalls Python, sowohl mit PyQt4 als auch PySide!

    Und dank der LGPL Lizenz dürfte wohl auch Qt selbst beim Fall von Nokia sicher sein, mal abgesehen, dass sich andere darum reißen dürften! ;D

    AlphaX2