UMAF Diskusion auf #neo1973-germany

Gestern trafen sich um 12 Uhr (High Noon) mit Revolvern bewaffnete Open Source Anhänger um über das Untitled Mobile Application Framework (UMAF) zu diskutieren. Da glücklicherweise nicht geschossen, sondern diskutiert wurde sind auch einige Ergebnisse bzw. Ideen dabei herausgekommen :)

Illume
– Hauptbildschirm (ähnlich Qtopia)
– Iconmenü
– Umschalten zwischen verschiedenen Anwendungen
– Belegung der Tasten AUX und Power mit sinnvoller Funktionalität

UMAF
– auf Basis von EFL
– Widgets (EDJE / EVAS / Elementary?)
– Bindings für gängige Programmiersprachen (Python, C, etc.)

Weitere Ideen beziehen sich auf das Aussehen der Anwendungen im Allgemeinen. Ein schönes Mockup dazu ist unter http://media.cream-project.org/mockup.png zu finden.

Weitere Informationen gibt es unter:
http://www.freesmartphone.org/index.php/Untitled_Mobile_Application_Framework.

ETK in Python

Grade eben bin ich durch Zufall auf die Seite http://wiki.openmoko.org/wiki/Python gegangen und habe dabei doch gleich ein ETK Minimal Beispiel gefunden welches ich hier wiedergeben möchte.

Damit dieses Beispiel läufts sollte man neben den „normalen“ Python Paketen auch noch die Pakete python-etk und python-efl installieren.

Die Minimalanwendung sieht dann so aus:

import etk

#create a button (not yet on any window)
b = etk.Button(label=“Hello“)

#create a (nonvisible) window and put the button on the window
w = etk.Window(title=“Hello“, child=b)

#create a silly callback function
def hello(target):
print ‚Hello World‘
etk.main_quit()

#make the button call the callback when pressed
b.on_clicked(hello)

#make the window display
w.show_all()

#start processing screen events
etk.main()

Im ersten Schritt wird das Python Modul python-etk eingebunden. Danach wird ein Button definiert und mit der Beschriftung „Hello“ versehen. In der nächsten Zeile wird dann ein Fenster erzeugt (welches unsichtbar ist) und diesem Fenster wird der Button zugewiesen. Danach wird die Callbackfunktion hello definiert und diese dem Button zugewiesen. In den letzten zwei Zeilen wird das ganze sichtbar gemacht und der Event Loop aktiviert. Und schon haben wir eine Anwendung :)

PyGame

Gestern bin ich auf PyGame gestoßen. PyGame ist eine Sammlung von Python-Modulen welche Dinge wie das Ansteuern der Grafik und des Sounds abstrahiert. Dabei greifen die Module auf die SDL Bibliothek zurück. Entwickelt wurde das ganze von Pete Shinners. Da das ganze unter Python läuft ist es sicherlich auch interessant für die OpenMoko Plattform. Die offizielle Seite ist unter http://www.pygame.org/.

Wie geht es weiter?

Gestern saß ich am Rechner und vor mir lag mein Neo. Ich habe es dann mal angeschaut und war mal wieder total begeistert welche ungeahnten Möglichkeiten in diesem Gerät stecken. Das führte dazu das ich erst einmal für Minuten nichts anderes getan habe, als begeistert zu sein :) Ich wollte eigentlich schon vor längerer Zeit meine erste Openmoko-Anwendung schreiben. Leider ist das nicht so einfach wie zuerst gedacht.

Da ich diese Anwendung auf Enlightment Basis realisieren wollte und plötzlich merkte das es neben Evas und Edje auch ein UI Toolkit benötigt. Da gibt es ja wie ich beim letzten Mal schon schrieb die Toolkits EWL und Etk. Ich habe mich dann für EWL entschieden und musste dann mal wieder feststellen das es dafür kein Pythonbinding gibt.

Als Entwickler ist man nun doch etwas enttäuscht. Was wir brauchen ist ein leichter Einstieg in für Entwickler, denn nicht jeder Entwickler hat Lust erst Tage und Wochen damit zu verbringen überhaupt mal eine Anwendung hervorzuzaubern. Ich hätte gerne einen „Standard“ welche Widgets benutzt werden sollen etc.

Im Endeffekt musste ein integriertes System entstehen. Was das bedeutet kann man sich an Systemen wie Windows, GNOME, und KDE sehen. Jede Anwendung benutzt die gleichen Widgets und für Benutzer sieht das ganze immer irgendwie bekannt aus. Nachdem FSO die Middleware liefert sollten wir uns um die Benutzeroberfläche kümmern.

Da viele Leute (zu mindestens die mit denen ich zu tun hatte) eine Umgebung auf Enlightment (und Illumne) Basis bevorzugen (ich auch), sollten wir anfangen genau dort anzufangen. Konkret bedeutet das folgendes: Zur Zeit ist Zhone (das Testimage für FSO), eine nicht grade modular aufgebaute Anwendung. Was uns fehlt ist ein Äquivalent zu den GNOME Libs (und anderen ähnlichen Dingen).

Wir sollten nun Anfangen uns an das Reißbrett zu setzen und ein System zu designen welches modular ist und vor allem auch in der Zukunft ausbaufähig ist. Damit wir die Bibliotheken z.B. die für die Widgets nicht an den Bedürfnissen vorbei entwickeln sollten wir unserer Brot und Butter Anwendungen entwickeln und parallel dazu die passenden Bibliotheken. Ich denke am Anfang sollten es folgende Anwendungen sein:

– einen Dailer
– ein SMS Programm
– ein Adressbuch
– einen Kalender
– einen Mediaplayer
– ein Notiz Programm
– ein Memo Programm
– eine Uhr bzw. Weltzeit Uhr (mit Wecker)

Bei der Entwicklung dieser Programme sollte dann parallel dazu die passenden Bibliotheken entwickelt werden, damit der Entwickler auf einem Framework aufsetzen kann bei dem er nicht befürchten muss das nächste Woche schon wieder alles anders macht und der Benutzer eine einheitliche Oberfläche mit einheitlichen Anwendungen bekommt.

Jetzt stellt sich eigentlich nur noch Frage. Wer macht mit?

Python IDE

Auf der Suche nach einer Python IDE sind mir einige IDEs über den Weg gelaufen, wobei die meisten davon zu unausgereift waren. Hängen geblieben bin ich dann an zwei IDEs. Einmal ist dies SPE (Stani’s Python Editor) und die andere IDE hört auf den Namen Eric.

SPE ist eine Python IDE nach dem Motto klein aber fein und bietet eigentlich alles was man für die Python Entwicklung benötigt. Möchte man mehr (wie z.B. SVN Unterstützung) so greift man zu Eric. Eric bietet neben der Unterstützung eines VCS noch einige Features mehr.

Zu finden sind diese IDE’s unter http://pythonide.blogspot.com/ (SPE) sowie unter http://die-offenbachs.de/eric/ (Eric).