1 Einleitung
1.1 Die Beispiele zum Buch
Alle in diesem Buch verwendeten Beispiele liegen in meinem GitHub-Account unter http://github.com/dotnetautor/WP8Kochbuch. Für einen leichteren Zugriff habe ich folgenden Kurz-URL erstellt. http://bit.ly/WP8Buch.
Abbildung 1.1: Beispiele auf der GitHub-Seite
1.1.1 Beispiel als Zip-Archiv laden
Auf der Startseite befindet sich die Schaltfläche Download Zip. Diese lädt ein komplettes Archiv mit allen Beispielen auf Ihren Computer. Öffnen Sie vor dem Entpacken die Eigenschaften der Datei (rechte Maustaste im Explorer ? Eigenschaften) und lassen Sie diesen Download auf Ihrem Computer als „vertrauenswürdige Datei“ zu.
Abbildung 1.2: Zulassen des Downloads auf dem Computer
Entpacken Sie das Archiv in ein Verzeichnis Ihrer Wahl, z. B. C:\WP8Kochbuch.
1.1.2 GitHub-Windows-Client
Alternativ können Sie den kostenfreien GitHub-Windows-Client unter http://windows.github.com/ herunterladen. Dieser Client ermöglicht es, die Beispiele direkt aus dem Git Repository auf Ihre lokale Festplatte zu „klonen“. Bevor Sie jedoch diese Methode verwenden können, müssen Sie zuerst einen Account bei GitHub registrieren, mit dem Sie sich im Client anmelden können.
Nach der Installation und Einrichtung eines Root-Verzeichnisses für alle Git-Repositories können Sie die Schaltfläche Clone in Desktop verwenden, wenn Sie auf der GitHub-Webseite mit Ihrem GitHub-Account angemeldet sind. Je nach Browser werden Sie ggf. gefragt, ob Sie die App zulassen möchten.
Abbildung 1.3: Abfrage einer externen Protokollanforderung in Chrome
Nach dem Starten der App beginnt der GitHub-Client automatisch mit der Übertragung des Repositories auf Ihre Festplatte.
Abbildung 1.4: GitHub Repository in dem GitHub-Client für Windows
1.2 Die Windows-Phone-8-Plattform
In diesem Abschnitt wird die historische Entwicklung der Windows-Phone-Plattform bis zur aktuellen Version Windows Phone 8 beschrieben.
1.2.1 Hardware der Windows-8-Plattform
Mit der Einführung von Windows Phone 7 wurde eine einheitliche Plattform geschaffen. Diese Plattform wird auch Hardware Foundation genannt. Alle Geräte, auf denen das Betriebssystem Windows Phone 7 laufen soll, müssen folgende minimale Anforderungen erfüllen.
Feature | Hardwareanforderung |
Buttons | Sechs unabhängige Buttons: Start, Zurück, Suchen, DualState-Kamera, Lautstärke sowie Power/Sleep |
Touchscreen | Kapazitives Multitouch mit mindestens vier Punkten |
Auflösung | WVGA 800 x 480 Punkte |
Prozessor | ARM v7 Cortex/Scorpion – Snapdragon |
Graphic | DirectX9 rendering-capable GPU |
Netzwerk | Mobilfunk (UMTS/GPRS/GSM) und WLAN |
Speicher | Mindestens 256 MB RAM sowie mindestens 8 GB Flash-Speicher |
Sensoren | Beschleunigungssensor, Umgebungslicht, Annährung |
Tabelle 1.1: Übersicht der Mindestanforderungen an ein Windows Phone 7
Mit dem Mango-Release (SDK 7.1 / 7.1.1) sind weitere optionale Sensoren dazugekommen, um neue Geräte mit zusätzlicher Hardware zu unterstützen. Ferner wurden mit der Einführung der so genannten Low Memory Devices die Mindestanforderungen wiederum aufgeweicht, so wurden die Kamera und das A-GPS Device optional.
Optionale Features | Hardwareanforderung |
Sensoren | A-GPS, Kompass, Gyroskope |
Kamera | Primäre Kamera (>=5 Mpx) Frontkamera (>=1,3 Mpx) |
Tabelle 1.2: Optionale Features der Windows-Phone-7.1-Plattform
Profitipp: Die Einführung von optionalen Features hat zur Folge, dass bei der Entwicklung einer App damit zu rechnen ist, das diese App auf einem Gerät laufen könnte, welche das eine oder andere Feature nicht unterstützt. Um Abstürze zu vermeiden, die durch Ansprechen von nicht vorhandener Hardware verursacht werden können, empfiehlt es sich, vor der Nutzung eines Sensors zunächst sicherzustellen, dass dieser in dem Gerät vorhanden ist. Weitere Details dazu finden Sie bei der Beschreibung der jeweiligen Sensoren.
Auf der Windows-Phone-8-Plattform wurden weitere Features eingeführt. Neben der bereits vorhandenen Auflösung sind zwei neue Auflösungen WXVGA (1280 x 768) und „True-720p“ (1280 x 720) hinzugekommen.
Abbildung 1.5: Vergleich der verschiedenen Auflösungen
Weiterhin ist die Unterstützung für Multikernprozessoren hinzugekommen. Da diese Unterstützung vor allem durch einen gemeinsamen Betriebssystemkern mit Windows 8 bedingt ist, kann auch Windows Phone 8 bis zu 64 Prozessorkerne unterstützen. Ferner kam die Unterstützung von SD-Karten in den Größen 16 GB, 32 GB und 64 GB dazu. Auf der externen Speicherkarte können neben Bildern, Musik und Videos auch spezielle Installationspakete für Apps abgelegt werden.
Hinweis: Apps können nicht auf die Speicherkarte, sondern nur von der Speicherkarte auf das Telefon installiert werden. Dafür müssen die Apps in einem für das Installieren von der Speicherkarte geeignetem Format vorliegen.
Abbildung 1.6: Multicore und SD-Kartenunterstützung für Windows Phone 8
Im Bereich Kommunikation werden mit der Einführung von Windows Phone 8 Near Field Communication (NFC) sowie Bluetooth unterstützt. Weitere Details zur Verwendung entsprechender Kommunikations-APIs erhalten Sie im Kapitel „Kommunikation“.
1.2.2 Windows 8 Shared Core
Die Einführung von Windows 8 hatte auch Auswirkungen auf die Windows-Phone-8-Plattform. Beide neuen Plattformen basieren auf einem gemeinsamen Systemkern, der auch kurz Windows-8-Plattform genannt wird.
Hinweis: Wenn in diesem Buch die Rede von Windows-8-Plattform ist, ist immer die gemeinsame Plattform gemeint, wenn nichts anderes gesagt wird.
Windows Phone 7.x basiert auf dem Systemkern von Windows CE 6. Darauf aufbauend befinden sich die Plattformdienste, die unter anderem für die Darstellung der Benutzeroberfläche (UI), die Integration in die Cloud sowie das Anwendungsmodell verantwortlich sind.
Der in Silverlight oder XNA entwickelte Programmcode wird innerhalb einer Sandbox ausgeführt, welche die Anwendung von der Windows-Phone-Betriebssystemebene isoliert. Das hat zur Folge, dass nur APIs aufgerufen werden können, die von der Sandbox unterstützt werden. So ist unter anderem kein direkter Zugriff auf das Dateisystem möglich. Stattdessen wird jeder App ein eigener abgeschirmter Bereich, der so genannte Isolated Storage, zugeordnet, in dem die App Dateien schreiben und lesen kann. Auf diese Dateien kann nur von der App zugegriffen werden, der sie gehören. Das bedeutet, Dateien können nicht zwischen den einzelnen Apps ausgetauscht werden.
Abbildung 1.7: Windows Phone 7.x vs. Windows Phone 8
Im Gegensatz dazu basiert Windows Phone 8 direkt auf einem vollkommen neu entwickelten gemeinsamen Systemkern mit Windows 8. Auf diesem Systemkern aufbauend befinden sich nach wie vor die Plattformdienste. Der Unterschied zwischen dem neuen und dem alten System ist das Entfallen der Sandbox. Die einzelnen APIs, die im Folgenden noch genauer beschrieben werden sollen, greifen direkt auf die entsprechenden Dienste der Plattform zu.
Binäre Kompatibilität zu Windows Phone 7.x
Um Entwicklern und Anwendern die Möglichkeit zu geben, weiterhin Windows-Phone-7.x-Apps problemlos auf einem Windows Phone 8 laufen lassen zu können, ohne sie neu übersetzen oder anpassen zu müssen, wurde eine spezielle Zwischensicht, die Quirks Shim eingeführt. Diese Kompatibilitätsschicht bildet alle API-Aufrufe dem Windows Phone 7.x API direkt auf die darunter befindliche...