Nokia N900 und das liebe Programmieren (Teil 2)

Vor kurzem habe ich einen Kommentar zu meinem „Wunderwuzzi“ (=N900) verfasst, indem ich mir selbst die Frage stellte welche meiner Programmierkenntnisse ich heranziehen soll um dem N900 dass an Software zu verpassen die noch nicht geschrieben, aber mir immerhin schon im Kopf herumgeistert.

Meine damalige Erkenntnis war : „Fang nicht mit QT an wenn Du keine Ahnung davon hast…“

Dieses Statement darf ich hier und jetzt widerrufen.

Meine heutigen Anforderungen an Softwareerstellung sind mittlerweile sehr umfangreich, was sich in meiner täglichen Arbeit fast immer in einem PHP-Projekt niederschlug:

 

Die Software –

  • muss unter meiner Kontrolle stehen
  • muss auf mehreren Zielplattformen laufen, da ich meinen Kunden nominal nicht vorschreibe mit welchem Betriebssystem sie arbeiten
  • darf sich nicht all zu kompliziert bei der Erstellung anstellen – Das Entwicklungswerkzeug soll mich tunlichst unterstützen.
  • muss skalierbar an die Bedürfnisse angepasst werden können, ohne alles neu aufzurollen
  • soll offen gegenüber Datenaustausch und Datenverwaltung sein

Bevor ihr (oder andere) jetzt aufschreien: JA – man kann auch PHP-Programme sicher (!) erstellen – ist anfänglich Arbeit, aber zahlt sich aus. Und JA – das trifft auf viele andere Frameworks und/oder Programmiersprachen zu. Meine Wahl war in den letzten Jahren einfach PHP, da es all diese Anforderungen für mich erfüllte.

Nun stand ich vor dem Problem dass GTK+ & C++ nicht so wahnsinnig toll in einem Guß verwaltet/entwickelt werden können. Man könnte auch meinen dass das viele schreiben das in dieser Kombination manche anderen Programmierer begeistert. Mich eher nicht ….

Nun hatte ich in meiner Auswahlzeit viele unterschiedliche Tools und Verfahren durch getestet (Eclipse / Quanta / KDevelop / Glade / …), aber nach kurzer Einarbeit so richtig begeistert hat mich eigentlich nur der QT-Creator von Nokia. DAS ist mal ein Softwareentwicklungstool das mich bei der Erstellung so gut als (bis dato) möglich unterstützt.

Einfache Fenster/Dialoge sind mit wenigen Klicks erstellt und vor allem das Prototyping ist unglaublich schnell erledigt. Die Kontrolle über meinen geschriebenen Code in diesem Unterstützungsgrad war tatsächlich ein Erlebnis. Ist eine Variable in der Hektik (z.b: Gross/Kleinschreibung) falsch geschrieben, erkennt man das sofort, da alle anderen Variablenstellen wo diese vorkommt Grau hinterlegt werden. Passiert das nicht, so ist die Variable einfach falsch geschrieben – absolut cool. DAS nenn ich persönlich Unterstützung bei der Entwicklung.

Womit ich mir echt schwer getan habe (und was mir aktuell und wahrscheinlich in 2 Jahren noch) Probleme bereitet ist die richtige Kombination von Aufrufen herauszufinden. Die Anzahl an vorgefertigten Widgets und Klassen ist in QT echt atemberaubend. Die Aussicht darauf das diese Software dann auch auf Windows & MAC läuft (was ich zugestandenerweise noch nicht probier habe) ist nochmal das Tüpfelchen auf dem berühmten „I“.

Das Crosscompilieren zum N900 klappt jedenfalls sensationell. Demo gefällig (links unter Linux direkt aus dem QT-Creator; rechts in der SDK, was ziemlich genauso am N900 aussieht) ?

Startschirm unter Linux Startschirm in der Maemo-SDK
Kategorieeditor unter Linux Kategorieeditor Maemo-SDK
Eintrag ändern

Eintrag ändern (Maemo-SDK)

Hier noch ein paar Screenshots vom Editor

GUI-Designer im QT-Creator

Links sieht man den GUI-Designer, welcher alle Klassen anlegt (bzw. anlegen kann, wenn man will oder nicht wenn nicht).

Das schöne daran ist, dass die Variablennamen und alle Entitäten auch während der Codeerstellung erkannt werden und zur Autovervollständigung zu Verfügung stehen.

Rechts sieht man den Grossteil des Sourceditors . Das geöffnete Projekt ist die QT-Umsetzung des MyMenu von Manzn, welches ich die Ehre habe als Sargnagel meines Lebensabschnittes in eine C++ Umgebung zu bringen 🙂 Codeeditor-1
Editor-2

Links sieht man nochmal einen Ausschnitt des Codeeditors mit hervorgehobener Variable – Gerade dieses Feature (gemeinsam mit der Autovervollständigung) haben mich vom Start weg begeistert.

Zu guter letzt darf ich noch auf den eigentlichen Stolperstein eingehen: QT – DAS Toolkit.

Anfänglich etwas irritiert durch die Lizenzpolitik (hat sich wieder relativiert, da QT nunmehr unter LGPL steht) und durch die „Macht“ die Nokia als Besitzer hat, hatte ich zugegebenermaßen etwas Scheu dieses Toolkit zu verwenden. Nachdem ich den rechtlichen Aspekt und die Zugeständnisse von Nokia analysiert hatte war für mich persönlich der Weg offen meine Zeit in QT zu investieren (da die anderen Entwicklungswerkzeuge einfach nicht zufriedenstellend waren – siehe oben).

Nach nunmehr 4 Wochen (Mann – wie die Zeit vergeht) bin ich auf einem Wissenstand der mich dazu veranlasst diese Entwicklungsplattform für meine zukünftigen Projekte, welche keine Webumsetzung zulassen, auszuwählen. Nicht zuletzt für die Projekte die ich am N900 gedenke umzusetzen.

Jeder der sich mit ähnlichen Gedanken quält (sei es für das N900 oder für Plattformübergreifende Entwicklung) kann ich nur ans Herz legen: Schaut euch QT an – gerade die Unterstützung die Nokia gewährt (mehr in Software & Doku, als in Support !!!) ist es eine zukunftssichere und richtungsweisende Entwicklungsplattform.

Ach ja:

Für Anregungen welche Entwicklungsplattform das noch bietet bin ich jederzeit offen ….

 

 

 

7 Kommentare

  1. Servus Tom,

    ist dieses Project MyMenu auch in der Source für die Allgemeinheit verfügbar?
    Oder gar das QT Projekt?

    Viele herzlichste Grüße
    Kurt

    • aus jetziger Sicht werden wir natürlichen das Projekt Online stellen – es ist halt momentan „nur“ eine Spielwiese (die schon ganz gut funktioniert) zum erlernen von QT und der Eigenheiten des Framework. Da steht noch so viel Müll drinnen – das will ich keinem antun 🙂
      Konzeptionell tut sich natürlich auch laufend was, was für andere Programmierer (abgesehen vom Müll) wahrscheinlich ziemlich nervig wäre. Wenn das Grundgerüst mal halbwegs stabil und herzeigbar ist (ohne das wir dafür geköpft werden) wird es Online gestellt….

      Versprochen ….

  2. Hallo Tom,
    ich spiele mit dem Gedanken selbst was für mein N900 zu programmieren, habe aber das letzte mal vor 25 jahren in basic programmiert.
    Was meinst du dazu – soll ich es wagen?
    Was brauche ich alles dazu?
    Hast du links/tools etc. für mich?
    Oder soll ich es lieber bleiben lassen?

    Gruß Bernd

    • was braucht man um zu starten….

      Startseite deiner “Expedition” : http://qt.nokia.com/products/developer-tools
      Runterladen : http://qt.nokia.com/downloads/downloads#lgpl

      Darfs was zu lesen sein ? :
      QT4 Gui Entwicklung mit C++ Das umfassende Handbuch – Jürgen Wolf
      C++ for Dummies 5th Edition (gibts auch in Deutsch)

      Ach ja – die wichtigste Zutat : Zeit – Zeit – Zeit – Zeit ….

      Wenn Du von Basic kommst, ist ev. PyQT etwas für Dich.
      http://de.wikipedia.org/wiki/Python_(Programmiersprache)
      Nicht das ich es selber probiert hätte, aber mit Python sind schon viele “unbedarfte” zurechtgekommen.

      Und nein – ich werde mir kein Urteil darüber anmaßen ob Du es lassen sollst oder nicht – Ich hab unzählige Mitglieder in Entwicklungsgruppen erlebt die keine gerade Zeile Programmcode schreiben können, aber unglaublich Kreativ in anderen Bereichen (Doku; Grafik; Ideen an sich) waren. Jeder findet sein Plätzchen 🙂

      • Danke Tom,
        wenn das mit PyQT auch auf dem N900 läuft würde ich es vielleicht damit probieren.
        Ich melde mich wieder.

        Gruß Bernd

  3. Hallo,

    ich bin beim Googeln hier auf diese Seite gestoßen. Ich würde auch gerne für mein Nokia e71 etwas programmmieren.
    Qt4 ist für mich kein Neuland aber ich finde den grundsaätzlichen Anfang nicht. Wo/wie compiliere ich Apps. für mein Handy?
    Was ist bei der App. ENtwicklung zu beachten? Gibt es da einen Grundlegende Info irgendwo im Netzt? WIe gesagt C++ und Qt4 ist nicht mein Problem.

    Danke & Gruß
    Oli

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert