Idee zur Windows Mobile Applikation

Es gibt Neuigkeiten an der Entwicklungsfront mit dem Compact Framework 2.0 SP 1 und SharpDevelop. Anfangs sträubte sich SharpDevelop noch etwas das Compact Framework zu erkennen, aus irgendeinem Grund hat es sich dann aber nach diversen Versuchen und Forenbesuchen anders entschieden. Genau sagen, woran es lag, kann ich nicht. Ich denke, dass es an der Installationsreihenfolge liegt.

Man sollte zuerst die CompactFramework Runtimes installieren, danach das Windows Mobile 6 SDK und im Anschluß die gewünschten SDKs für das jeweilige Framework.

Achtung: Wenn man sich auf die Suche nach dem CompactFramework SDK begibt, wird man viele Treffer finden. Es sei hier aber gesagt, dass man das CompactFramework SDK mit den „normalen“ SDKs bekommt. So wird bei der Installation des .Net 2.0 SDK auch das zugehörige CompactFramework SDK auf die Platte kopiert.

Die erste kleine Demo-Applikation (klassisch >Hello World< im Fenster) war in 2 Minuten mit .Net 2.0 geschrieben. Ältere Versionen von Windows Mobile müssen zuerst mit dem .Net Framework in der richtigen Version versorgt werden (Deployment über ActiveSync), Windows Mobile 6 bringt aber bereits alles mit.

Was ist nun die Idee für meine erste Anwendung unter Windows Mobile ? Sie nennt sich „PhoneEventNotifier“ und soll die akustische Signalisierung eines verpassten Ereignisses übernehmen. Der XDA comet signalisiert ein solches Ereignis über eine Status-LED oben am Gerät, diese blinkt dann rot. Dies soll nun noch durch eine Software unterstützt werden, die einen einstellbaren Ton in einem einstellbaren Intervall wiedergibt. So machte das nämlich mein Motorola V3i (habe ich übrigens verkauft mittlerweile) – auch wenn ansonsten recht wenig innovativ war – meiner Meinung nach. An diese Art der Benachrichtigung hatte ich mich im Laufe der zwei Jahre, in denen ich das V3i hatte, gewöhnt und vermisse diese Funktionalität nun etwas bei meinem comet.

Wie soll die Software nun aussehen ? Nun, sie soll im natürlich Hintergrund laufen und mittels eines Timers gesteuert werden. Es soll natürlich immer nur auf ein einziges verpasstes Ereignis reagiert werden, nicht dass sich verpasste Ereignisse kumulieren und das Gerät zig-Mal in verschiedenen Intervallen akustische Signale ausgibt. Ebenso soll eine Zeitspanne einstellbar sein, in der das Gerät keine Signale ausgeben soll (quiet period), bspw. nachts. Die Einstellungen sollen ganz unspektakulär in einem kleinen Fenster (Tab) im Programm vorgenommen werden können.

Ansonsten reift die Idee und ich hoffe, dass ich bald erste Ergebnisse respektive Screenshots liefern kann (Hauptproblem ist wie immer die Zeit für so etwas zu erübrigen 🙁 ). Ich halte die geneigten Leser natürlich auf dem Laufenden 😉

Akkulaufzeit XDA comet / Anwendungsentwicklung [Update]

Generell möchte ich noch sagen, dass es natürlich stark von der Dauer eines Telefonats, von WLAN oder anderen Schnittstellen abhängt, wie lange das XDA comet durchhalten kann. Ich persönlich bin nicht der Dauertelefonierer, wobei ein Gespräch durchaus einmal 30-45 Minuten dauern kann. Das ist aber eher die Ausnahme. Zusätzlich schalte ich immer alle Schnittstellen ab, die ich nicht brauche (etwa WLAN und Bluetooth).

Wer das natürlich nicht macht bzw. längere Telefonate führt, wird meinen bisherigen Rekord von 6 Tagen nicht erreichen. Also betrachtet meine Aussagen bitte realistisch und mit Augenmaß. Es ist lediglich ein Wert, was machbar ist, wenn man gewisse Dinge berücksichtigt 😉

Gestern habe ich übrigens mein erstes Programm auf dem comet zum Laufen gebracht 😀 Es ist zwar nur ein einfaches „Hello World“, aber für 2 Minuten Arbeit ist es ausreichend 😉 Details folgen noch…

Akkulaufzeit XDA comet / Anwendungsentwicklung

Anfangs war ich ja etwas von der Akkulaufzeit meines XDA comet enttäuscht, aber dann erinnerte ich mich an die „Konditionierung“ von Akkumulatoren. Es steht natürlich auch so im Handbuch drin, aber wer liest das denn schon genau durch ? Learning-by-doing oder „rumspielen“ lautet die Devise 😉

Nun nach ca. 2 Wochen mit meinem comet und mehreren Ladezyklen muss ich sagen, dass sich die Laufzeit bei normalem Gebrauch deutlich verbessert hat. Am Anfang hatte ich es nämlich geschafft durch häufiges Spielen mit dem Gerät und seinen Möglichkeiten den Akku innerhalb eines Tages zu leeren. Ok, ich muss dazu sagen, dass ich bei der ersten Warnung etwas die Nerven verloren hatte und den comet gleich an die Stromversorgung angestöpselt habe. Man muss sich aber keinerlei Gedanken machen vor Datenverlust o.ä., da die Daten erhalten bleiben. Daher habe ich das Gerät auch schon zweimal komplett entladen und neu aufgeladen. Mittlerweile hält der comet so um die 6 Tage durch – bei normalem Gebrauch wie gesagt.

Normaler Gebrauch heißt:

  • Telefonieren
  • SMS
  • MMS
  • WLAN/Surfen
  • GPRS für die Synchronisation mit dem o2 Server
  • Kalender
  • Radio
  • Spielen

Der Schwerpunkt der Nutzung liegt natürlich auf Telefonieren, SMS und Kalender 🙂

Zum Thema Anwendungsentwicklung muss ich leider sagen, dass ich noch nicht weiter gekommen bin, da gestern die Download-Server bei Microsoft wohl gesponnen haben 🙁 So war es mir nicht möglich das .Net 2.0 SDK geschweige denn das Windows SDK (für .Net 3.5) herunter zu laden. Ich werde es aber erneut versuchen, wenn ich die Zeit dazu finde…

Windows Mobile Anwendungen entwickeln [Update]

Dank des Kommentars von Thomas zu meinem gestrigen Beitrag:

„Meines Wissens unterstützt SharpDevelop (http://www.icsharpcode.net/OpenSource/SD/Default.aspx) mittlerweile den Compact-Framework.[…]“

habe ich mich kurz mit den Foren zu SharpDevelop beschäftigt und festgestellt, dass hier das Compact Framework auch unterstützt wird, d.h. Anwendungen sind mit dieser offenen IDE kostenlos zu entwickeln 😀

SharpDevelop kannte ich bereits und hatte mir damals die Version 1.x angesehen, aber seitdem habe ich mich nicht mehr damit befasst 🙁

Ich werde nun einmal testen, wie gut das funktioniert und ob man auch den Emulator aus Microsofts Windows Mobile 6 SDK wie mit Visual Studio (oder so ähnlich) benutzen kann. Weitere Berichte werden folgen 😉

Windows Mobile Anwendungen entwickeln

Nachdem ich ja vor ca. 1 1/2 Wochen meinen o2 XDA comet erhalten hatte, stellten sich mir ziemlich schnell folgende Fragen:

  1. Welche nützlichen Anwendungen existieren für Windows Mobile 6 ?
  2. Wie entwickele ich eigene Anwendungen für Windows Mobile 6 ?

Zuerst möchte ich einen kleinen Exkurs zum Thema Windows Mobile 6 vor die Beantwortung dieser Fragen schalten.

Windows Mobile 6 Professional ist auf dem XDA comet vorinstalliert. Hierbei habe ich dann in Erfahrung gebracht, dass auch hier Microsofts Produktpolitik voll ausgelebt wird. Es existieren die Varianten

  • Windows Mobile 6 Classic
  • Windows Mobile 6 Standard
  • Windows Mobile 6 Professional

Es existiert auch Windows Mobile 6.1, das es aber bisher nicht als Update gibt. Nähere Informationen zu Windows Mobile und dessen Vorgänger-Versionen kann auf Wikipedia nachlesen.

Nun aber zurück zu der Frage, welche nützlichen Anwendungen es denn so für Windows Mobile gibt. Ich vermisste als erstes die Möglichkeit dem comet Gesten-Steuerung beizubringen, die à la HTC eigener Anwendungen funktionieren sollte, wobei die Aktion aber frei definierbar sein sollte. Gefunden habe ich keine passende Anwendung, aber mir fiel sogleich etwas unangenehm ins Auge: fast jede noch so kleine Anwendung für Windows Mobile kostet etwas. Selbst für einfachste Anwendungen wird ein Obulus verlangt. Auf sourceforge.net habe ich zwar ein paar kostenlose OSS-Anwendungen gefunden, aber keine, die ich jetzt sofort gebraucht hätte. Ich werde mich diesem Thema aber noch ausführlicher widmen, derzeit stehe ich ja noch am Anfang meiner Recherchen 😉

Da ich von Berufs wegen immer darn interessiert bin mich auf dem Gebiet der Programmierung weiter zu entwickeln, habe ich mir nach dem kleinen Rückschlag bzgl. nützlicher Anwendungen der Frage zugewandt, wie man eigene Anwendungen für Windows Mobile Devices schreiben kann. Um schnell zu einem Ergebnis zu kommen, hatte ich mich für das .NET Compact Framework entschieden, das es als Redistributable auch bei Microsoft kostenlos zum Download gibt. Außerdem kommt Windows Mobile 6 mit dem entsprechenden Framework im ROM bereits daher. Das Compact Framework war schnell installiert, ActiveSync war zuvor schon installiert (wurde mit dem comet mitgeliefert). Standardmäßig benutze ich die freien Visual Studio Varianten (auch Express Edition genannt), fand aber schnell heraus, dass genau diese nicht unterstützt werden, um mobile Anwendungen zu entwickeln. An Ressourcen mangelt es generell nicht – das ist ja auch klar, zumal Microsoft ja will, dass Anwendungen für dieses OS entwickelt werden, aber die Hürde ist dennoch hoch gelegt: es wird Microsoft Visual Studio 2005 empfohlen. Diese Software kostet in der Standard-Edition stolze 300 Euro ! Ok, es gibt Trial-Versionen, aber das löst das Problem ja nicht auf Dauer. Wenn man aber nicht völlig auf Komfort (Intelli-Sense, WYSIWYG-Editor, …) verzichten will, kommt hier wohl nicht drum herum. Klar, es gibt Anleitungen zur Compilierung auf Kommandozeile, aber ist das wirklich noch zeitgemäß ? Wir sprechen hier ja nicht von einem einfachen „make“ unter Linux, nein, auch dort werden die Anwendungen sicher nicht per vi entwickelt.

Derzeit ist dieses Vorhaben also erst einmal auf Eis gelegt bis ich eine Lösung gefunden habe, komfortabel entwickeln zu können, dabei keine Unsummen zu investieren und dabei noch Spaß zu haben. Die Ressourcen von Microsoft möchte ich euch dennoch an dieser Stelle bereits nicht vorenthalten:

Windows Mobile für Entwickler (DE)
Channel 9 MobileDeveloper wiki (EN) :: Beginner’s Guide (EN)

Folgende Komponenten sind für die Anwendungsentwicklung sinnvoll (benötigte, optionale sind kursiv):

– Visual Studio 2005
– Windows Mobile 6 SDKs
– .Net Compact Framework (min. 2.0 SP1)

Unabhängig hiervon werde ich noch einen Erfahrungs-Bericht zum o2 XDA comet verfassen. Natürlich werde ich euch auch über meine weiteren Bemühungen bzgl. Anwendungs-Entwicklung auf dem Laufenden halten.