Sledujte nás na YouTube

Podrobný přehled novinek ve Windows Phone 8.1 pro vývojáře (1. díl)


Odkaz pro stažení SDK & dokumentace

mania.cz/clanky/windows-phone-81-odhaleny-kompletni-prehled-novinek-a-vylepseni-7394" target="_blank">které jsou shrnuté zde, obsahuje Windows Phone 8.1 i velké spousty novinek pro vývojáře. V tomto shrnujícím článku se bez větších detailů zaměřím na hlavní novinky a změny, které tato nová verze pro vývojáře přináší. 


Odkaz pro stažení SDK & dokumentace

Základy pro vývoj WP8.1 aplikací

  • Windows 8.1 RTM x64 Pro/Enterprise a procesor podporující SLAT instrukce
  • Visual Studio 2013 RTM Pro nebo vyšší edici, popř. Express edici pro WP, která je také dostupná
  • Visual Studio Update 2 zahrnující i WP8.1 SDK, nyní dostupný jako Release Candidate 

Samotné VS2013 již nativně obsahuje mimo jiné nástroje pro vývoj WP8 a Windows 8.1 aplikací, Update 2 přidává možnost vývoje těchto nových projektů:

C#:

  • Windows Phone Silverlight 8.1 „legacy“aplikace – WP8.1 aplikace vycházející z původního WP8 modelu
  • Windows Phone 8.1 aplikace – nový model, defakto klon Windows 8.1 C# aplikačního modelu, jen pro telefony
  • Univerzální aplikace pro Windows 8.1 a Windows Phone 8.1 v C# – nový model pro současný vývoj aplikace pro Windows i telefony s možností sdílet přes 95% kódu

HTML5/JavaScript:

  • Windows Phone 8.1 HTML5/JavaScript aplikace – nový nativní model pro vývoj WP8.1 aplikací pomocí HTML a JavaScriptu, defakto klon Windows 8.1 HTML aplikačního modelu, jen pro telefony
  • Univerzální aplikace pro Windows 8.1 a Windows Phone 8.1 v HTML5/JavaScriptu – nový model pro současný vývoj aplikací pro Windows i telefony s možností sdílet přes 95% kódu

C++:

  • Windows Phone 8.1 C++ aplikace – nový model, defakto klon Windows 8.1 C++ aplikačního modelu, jen pro telefony
  • Windows Phone 8.1 C++ DirectX aplikace a Windows Phone 8.1 C++ DirectX+XAML aplikace
  • Univerzální aplikace pro Windows 8.1 a Windows Phone 8.1 v C++ – nový model pro současný vývoj aplikace pro Windows i telefony s možností sdílet přes 95% kódu 

Rozdíl mezi Silverlight 8.1 a Windows Phone 8.1

Jaké jsou hlavní rozdíly mezi Silverlight 8.1 a Windows Phone 8.1 typem projektu bude popsáno v dalším článku tohoto miniseriálu.

Ve zkratce Silverlight 8.1 = WP8 + většina Windows Runtime z Windows 8.1 + XAP jako formát aplikace. Jedná se o „legacy“ typ aplikace, který pravděpodobně již v dalších verzích Windows Phone nebude podporován.

Windows Phone 8.1 = Windows 8.1 aplikace zkompilovatelná pro telefon bez některého API, které na telefonu nedává smysl + API specifické jen pro telefony. Důležitá informace je zde to, že tento model neobsahuje žádné předchozí Silverlight a XNA API, které jsme byli zvyklí na Windows Phone používat! Tento typ aplikace také používá nový soubor manifestu a formát aplikace appx, oboje známé z Windows 8.1. 

Přehled novinek u nové platformy Windows Phone 8.1

Windows Phone 8.1 přináší velké změny do Windows Phone ekosystému. Poprvé od Windows Phone 7 uvádí Microsoft mobilní platformu, která není stavěna nad Silverlightem, ale plně nad Windows Runtime. S Windows 8.1 aplikacemi sdílí WP8.1 mnoho – cca 95% kódu lze sdílet mezi oběma platformami bez nutnosti jakýchkoliv změn. Stejný je i model životního procesu aplikace, XAML UI Framework, sada nástrojů pro vývoj a testování, způsob buildování a balíkování aplikace, stejně tak i výsledný Appx formát, který se publikuje na již společný Store.

Oblasti konvergence s Windows 8.1

Aplikační model a životní cyklus aplikace – WP8.1 aplikace využívá stejný životní cyklus, jako Windows 8.1 (spuštění, suspendování, aktivace). Lze tak využít veškerý kód pro správu stavu aplikace u obou platforem. Stejně tak správa úloh na pozadí je stejná a lze jí snadno převzít.

Manifest, buildování a deploymentsoubor s informacemi o aplikaci se jmenuje stejně a má podobnou strukturu (Package.appxmanifest). Výsledný balík pro deplyment je také stejného formátu – zip soubor s příponou appx.

XAML – WP8 používá pro tvorbu UI verzi XAMLu, která vychází ze Silverlightu a která je jiná, než ta ve Windows 8.1. WP8.1 aplikace již ale používají ten samý model a lze tak mnohdy sdílet vlastní UI 1:1 mezi Windows a telefonní verzí, a to i v Portable Class Libraries

Nové možnosti ve Windows Phone 8.1 (výběr)

Geofencing – WP8.1 obsahuje nové geolokační API pro upozornění na základě změny polohy či opuštění či navštívení určité oblasti. Toto API lze také využít třeba pro zobrazení speciálních nabídek v určitých obchodech.

Přenosy na pozadí – WP8.1 obsahuje nové API pro stahování dat na pozadí Windows.Networking.BackgroundTransfer, které nahrazuje původní Background Transfer Service z WP8.

Úprava medií – WP8.1 obsahuje ve Windows.Media.Editing nové možnosti pro úpravy videa či hudby přímo na telefonu – zachytávání videa, ořezávání, skládání i použití více zvukových stop.

Notifikace – ve WP8.1 lze pomocí nového API přistupovat k novému Action Center a spravovat zde odeslané notifikace. Třídy pro přístup k notifikacím se nacházejí v namespace Windows.UI.Notifications. Dále také WP8.1 používá pro Push notifikace stejné Windows Push Notification Services (WNS) API jako Windows 8.1 a není tak třeba psát dva různé backendy pro telefony a Windows, jako tomu bylo u WP8.

Přehrávání hudby na pozadí – ve WP8.1 se pro přehrávání hudby na pozadí používá nová třída Windows.Media.Playback.BackgroundMediaPlayer, která nahrazuje původní API z WP8.

Microsoft Media Foundation – již WP8 přišlo s podporou DirectX aplikací. WP8.1 rozšiřuje možnosti DirectX o tyto novinky:

  • Direct2D APIs
  • DirectWrite APIs
  • Windows Imaging Component APIs
  • Runtime shader compilation and reflection
  • GPU access to YUV shaders
  • GPU performance counters
  • Graphics diagnostics support

Navíc jsou ve WP8.1 i značně rozšířené možnosti DirectX a XAMP interop.

Nahrávání obrazovky – WP8.1 umožňuje pomocí Windows.Media.Capture nahrávat za běhu aplikace obsah obrazovky jako video.

Automatizace UI – díky novému API pro automatizaci UI lze nyní mnohem snadněji napsat aplikaci spolupracující s předčítacími zařízeními a také implementovat testy UI prvků v aplikaci.

Ovládací prvky – WP8.1 využívá stejný UI stack jako Windows 8.1 aplikace a lze tak nyní používat stejné UI elementy napříč aplikacemi. Základní elementy jako Button, TextBlock, CheckBox a další lze použít u obou typů aplikací. Některé nové jako GridView, ListView a FlipView lze nyní nově použít i u WP8.1 aplikací. Některé dřívější čistě telefonní elementy byly nyní přejmenovány, jako např. Panorama -> Hub. Některé jako Pivot zůstaly dostupné jen pro telefon.

Vylepšení AppBaru – u WP8 byl dlouhodobý problém s tím, že prvky AppBaru nešlo snadno databindovat či lokalizovat. U WP8.1 lze nyní použít stejné CommandBar API známé z Windows 8.1 pro definování tlačítek i prvků menu.

Monetizace – došlo ke sjednocení již tak podobného API pro nákupy a in-app purchases. Velkou novinkou je nyní přítomnost třídy CurrentAppSimulator i u WP8.1 pro snadné testování nákupů.

NFC a proximity – byly rozšířené možnosti NFC API, u kterého lze nyní naformátovat prázdné NFC tagy, uzamknout či odemnout Tag i komunikovat se širší sadou NFC tagů.

Podpora externího displeje – ve Windows Phone 8.1 je nyní možné promítat obraz z aplikace na externí displej ať již přes kabel či bezdrátově pomocí Miracastu.

Správa data a úložišť

Windows.Storage API – WP8.1 plně implementuje Windows.Storage API až na pár specifických metod pro Streamový přístup k souborům. Ve WP8.1 lze také používat nové file pickery pro otevírání a ukládání souborů.

Roaming dat – WP8.1 podporuje roaming dat mezi zařízeními, ať již základních Settings, tak i souborů v RoamingFolder. Tento roaming dat navíc funguje i mezi Windows a telefonem, pokud je aplikace vytvořena pod stejným účtem a stejným jménem.

Share kontrakt – WP8.1 implementuje Share kontrakt podobný tomu, který je ve Windows 8.1 jen s několika omezeními na typy a veliksoti souborů.

Přístup na SD kartu – na rozdíl od WP8, kde bylo možné jen číst data z SD karty, u WP8.1 je možné již číst i zapisovat typy souborů, které má aplikace zaregistrované v manifestu, na SD kartu či jiné výměnné úložiště.

Nástroje pro vývoj v SDK

Emulátory Windows Phoneemulátory jsou dostupné v 6 variantách: WVGA 512MB 4“, WVGA 4“, WXGA 4“, 720p 4,7“, 1080p 5,5” a 1080p 6”.

  • novinkou u emulátorů jsou fyzická tlačítka na boku On, Volume Up and Down a Camera button
  • emulátor podporuje také nástroj pro simulaci multidotyků
  • emulátor také nyní umožňuje různé režimy pohybu po mapě a režimy přesnosti GPS.
  • simulátor rychlosti připojení k Internetu je také nyní součástí přímo emulátoru a ne již Dashboardu ve Visual Studiu, jak tomu bylo dříve.
  • novou zajímavou funkcí je i simulace SD karty, která je řešena odkazem na vybranou složku
  • v emulátoru lze také přímo testovat zasílání notifikací různých typů
  • v emulátorech lze také pomocí checkboxů označit, jaké senzory má emulátor hlásit jako přítomné – vhodné pro testování funkcionality aplikace na zařízeních bez očekávaných senzorů
  • jako asi nejzajímavější funkci lze ale považovat správu Checkpointů – lze uložit stav emulátoru v určitém stavu a později tento stav obnovit, ideální pro testování a reprodukci bugů

Windows Phone Developer Power Toolsnová sjednocená sada nástrojů pro testování validity aplikace, výkonu, paměťové náročnosti a také nahrávání historie výkonu aplikace pro pozdější analýzu

Blend pro Visual Studio – nástro Blend byl aktualizovaný pro podporu nových WP8.1 projektů, HTML WP projektů i univerzálních aplikací.

Developer Registration Tool, Application Deployment Tool, Isolated Storage Explorer – jsou tu i nyní a fungují tak, jak je známe z dřívějška

Nové .NET/BCL API u Windows Phone 8.1 aplikací:

  • Systém.Collections.Concurrent – kolekce pro souběžný přístup a snadnou implementaci problému konzument/producent
  • System.IO.Compression – ZipArchive, GZipStream
  • ParallelQuery, ParallelEnumerable
  • Systém.Numerics – BigInteger, Complex
  • Systém.Threading.Tasks – Parallel.For, Parallel.ForEach

API dostupná jak u WP8.1, tak i u Silverlight 8.1 aplikací

  • Accessibility API pro předčítání textu, vysoký kontrast a zvětšený text
  • Local storage, Temp storage a Roaming app data storage
  • Přístup souborového systému k Windows.Storage.KnownFolders
  • FileIO, PathIO, Compression, AccessCache – velmi užitečné filesystémové API
  • Storage pickers and providers
  • Share Contract v podobné podobě, co známe z Windows 8.1
  • Širší možnosti přístupu k SD kartám a úložištím – instalace aplikací (s možností zákazu), čtení, zápis
  • Push notifikace pomocí Windows Notification Service – 1:1 stejné API s Windows 8.1
  • Nové API pro Živé dlaždice a notifikace – 1:1 stejné API s Windows 8.1, jen ale bez 4. velké velikosti dlaždic
  • Mnohem mocnější Background Tasky
  • Background transfers API známé z Windows 8.1
  • HttpClient, AtomPub, Syndication – snadný přístup k RSS a Atom feedům
  • Credential locker – API pro uchování přihlašovacích údajů
  • Bluetooth LE, FRComm, Wi-Fi Direct
  • API na Emaily s přílohami – konečně J
  • Geofencing API – události závislé na poloze a vzdálenosti
  • Plnohodnotné CurrentApp a CurrentAppSimulator API pro testování in-app purchasů, jaké známe z Windows 8.1
  • Plná podpora Uri schémat pro přístup k souborům: ms-appdata a ms-appx
  • a nejen to… 

Závěrečné shrnutí

WP8.1 SDK přináší jednak nový „legacy“ model Silverlight 8.1 určený pro aktualizaci existujících aplikací, tak i nový Windows Phone 8.1 model, který je z velké části podobný Windows 8.1. Drtivá většina novinek v novém modelu Windows Phone 8.1 pochází s existujícího API Windows 8.1 aplikací. Navíc lze nyní vyvíjet i nově HTML5/JavaScript aplikace a také tzv. Univerzální aplikace, které usnadňují vývoj pro Windows i Phone, byť se stále nejedná fakticky o vývoj jedné aplikace, ale dvou.

Více informací o rozdílech mezi Windows Phone 8.1 a Silverlight 8.1, a možnosti vývoje Univerzálních aplikací, bude popsáno v dalších článcích tohoto seriálu, které budou následovat.

Autorem článku je Martin Suchan, Windows Phone vývojář ve společnosti Seznam.cz a čerstvý držitel titulu Microsoft MVP

Martin Suchan

6 komentářů

  1. mceza (neregistrovaný)

    Díky za srhnutí. Vypadá to, že na pozadí se událo hodně velkých změn :-)

    Ten nový emulátor je perfektní.

    S takovým API se WP raketově posunul vpřed.

  2. CageJ (neregistrovaný)

    chyba este emulator onscreen button ;)

    Ale inac asi vse..

  3. hujer (neregistrovaný)

    Super článek, díky za skvělé shrnutí a těším se na pokračování.

  4. tomas_dj (neregistrovaný)

    díky za článek. KAždopádně jsem rád, že po té, co zařízli Silverlight, nezařízli XAML. JEště by to chtělo, aby XAMARIN dotáhl .NET i s XAMLEM na Android a bylo by to dokonalé.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *