Vývoj aplikací pro Windows Phone 8 Mgr. David Gešvindr MCT | MSP | MCPD | MCITP gesvindr@mail.muni.cz Osnova 1. Seznámení s platformou Windows Phone 2. Návrh kvalitního uživatelského rozhraní 3. Představení vybraných API 4. Tvorba aplikace se sdíleným jádrem Osnova 1. Seznámení s platformou Windows Phone 2. Návrh kvalitního uživatelského rozhraní 3. Představení vybraných API 4. Tvorba aplikace se sdíleným jádrem Historie platformy  Vývoj Windows Mobile byl ukončen a platforma bude využita pro průmyslové účely, než bude nahrazena  Windows Phone 7 vychází z upravené verze Windows CE 6+  Windows Phone 7 jsou zcela nový operační systém  Hlavní cíle Windows Phone 7: • Zaměřený na uživatele • Jednoduchá tvorba aplikací • Výkonný a jednotný hardware Historie platformy  Windows Phone 8 vychází z principů platformy Windows Phone7  Hlavní změny • Windows CE jádro nahrazeno Windows NT jádrem (sdílení komponent s Windows 8) • Nový Windows Phone Runtime • Rozšíření funkcionality systému a možností integrace aplikace do systému Jednotný hardware Display 480x800 WVGA 768x1280 WXGA 720x1280 720p Capacitive touch 4 or more contact points Camera 5 mega pixels or more Dedicated camera button Optional: Front camera Hardware buttons Start, Search, Back, Power, Volume, Camera Sensors A-GPS Proximity and ambient light sensor Accelerometer, Optional: GLONASS, Compass, Gyroscope CPU and GPU Qualcomm Snapdragon S4 dual-core processor Direct3D support Minimum memory 512MB RAM (WVGA) 1024MB RAM (WVGA+) 4GB flash storage Optional: Memory card support Platforma pro vývoj aplikací Sensors Media Data Xbox LIVE Notifications .NET Framework managed code sandbox Location Phone Phone Emulator Samples Documentation Guides Community Packaging and Verification Tools Runtime Tools Cloud Portal Notifications Location Identity Feeds MapsSocial App Deployment Registration Validation Certification Publishing Marketplace MO and CC Billing Business Intelligence Update Management ServerKlient Windows Phone API .NET Windows Phone Runtime Direct3D, XAudio2, MF, WASAPI, Win32 & COM WINDOWS PHONE API MANAGED MANAGED & NATIVE NATIVE Podporované programovací jazyky  Využití C++ omezeno na hry a knihovny • Neexistuje varianta XAML + C++ jako na Windows 8 • Využití C++ v XAML pouze skrze Windows Runtime komponentu  HTML5 + JavaScript není přímo podporováno • Nutno do aplikace vložit webový prohlížeč Nástroje potřebné pro vývoj aplikací  Windows Phone 8.0 SDK • Visual Studio Express 2012 for Windows Phone • Windows Phone 8 emulátor • Požadavky včetně Windows Phone 8 emulátoru:  Windows 8 Pro (x64)  Procesor s podporou Second Level Address Translation  Plná podpora vývoje Windows Phone 7 aplikací  Telefon je třeba odemknout vývojářským účtem Osnova 1. Seznámení s platformou Windows Phone 2. Návrh kvalitního uživatelského rozhraní 3. Představení vybraných API 4. Tvorba aplikace se sdíleným jádrem Designerský jazyk METRO Návrh aplikace  Kde začít? Představte si svého uživatele  Jak bude aplikaci používat? Proč? K čemu?  Najděte klíčové scénáře použití a udělejte je co nejjednodušší  Nebojte se použít papír, neprogramujte hned Vlastnosti jazyka METRO  Čistý, Lehký, Otevřený, Rychlý  Oslavuje typografii  Ožívá díky pohybu  Obsah, nikoliv jen lesk  Autentický  Aplikujte principy na svou značku Vlastnosti jazyka METRO  Vyvarujte se častým chybám Text k přečtení 1) Sheraton New York Hotel 2) Sheraton Manhattan Hotel 3) Sheraton Tribeca Vlastnosti jazyka METRO  Vyvarujte se častým chybám Základní struktura aplikace  Každá aplikace v Silverlightu je tvořena stránkami  Každé stránce odpovídá separátní XAML soubor a s ním související codebehind (C#) Application (App.xaml) PhoneApplicationFrame PhoneApplicationPage MainPage (MainPage.xaml, MainPage.xaml.cs) Panorama Control  Graficky velkolepý  Vybízí k prozkoumání informací  HW náročný, pomalejší Pivot Control  Efektivní  Zaměřený na obsah  Uživatel si na něj zvykne Další ovládací prvky  Windows Phone Toolkit • http://phone.codeplex.com/  Pro stažení možné využít balíčkovací systém NuGet Osnova 1. Seznámení s platformou Windows Phone 2. Návrh kvalitního uživatelského rozhraní 3. Představení vybraných API 4. Tvorba aplikace se sdíleným jádrem Životní cyklus aplikace  Telefon není počítač • Omezený výkon • Požadovaná doba odezvy • Výdrž baterie  Je spuštěna vždy jen jedna uživatelská aplikace  Aplikace na pozadí neběží Další možnosti  Plnohodnotný multitasking funguje jen pro systémové aplikace (a navigaci)  Většinou lze plnohodnotný multitasking nahradit • Lokálními notifikacemi  Upomínka / budík • Vzdálenými notifikacemi / notifikační službou • Výpočetními agenty  Periodic Task • Specifickými agenty  Background File Transfer  Audio Player Agent Odeslání notifikace: 4. Server odesílá notifikaci na endpoint 5. Notifikační server doručuje notifikaci do telefonu Jak fungují vzdálené notifikace Push enabled applications Notifications service Server 3. strany Notifikační server hostovaný Microsoftem v cloudu 1 2 3 45 Výhody notifikací  Nulová zátěž pro telefon • Netřeba periodicky kontrolovat změny na vzdálené službě • Notifikaci aktivně vyvolává služba  Telefon si udržuje spojení na jeden notifikační server pro víc aplikací • Úspora počtu spojení  Notifikační mechanizmus je efektivní z pohledu přenášených dat Trvalé uložení dat v telefonu  Výhradně s využitím Isolated Storage  Nově i využití paměťové karty Práce s dlaždicemi  Hlavní obrazovka • Uživatel zde může umístit Application Tile (1x) • Ikona aplikace zobrazující notifikace • Secondary Application Tile  Odkaz na specifické místo v aplikaci  Libovolný počet Uzamčená obrazovka Location Services  Slouží k určení zeměpisné polohy zařízení  Kombinuje data z různých zdrojů Location services WiFi + Přesnost - Spotřeba - Rychlost - Budovy +/- Přesnost +/- Spotřeba +/- Rychlost +/- Obydlené oblasti GPS Cell towers - Přesnost + Spotřeba + Rychlost - Volné prostranství Mapové podklady  Windows Phone 8 využívá mapové podklady od Nokie  Systém umožňuje stáhnout mapy pro off-line použití  Vývojáři mají přístupný ovládací prvek Map Control, který umí pracovat i s off-line mapami  Je třeba si na vývojářském portálu vygenerovat klíč pro použití map v aplikaci Osnova 1. Seznámení s platformou Windows Phone 2. Návrh kvalitního uživatelského rozhraní 3. Představení vybraných API 4. Tvorba aplikace se sdíleným jádrem Práce s daty v jazyce XAML  Pro zobrazení dat se využívá zejména data bindingu v jazyce XAML • Data jsou oddělena od samotné definice UI • Je vytvořena vazba mezi objektem UI a business objektem  DataContext • Objekt, který je zdrojem dat • Ovládací prvky jej dědí Vztah Windows 8 a Windows Phone 8  Společné Windows Runtime API • Networking • Sensors • Proximity • Storage • Location  Společný .net engine • Původně použitý .NET Compact Framework byl nahrazen CoreCLR z Windows 8  Lepší podpora práce s více CPU jádry  Podpora asynchronního programovacího modelu 11 000 2 800 600 Efektivní sdílení kódu  Netriviální problém, není jedno jasné řešení  Třeba vhodně kombinovat: • Portable Class Libraries • Windows Runtime Components • „Add as Link“ funkcionalitu Visual Studia  Uživatelské rozhraní • WP 7.5 a WP 8.0 není problém z velké části sdílet • UI nelze sdílet s Windows 8 Portable Class Libraries + MVVM Osnova 1. Seznámení s platformou Windows Phone 2. Návrh kvalitního uživatelského rozhraní 3. Představení vybraných API 4. Tvorba aplikace se sdíleným jádrem Dotazy Mgr. David Gešvindr MCT | MSP | MCPD | MCITP | MSP gesvindr@mail.muni.cz