AA_wolke.jpg

© Oleksiy Mark, 123RF.com

Appgefahren

Marian Lux über "Create Launcher"

Als uns der Ubuntu-User-Leser Marian Lux von seiner Software-Center-App "Create Launcher" schrieb, wollten wir erfahren, wie die Entwicklung im Detail verlief. Hier ist sein Bericht.

Mit der Einführung von Unity verschwand unter Ubuntu die Möglichkeit, Programmstarter manuell über eine GUI zu erstellen. Also wartete ich auf eine App, die das Problem löst. Als innerhalb von mehr als einem halben Jahr nicht passierte, beschloss ich, selbst tätig zu werden. So entstand meine erste App: Create Launcher.

Ich informierte mich zuerst, wie Unity Anwendungsstarter aufruft [1]. Dann experimentierte ich, indem ich bestehende Anwendungsstarter kopierte und für meine Zwecke veränderte. Das Konzept der Anwendungsstarter begeisterte mich: Ich bemerkte zum Beispiel, dass die Web Games, die EA ins Software Center stellt [2], lediglich aus simplen Anwendungsstartern bestehen. Im Studiengang "Wirtschaftsingenieurwesen Informatik" fehlte mir noch ein Praktikum; also überzeugte ich einen Betreuer an meiner Uni von dem Projekt und nahm es in Angriff.

Das Ubuntu Developer Portal [3] bot wertvolle Infos zur App-Entwicklung an. Kam ich dort nicht weiter, nutzte ich die Webseite Askubuntu [4], wo ich meist innerhalb von 24 Stunden eine qualifizierte und freundliche Antwort erhielt – toller Service. Blieb eine Frage unbeantwortet, suchte ich nach Design-Alternativen, um nicht zu viel Zeit zu verlieren.

Meine App basiert auf Java, das ich zum Glück bereits programmieren konnte. Mit Hilfe der Entwicklungsumgebung Eclipse und dem Plug-in WindowBuilder [5], entwickelte ich eine SWT-Anwendung. Java ermöglichte mir eine saubere, objektorientierte Entwicklung und ist zudem weit verbreitet.

Da Mark Shuttleworth für das nächste Ubuntu-Release ein neues Farbthema ankündigte, und ich meine Anwendung optimal in Ubuntu integrieren wollte, passt die App ihre Farben nun dynamisch an das gewählte Farbthema an. WindowBuilder bietet zudem ein Lokalisierungs-Tool an, über das man eine Anwendung über Textdateien in beliebige Sprachen übersetzt. Meine App spricht derzeit Englisch (=Standard) und Deutsch [7].

Die ausführlichen Beschreibungen auf der Ubuntu-Developer-Homepage [8] halfen mir, meine App reibungslos in das Software-Center hochzuladen. Weil mir die Zeit fehlte, lud ich sie als proprietäre Software hoch: Dadurch entfällt die Wahl eines Lizenzmodells, und ich musste den Source-Code nicht auf Launchpad [9] hochladen. Zudem bietet Ubuntu für proprietäre Programme einen Paketierungsservice [10]: Da Create Launcher meine erste App für Linux war, wusste ich noch nicht, wie man DEB-Pakete baut.

Mittlerweile sehe ich das etwas anders. Ich entwickle gerade meine erste App mit Quickly (Python und Glade) für den Ubuntu App Showdown [11]. Da das Tool – bis auf die Wahl des Lizenzmodells – den weiteren Zeitaufwand minimiert, steht auch einer Open-Source-Lizenzierung nichts mehr im Wege.

v2.png

Ubuntu-User-Leser Marian Lux hat eine eigene App für das Software-Center entwickelt und erklärt, wie das funktioniert.

Fazit

Die Entwicklung des Projekts verlief zwar schnell, doch die Vorlaufphase (Technikwahl, Design) brauchte einige Zeit, weil ich länger über die optimale Bedienbarkeit für Benutzer nachdachte. Es dauerte dann zwei Wochen, bis meine Anwendung den Qualitätscheck von Canonical durchlaufen hatte. Dabei reagierten die Canonical-Mitarbeiter stets freundlich und innerhalb von kurzer Zeit.

Für kleinere Anwendungen empfehle ich Quickly (PyGTK und Glade), für ein großes Projekt, würde ich Eclipse und WindowBuilder bevorzugen, da dies eine saubere Programmierung ermöglicht. Das so erstellte Programm skaliert gut und läuft auch auf anderen Betriebssystemen – alternativ greift man zu C oder Qt (C++).

Programmierer, die mit Quickly ihre erste App entwickeln wollen, sollten den Source-Code kleiner Open-Source-Projekte (etwa Qrator [12]) herunterladen und studieren – so lassen sich auch Python und Glade schnell erlernen.

Glossar

SWT

SWT ist ein Framework, um GUIs zu erstellen, die native Elemente eines Betriebssystems (Windows, Linux und OS X) benutzt [6]. Mit SWT funktioniert zum Beispiel das HUD von Ubuntu.

Einem Freund empfehlen