Anmelden Registrieren

Badges

Follow Peter Bouda on Google Plus

Feeds

Neueste BlogeinträgeBlog

MeeGo ist da

pbouda am 31. Mär 21:23

Tag eins, wie man so schön sagt: es gibt erste Images von MeeGo für N900, Atom- und Moorestown-Plattformen. Download läuft.

Gluon zur Spieleentwicklung mit Qt

pbouda am 28. Mär 18:06

Spiele mit Qt zu entwickeln ist im Moment noch kein großer Spaß, auch wenn mit QGraphicsView und den QGL*-Klassen Grafikprogrammierung unterstützt wird. Um die gesamte sonstige Intelligenz für Spiele (Sprites, Kollisionen, Level, etc.) muss sich der Entwickler aber selbst kümmern. In diese Bresche springt nun Gluon, dass auf Qt basiert und sich vor allem in KDE-Umgebungen einfügen soll. Ein Hauptantrieb für die Gluon-Entwickler war wohl insgesamt der Mangel an vernünftigen 2D-Spiele-Bibliotheken, Gluon soll nach Auskunft im Projektwiki nichts Geringeres als das "Unity3D" für Spiele in zwei Dimensionen werden. Damit hängt der Anspruch hoch. Von Anfang an werden wie bei Unity3D auch Vertriebswege für die späteren Spiele in die Bibliotheksentwicklung eingeplant, und natürlich spielt da auch Maemo bzw. MeeGo eine zentrale Rolle. Ein PDF im Gluon-Wiki beschreibt recht anschaulich, wie sich die Entwickler einen solchen Gluon-Player für Maemo/MeeGo vorstellen. Die Idee eines eigenen Gluon Creators soll außerdem die Einstiegshürde niedrig halten. Interessante Sache, die man auf jeden Fall im Auge behalten sollte.

Technische Vorschau auf PySide-Shiboken

pbouda am 24. Mär 19:17

Heute wurde eine technische Vorschau auf Shiboken-PySide veröffentlicht. Shiboken ist eine von den PySide-Entwicklern ins Leben gerufene Umgebung zur Erstellung von Python-Bindings für C++-Bibliotheken. Zunächst wurden die PySide-Bindings per Boost.Python erstellt, das offizielle Release von PySide nutzt immer noch diese. Da Boost.Python die Bibliotheken jedoch unnötig aufbläht, begannen die PySide-Entwickler mit der Entwicklung von Shiboken. Einer der Entwickler hat darüber eine interessanten Blogeintrag geschrieben. Es gibt immer noch einige Diskussionen über die Vorteile von PyQt4 gegenüber PySide, letzteres holt aber kräftig auf und wenn ich wetten dürfte: wird irgendwann PyQt4 obsolet machen.

Neues Tutorial: Wie man ein Python- oder PySide-Projekt für Maemo erstellt

pbouda am 23. Mär 19:39

Ab sofort ist das erste Python-Tutorial zur Anwendungsentwickung für Maemo und das N900 auf mobileqt.de online:

Wie man ein Python- oder PySide-Projekt für Maemo erstellt

Am Beispiel einer kleinen PySide-Anwendung wird gezeigt, wie ihr eure Python-Anwendungen aufbauen und verpacken müsst, damit sie auf dem N900 installiert werden können. Für alle, die nicht in die Untiefen der Qt/C++-Programmierung einsteigen wollen ist Python eine leichte und schnelle Alternative. Die Hautpdatei der Beispielanwendung habe ich übrigens komplett mit dem PyGTKEditor auf dem N900 entwickelt.

Vorschau der anderen Art: Bilder aus dem N900 PR1.2 SDK

pbouda am 23. Mär 09:09

Auf talk.maemo.org hat jemand erste Bilder aus dem SDK für die Firmware-Version PR1.2 veröffentlicht, die einen Einblick in die kommenden Features ermöglichen. Schaut's euch an unter:

http://talk.maemo.org/showthread.php?t=48020

Processing auf dem N900

pbouda am 20. Mär 12:28

Processing ist eine Java-basierte Programmiersprache, die bisher vor allem im Computerkunstbereich eingesetzt wird und sich dort wegen ihrer einfachen Erlernbarkeit und einer hervorragenden Grafikbibliothek großer Beliebtheit erfreut. Aber auch im Embedded-Bereich wird Processing z.B. Schaltungen mit dem Mikrokontroller Arduino verwendet. Und es macht Spaß.

Vor kurzem hat nun Jayesh Salvi eine Website mit einer Javascript-Processing-Umgebung veröffentlicht. Die Beispiele auf der Website funktionieren alle recht gut auch auf dem N900, ich hatte aber Probleme mit den Mouse-Events. In den von mir getesteten Browsern (MicroB, Midori, Firefox) konnte ich keine vernünftigen Toucheingaben machen, weil meist der Browser diese Eingaben abfängt um z.B. den Bildschirm zu scrollen. Am Besten funktionierte es mit Midori, der eine WebKit-Engine verwendet. Also habe ich ein kleines PySide-Skript geschrieben, dass mir nur die die Processing-Umgebung unter "http://p.altcanvas.com/" öffnet und den MicroB-UserAgent-String schickt:

# This code is public domain
import sys
from PySide import QtGui, QtWebKit, QtCore

def main():
    app = QtGui.QApplication(sys.argv)
    QtGui.QApplication.setApplicationName("Processing")
    MainWindow = QtWebKit.QWebView()
    page = MyWebPage()
    MainWindow.setPage(page)
    MainWindow.show()
    MainWindow.load(QtCore.QUrl("http://p.altcanvas.com/"))
    sys.exit(app.exec_())

class MyWebPage(QtWebKit.QWebPage):

    def __init__(self):
        QtWebKit.QWebPage.__init__(self)

    def userAgentForUrl(self, url):
        return "Mozilla/5.0 (X11; U; Linux armv7l; de-DE; rv:1.9.2a1pre) Gecko/20091127 Firefox/3.5 Maemo Browser 1.5.6 RX-51 N900"
        
main()

Und siehe da: MouseClicked- und MouseDragged-Events funktionieren auf dem N900 einwandfrei! Ich habe auf der Website ein Projekt namens "touch" freigegeben, dieses könnt ihr in der "Gallery" ausprobieren. Damit das Python-Skript auf dem N900 läuft müsst ihr das Paket "pyside-qt4-webkit" aus "extras-devel" installieren. Ihr könnt das Skript auch auf dem Desktop starten und seht so, wie sich das Processing-Programm auf dem N900 verhalten wird. Entwickeln könnt ihr ganz einfach auf der Website im Desktop-Browser.

Hier ein kleines Screen-Video:

Das Python-Skript könnt ihr auch hier herunterladen.

Endlich: N900-Roboter

pbouda am 20. Mär 10:44

Es wurde auch Zeit: der erste Roboter mit dem N900 als Gehirn. Und twittern kann er auch schon, der Kleine:

Qt 4.7 auf dem N900

pbouda am 17. Mär 20:04

Eine Woche nach der Vorschau auf Qt 4.7 beglücken uns die Qt Labs nun mit einer Version für das N900. Installationsanleitung findet ihr hier. Interessant: die Qt 4.7 Bibliotheken ersetzen die Version 4.6 in extras-devel, sobald die Firmware PR 1.2 raus ist. Wir warten ungeduldig.

Windows Phone Demo

pbouda am 16. Mär 17:58

Microsoft hat auf der MIX erste Demos von Anwendungen auf dem Windows Phone gezeigt. Besonders beindruckend finde ich das Video von "The Harvest", dass die Möglichkeiten von Spielen auf dem neuen mobilen Betriebssystem zeigen soll:

Spiele sollen dann sowohl auf dem Telefon als auch auf der XBox gespielt werden können. Es ist außerdem ein Schritt in die richtige Richtung endlich die Entwicklungsumgebung für die Anwendungsentwicklung frei zu verteilen, bisher braucht das Windows Mobile-SDK mindestens ein Developer Studio Professional als Voraussetzung. Und wenn dann Qt auch noch auf Windows Phone 7 portiert wird, dann werde ich mir mal wieder ein Windows-Handy zulegen. Mal sehen, was Microsoft da noch so aus dem Hut zaubert.

Kurs: Mobile Anwendungen mit Qt 4

pbouda am 15. Mär 11:07

Für alle Entwickler mit Fortbildungsambitionen und/oder fortbildungsfreundlichem Chef: ich gebe im April, Juni und Oktober einen dreitägigen Kurs über die Entwicklung mobiler Anwendungen mit Qt 4, und zwar an der Open Source School in München. Alle Interessenten sollten sich bald anmelden, da die Zahl der Plätze begrenzt ist. Im kleinen Kreis lernt und lehrt sichs halt am Besten. Ich würde mich sehr freuen einige von euch dort und dann begrüßen zu dürfen.

Neues Tutorial: Wie man mit MADDE ein Qt-Projekt für Maemo erstellt

pbouda am 15. Mär 11:02

Nachdem das Tutorial zur Qt-Entwicklung ja nun schon eine Weile online ist folgt nun die MADDE-Variante zur mobilen Qt-Entwicklung. Das Tutorial zeigt euch schrittweise, wie ihr mit MADDE euer Projekt anlegt, durch eine Integration mit dem Qt Creator die Anwendung entwicklerfreundlich weiter entwickelt und abschließend ein Debian-Paket für die Installation erstellt. Qt-Anwendungen fürs N900 waren noch nie so einfach. :-)

Technische Vorschau auf Qt 4.7 und Alpha von Qt Creator

pbouda am 11. Mär 21:17

Heute wurden sowohl ein Vorschau auf Qt 4.7 als auch eine Alpha-Version des Qt Creator 2.0 veröffentlicht. Besonders gespannt bin ich auf die Integration von Qt Quick in den Creator, mal sehen, was sich damit alles anstellen lässt. Nach allem was ich bisher gesehen habe wird das für die Qt-Entwicklung einen gewaltigen Schritt nach vorne bedeuten. Außerdem ist wohl eine Entwicklungsmöglichkeit für Maemo und Symbian direkt in die UI integriert. Der Download läuft. :-)

Neues Tutorial: MADDE und Qt Creator

pbouda am 10. Mär 16:14

Ich habe eben ein neues Tutorial online gestellt: Wie man unter Linux MADDE mit dem Qt Creator integriert. Bisher gibt es ja nur vorläufige Versionen von MADDE, früher oder später wird MADDE aber Scratchbox als offizielle Methode zur Anwendungsentwicklung ablösen. Bei meinen Versuchen ist mir aufgefallen, dass die Qt Mobility-API noch nicht in MADDE vorhanden ist; da bin ich mal gespannt, wann das kommt. Im Moment spiele ich viel mit diesen Schnittstellen herum, da wäre eine MADDE-Variante fein.

OCR auf dem N900

pbouda am 08. Mär 12:14

Ich bin der Meinung, dass sich die Open Source-Strategie von Nokia langfristig auszahlen wird, Maemo (ab bald MeeGo) wird mindestens eines der großen Betriebssysten für mobile Plattformen werden. Die Vorteile werden immer dann offensichtlich, wenn man sich den schier unerschöpflichen Vorrat an Open Source-Bibliotheken und -Anwendungen vor Augen führt. Aus diesem Fundus werden jetzt sicher immer mehr auf das N900 portiert werden. Ein schönes Technologiedemo für OCR auf dem N900 hat Daniel Would veröffentlicht, basierend auf der freien OCR-Engine tesseract. Tesseract werde ich mir bei Gelegenheit mal näher anschauen: vielleicht lässt sich ja etwas Ähnliches wie Shoot&Translate bauen, daran hatte ich damals in meiner Angestelltenzeit fleißig mitgebastelt.

Qt Embedded auf Dingoo?

pbouda am 07. Mär 18:59

Linux-Spielekonsolen sind was Spannendes, finde ich; die Open Pandora scheint ja mittlerweile verfügbar zu sein (zumindest hatte ein Verkauf mal stattgefunden ;-)), ist aber recht teuer geworden. Als Alternative gibt's für derzeit 80 Euro die Dingoo A320, mit alternativem, freien Linux-Betriebssystem. Und wie es ausschaut, hat es tatsächlich jemand geschafft Qt Embedded dafür zu portieren. Grund genug für mich, mir das Teil zuzulegen. Ich halte euch über alles Weitere dazu auf dem Laufenden.

Jetzt neu: Entwickler-Wiki bei mobileqt.de

pbouda am 07. Mär 18:57

Das Qt-Entwickler-Wiki für die Entwicklung mobiler Qt-Anwendungen wurde soeben eröffnet. Das Wiki kann von jedem angemeldeten Benutzer bearbeitet werden, ich habe schon einmal das erste Tutorial aus dem Blog ins Wiki übertragen. Demnächst werde ich sicher weitere Artikel dort hinein schreiben, und natürlich ist jeder von euch herzlich eingeladen, euren Senf dazu zu geben oder meinen zu korrigieren. Happy Qt programming!

Microsoft Arc Keyboard am N810

pbouda am 06. Mär 12:08

Ich habe gerade mal spaßeshalber meine neue, kabellose Microsoft ARC Tastatur mit meinem Nokia N810 verbunden, und siehe da: ich kann die Tastatur einwandfrei verwenden, sogar Tasten wie "Alt" und "Strg" funktionieren. Voraussetzung dafür ist, das der USB host mode auf dem Gerät aktiviert ist. Leider wird's diesen auf dem N900 nie geben, weil der host mode wegen der verwendeten Hardware wohl prinzipiell technisch nicht möglich ist (UPDATE: evtl. doch). Schade. Die Arc Tastatur selbst kann ich hier nur loben: sie ist klein, zum Tippen aber hervorragend und zum Lieferumfang gehört eine kleine Schutztasche zum Transport. Der Empfänger kann einfach per Magnet an die Tastatur geklebt werden, und schon hat man mit dem N810 zusammen eine Art Notebook :-).

Hier aber das dazugehörige Video und Bild:



Tutorial: Wie man ein Qt-Projekt für Maemo erstellt (Teil 2)

pbouda am 05. Mär 17:05

Hier also nun der zweite Teil des Tutorials über das erstellen eines Qt-Projekts für Maemo. Für alle, die neu dabei sind: hier geht's zum ersten Teil. Dort werden die ersten vier Schritte beschrieben.

Im fünften Schritt bereiten wir das Projekt für die Debian-Paketierung vor. Dazu könnt ihr den Qt Creator wieder schließen. Der Debian-Paketierer braucht etwa zwei Hände voll Dateien, die das Paket beschreiben. Diese Datein müssen in dem im ersten Schritt erstellte "debian"-Ordner liegen. Um euch die Sache zu vereinfachen habe ich euch diese Dateien als Beispiel in ein Archiv gepackt:

Debian-Dateien für das mobileqt-Projekt

Die Dateien müsst ihr also aus dem Archiv in den "debian"-Ordner entpacken. Folgende Dateien müssen für jedes Projekt angepasst werden:

  • changelog: Hier könnt ihr zunächst einmal euren Projektnamen eintragen. Für spätere Versionen muss das changelog jeweils erweitert werden, und zwar über den Befehl "debchange". Genaueres dazu gibt es hier.
  • control: Hier muss zunächst Projektname und -beschreibung angepasst werden. In der Zeile "Maintainer:" sollte euer Name und E-Mail-Adresse stehen. Wichtig sind die Felder mit den Präfixen "XSBC-" bzw. "XB-". Um euer Paket später in das maemo-Repository zu bekommen (zur Installation über den Programmmanager), solltet ihr einen "XSBC-Bugtracker:" angeben. Die einfachste Möglichkeit ist eine Anmeldung eurer Anwendung bei "bugs.maemo.org", so wie es hier beschrieben ist. Anschliessend könnt ihr den Anwendungsnamen in die Beispiel-control-Datei in den "product="-Parameter eintragen. Die Felder "XB-Maemo-Icon-26:" und "XSBC-Maemo-Display-Name:" geben ein Icon und einen Namen für den Programmmanager auf dem N900 an. Wenn ihr diese Felder leer lasst, dann wird kein Icon verwendet und es erscheint der Name, wie er in der "Package:" Zeile steht. Das Icon muss die Größe 48x48 haben. Wie ihr den Icon-Code für die "control"-Datei erstellt, könnt ihr hier nachlesen. Wenn ihr kein Icon braucht dann könnt ihr das entsprechende Feld einfach aus "control" entfernen. Dieses Icon ist wie gesagt nur für den Programmmanager. Das Anwendungsicon für den Desktop haben wir im vierten Schritt abgehandelt.
  • copyright: Hier müsst hier halt euren Namen und die entsprechenden Copyright-Informationen eintragen.
  • files: In dieser Datei den Projektnamen ändern, bei späteren, neuen Versionen eurer Anwendung auch die Versionsnummer.
Das war es dann auch schon für die Vorbereitung der Paketierung. Eine genauere Beschreibung der einzelnen Dateien findet ihr beispielsweise hier.

Nun müsst ihr für den sechsten Schritt den gesamten Verzeichnisbaum in die virtuelle Maschine des SDKs kopieren. Also den VMWare Player anwerfen, warten bis das SDK gebootet wurde, dann das Projekt komplett in die Maschine kopieren; das sollte per Copy&Paste funktionieren, wenn ihr die "VMWare Tools" innerhalb der virtuellen Maschine installiert habt. Dort am Besten in den Pfad "/scratchbox/users/maemo/home/maemo", dann habt ihr aus Scratchbox gleich Zugriff darauf:



Anschließend startet ihr in der virtuellen Maschine ein Terminal. In diesem Terminal startet ihr Scratchbox mit dem Befehl "/scratchbox/login", in dieser Umgebung werden alle Maemo-Anwendungen kompiliert. Mit "sb-conf select FREMANTLE_ARMEL" wählt ihr innerhalb von Scratchbox das ARMEL-Target aus, so läuft die Anwendung dann später auf dem ARM-Prozessor des N900:

maemo@maemo-desktop:~$ /scratchbox/login 

Welcome to Scratchbox, the cross-compilation toolkit!

Use 'sb-menu' to change your compilation target.
See /scratchbox/doc/ for documentation.

[sbox-FREMANTLE_X86: ~] > sb-conf select FREMANTLE_ARMEL

Shell restarting...
[sbox-FREMANTLE_ARMEL: ~] >
Mit "cd mobileqt" ins Projektverzeichnis wechseln. Nun reicht ein einfaches "dpkg-buildpackage -rfakeroot" um das .deb-Paket zu erstellen:
[sbox-FREMANTLE_ARMEL: ~] > cd mobileqt/
[sbox-FREMANTLE_ARMEL: ~/mobileqt] > dpkg-buildpackage -rfakeroot  
dpkg-buildpackage: source package is mobileqt
dpkg-buildpackage: source version is 0.1-1
dpkg-buildpackage: source changed by Peter Bouda 
dpkg-buildpackage: host architecture armel
dpkg-buildpackage: source version without epoch 0.1-1
: Using Scratchbox tools to satisfy builddeps

... hier kommen viele Zeilen ...

dpkg-deb: ignoring 3 warnings about the control file(s)
 dpkg-genchanges
dpkg-genchanges: warning: unknown information field `Xb-Maemo-Icon-26' in input data in package's section of control info file
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload; Debian-native package (full source is included)
In dem Verzeichnis "über" dem Projektverzeichnis (im Beispiel: "/scratchbox/users/maemo/home/maemo") findet ihr jetzt u.a. eine Datei mit dem Namen "projektname_0.1-1_armel.deb". Glückwunsch: Dieses Paket kann sofort auf dem N900 installiert werden!

Im siebten Schritte installieren wir das Paket per "X Terminal" und dem "dpkg"-Kommandozeilentool auf das N900. Dazu muss der root-Zugang auf dem Gerät aktiviert sein, am einfachsten geht das per rootsh-Paket. Dann einfach die im sechsten Schritt erstellt .deb-Datei auf das Gerät kopieren (per USB, Bluetooth, SSH oder auf eine Speicherkarte). Ich kopiere die Datei meist per SSH nach "/home/user/MyDocs", dann findet man die Datei später auch einfach per Dateimanager (im Prinzip kann man das Paket auuh einfach per Klick im N900-Dateimanager installieren, für coole Hacker wie uns wäre das aber viel zu einfach). Auf dem Gerät das "X Terminal" starten und als erstes mit "sudo gainroot" zum Chef werden. Dann in das Verzeichnis wecheln, in dem die .deb-Datei liegt, und das Paket mit "dpkg -i projektname_0.1-1_armel.deb" installieren:

~ $ sudo gainroot
Root shell enabled

BusyBox v1.10.2 (Debian 3:1.10.2.legal-1osso26+0,5) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/home/user # cd MyDocs
/home/user/MyDocs # dpkg -i mobileqt_0.1-1_armel.deb
(Reading database ... 25458 files and directories currently installed.)
Unpacking mobileqt (from mobileqt_0.1-1_armel.deb) ...
Setting up mobileqt (0.1-1) ...
/home/user/MyDocs #
Fertig! Jetzt könnt ihr die Anwendung über den Anwendungsbildschirm starten:





Wahnsinn: ein leeres Hauptfenster auf dem N900, selbst programmiert und installiert! Bald mehr dazu, wie ihr das Fenster nun mit Inhalten füllt. :-) Die Anwendung kann übrigens jederzeit per "dpkg -r projektname" im Terminal oder über den Programmmanager wieder vom Gerät entfernt werden.

Soweit also zum ersten Tutorial über die Qt-Entwicklung hier auf mobileqt.de. Ich hoffe die Schritte waren verständlich erklärt und ihr konntet alles bei euch zu Hause nachvollziehen. Falls nicht: als Alternative kommt demnächst wohl MADDE in Frage, womit sich die Einstiegshürde deutlich senken wird. Über jede Rückmeldung zu diesem Tutorial würde ich mich sehr freuen! Hier noch der komplette Download der Beispielanwendung:

Download der kompletten Beispielanwendung inklusive aller Dateien

MeeGo fürs N900?

pbouda am 05. Mär 10:18

Die Spatzen scheinen es mittlerweile von den Dächern zu pfeifen: es wird wohl bald eine erste MeeGo-Version für Atom-Prozessoren und das N900 geben. Wir bleiben gespannt!

Tutorial: Wie man ein Qt-Projekt für Maemo erstellt (Teil 1)

pbouda am 04. Mär 15:53

Hier mal kurz und knapp, wie ihr möglichst schnell zu einem Qt-Projekt kommt, das ihr als Debian-Paket auf dem N900 installieren könnt: definitiv das kompakteste Tutorial, das es zu diesem Thema gibt. Als Voraussetzung müsst ihr zunächst einmal den Qt Creator installieren, außerdem sollte ihr das offizielle Maemo-SDK als virtuelles Image installiert und startklar haben (ihr braucht die Desktop-Version des SDKs, also die Datei "Maemo_Ubuntu_Intrepid_Desktop_SDK_Virtual_Image_Final.7z"). Das SDK ist ein virtuelles Image, ihr startet das Entwicklungsbetriebssystem am Besten mit dem VMWare Player. Der Qt Creator-Download beinhaltet im Übrigen alle nötigen Bibliotheken, das Qt-SDK müsst ihr also nicht separat installieren.

Ich werde das Tutorial in zwei Teilen veröffentlichen, der erste Teil beschäftigt sich mit der Erstellung des Qt-Projekts, der zweite dann mit der Paketerstellung für das N900.

Als erstes erstellt ihr in eurem Projektordner drei Unterordner: "src" (für den ganzen Quellcode), "debian" (für die Debian-Daten) und "data" (für Icons usw.):



Als zweites legt ihr das Projekt mit dem Qt Creator an. Dieser wird also gestartet und dann über "Datei->Neu" ein neues Projekt angelegt. Im ersten Dialog wählt ihr als Projekttyp "Qt4-Gui-Anwendung":



Im zweiten Dialog gebt ihr den Projektnamen ein und wählt das oben erstellte "src"-Verzeichnis als "Erzeugen in:"-Pfad:



Die folgenden beiden Dialoge für die zu integrierenden Module und den Klassennamen für das Hauptfenster könnt ihr bei den vorgegebenen Einstellungen belassen. Am Schlusss auf "Abschließen" klicken, und Qt Creator erstellt euch alle nötigen Projektdateien. Blöderweise macht er das aber in einem "Projektname"-Unterordner in "src". Alle Dateien sollen aber direkt im Verzeichnis "src" liegen. Also schließt ihr den Qt Creator erst einmal wieder, und kopiert alle Dateien aus dem "Projektname"-Unterordner direkt nach "src". Der "Projektname"-Unterordner kann dann gelöscht werden. Bei dieser Gelegenheit nennt ihr die "Projektname.pro"-Datei um nach "src.pro". Nach diesem Schritt sollte euer Projektbaum so ausschauen:



Als dritten Schritt erstellt ihr in eurem Haupt-Projektordner (im Beispiel der Ordner "mobileqt") eine Datei mit dem Namen "projektname.pro" (klein geschrieben; im Beispiel "mobileqt.pro"). Diese Datei füllt ihr mit folgendem Inhalt, am Besten mit einem einfache Texteditor wie "gedit" o.ä.:

QMAKEVERSION = $$[QMAKE_VERSION]
ISQT4 = $$find(QMAKEVERSION, ^[2-9])
isEmpty( ISQT4 ) {
error("Use the qmake include with Qt4.4 or greater, on Debian that is qmake-qt4");
}

TEMPLATE = subdirs
SUBDIRS  = src

Diese Datei könnt ihr jetzt wieder mit dem Qt Creator öffnen, ein Doppelklick auf "projektname.pro" sollte das bewerkstelligen.

Im vierten Schritt sollte euer Qt Creator zunächst folgendermaßen ausschauen:



Mit dem Play-Button unten links könnt ihr das Projekt starten, es sollte ein leeres Hauptfenster erscheinen. Für den Anfang reicht uns das, wir werden das Fenster in anderen Tutorials mit Inhalt und Menü versehen. Um das Programm später auf dem N900 installieren zu können muss jetzt die "src.pro" angepasst werden. Mit einem beherzten Doppelklick auf den entsprechenden Eintrag unter "projektname->src->scr.pro" im Qt Creator öffnet ihr die Datei zum Editieren und fügt folgenden Code hinzu:

unix {
    #VARIABLES
    isEmpty(PREFIX) {
        PREFIX = /usr/local
    }

    BINDIR = $$PREFIX/bin
    DATADIR =$$PREFIX/share

    DEFINES += DATADIR=\"$$DATADIR\" PKGDATADIR=\"$$PKGDATADIR\"

    #MAKE INSTALL

    INSTALLS += target desktop scalable

    target.path =$$BINDIR

    desktop.path = $$DATADIR/applications/hildon
    desktop.files += ../data/$${TARGET}.desktop

    scalable.path = $$DATADIR/icons/hicolor/scalable/hildon
    scalable.files += ../data/scalable/$${TARGET}.png

}
Diese Anweisungen werden später, nach Erstellung des Debian-Pakets, das kompilierte Programm, eine Desktop-Datei und ein Icon auf das Gerät installieren. Dazu müsst ihr noch im "data"-Verzeichnis eine Datei "projektname.desktop" erstellen, die in etwa folgenden Inhalt haben sollte:
[Desktop Entry]
Encoding=UTF-8
Version=0.1
Type=Application
Name=mobileqt
Exec=mobileqt
Icon=mobileqt
X-HildonDesk-ShowInToolbar=true
X-Osso-Type=application/x-executable
Unter "data/scalable" legt ihr das Icon für die Anwendung als .png- oder .jpg-Datei ab, die Größe sollte 64x64 Pixel betragen. Am Ende dieses ersten Teils des Tutorials solltet ihr dann folgende Projektstruktur vor euch haben:



Dieses war der erste Teil des Tutorials. Im zweiten Teil werden wir die Anwendung für die Debian-Paketierung vorbereiten, das Ganze dann in Scratchbox (auf dem virtuellen Image) kompilieren und packen und anschließend auf das N900 installieren.

Hier geht's direkt zum zweiten Teil des Tutorials

Verbesserte Texteingabe auf dem N900

pbouda am 04. Mär 12:28

Da hat sich jemand die Mühe gemacht, und eine verbesserte Texteingabe für GTK+ auf mobilen Geräten entwickelt. Nach meiner Erfahrung ist die Textvorhersage auf dem N900 tatsächlich unbrauchbar, vor allem weil automatisch alle neuen Wörter gespeichert werden und irgendwann haufenweise Tippfehler vorgeschlagen werden. Auf dem kleinen Keyboard mache ich recht häufig Fehler, gerade wenn ich schnell schreiben will. Jedenfalls ein interessanter Ansatz, vielleicht eine Idee auch für Qt-Widgets.

Gesichtserkennung auf dem N900

pbouda am 04. Mär 12:19

BurgerFace ist ein kleines Technologiedemo zur Gesichtserkennung auf dem N900. Nett gemacht und die Gesichtserkennung funktioniert recht ordentlich. Schwierig ist die Steuerung damit trotzdem, zumindest für mich. Hier ist das Video dazu:

QWebKit als separates Packet

pbouda am 03. Mär 13:00

Ich hatte in meinem letzten Post ja schon beschrieben, dass QWebKit ein zentraler Baustein in Qt ist und noch wichtiger werden wird, wenn ich Nokias Marschrichtung richtig deute. Passend dazu wird QWebKit ab sofort auch separat veröffentlicht. Macht Sinn, da so neue Versionen schneller unabhängig von Qt auf den Markt gebracht werden können.

Vorläufiges zu MeeGo

pbouda am 03. Mär 12:54

MeeGo wird also nun das neue mobile Betriebssystem von Nokia und Intel heißen; nach dem oFono-Projekt jetzt also die zweite große Zusammenarbeit zwischen den beiden Firmen. Bei MeeGo handelt es sich um einen Zusammenschluss zwischen Maemo (dem Linux von Nokia) und Moblin (dem Intel-Linux) und, was für mich das Entscheidenste an der Sache ist, wird ein komplett Qt-basiertes UI haben, wie es ja auch schon für geplant war. Der größte Diskussionspukt unter Entwicklern war übrigens das zu verwendende Paketformat für MeeGo: hier gab es die (Intel-)RPM-Fraktion, die es mit einer skeptischen (Nokia-)-DEB-Gruppe zu tun hatte. Offensichtlich wird es aber wohl bei der offiziellen Vorgabe RPM bleiben. Genaueres zu MeeGo lassen sich in Nokia offizieller Software-Strategie sowie in einem hervorragenden Artikel von Zchydem nachlesen.

Für Qt-Entwickler gibt es ein interessantes Bild, das in den meisten Beiträgen auftauchte:

Qt wird also die zentrale Entwicklungsumgebung für MeeGo. Für die breite Masse der Entwickler sieht Nokia die "Web RunTime" (WRT) vor, die auf der Qt-Webkit-Implementierung basiert. Schon jetzt können ja Qt-Widgets in QWebKit per HTML dargestellt werden, hier bieten sich in der WRT in Zukunft interessante Anwendungsmöglichkeiten (Notiz an selbst: Zeit also für einen baldigen Artikel zu QWebKit...). Rechen- und Hardwareintensive wie Spiele, Fotoapplikationen etc. sollen nativ in Qt bzw. "hybrid" entwickelt werden.

Was bedeutet das nun für den Technologiebegeisterten Qt-Entwickler? Nun, aus meiner Sicht würde ich mir ein paar der zukünftige Kerntechnologien näher anschauen:

  • QML gehört mit Sicherheit dazu, evtl. sogar als Haupt-UI-Sprache für die WRT und Qt
  • aufbauend darauf kommt mit Qt Quick eine Komplettlösung für Qt 4.7 und den Qt Creator
  • QWebKit wird in Zukunft noch einer wichtigere Rolle spielen
  • Qt Mobility und die Ovi Services werden vermutlich integriert werden
  • Dabei wiederum werden GPS-Daten und Karten die Hauptrolle für zukünftige Dienste und UIs sein, wenn ich dieses Interview richtig deute; vielleicht wars aber nur eine Ausrede für den ja so sehr kritisierten Kauf von Navteq
Jedenfalls würde ich das mal als spannende Aussichten für jeden Qt-Entwickler bezeichnen!