Budoucnost vývoje Windows aplikací Mgr. David Gešvindr MVP: Azure | MCSD: Windows Store | MCSE: Data Platform | MCT | MSP david@gesvindr.cz @gesvindr Universal Windows Platform  Jednotná API na různých zařízeních  Jeden appx balíček s aplikací  Podpora adaptace na různá zařízení je součástí platformy XboxIoT Universal Windows Platform Core APIs 1 000 000 000 zařízení do 3 let 110 000 000 zařízení za 2 měsíce Jazyky pro tvorbu aplikací  Runtime i dostupné jazyky jsou stejné jako u Windows 8.1 a Windows Phone 8.1 • Jednoduchá migrace aplikací na novou platformu Univerzální Windows aplikace Native code C++/CX Managed code C# /VB.NET WinJS Javascript XAML HTML CSS WinRT APIs Nástroje na tvorbu aplikací  Visual Studio 2015 • Zdarma edice Community • Placená edice Professional a Enterprise • Šablona: Windows / Windows Universal / Blank App (Windows Universal) • Pro vývoj aplikací je třeba Windows 10 • Vývojáři se mají inspirovat ukázkami na GitHubu: https://github.com/Microsoft/Windows- universal-samples Nasazení aplikace při vývoji  Pro nasazení na počítač vývojáře je nutné systém odemknout • Neomezený počet aplikací na Windows • Až 20 na telefonu Kompatibilita s Windows 8.1 aplikacemi  Ze systému odstraněn charms bar  Aplikace které s ním počítaly mohou k příkazům automaticky přistupovat .NET Core + .NET Native  .NET Core 5 • Odlehčená verze .NET frameworku  .NET Native • Kompilace neprobíhá do IL ale do nativního kódu  40-60% úspora času při startu  Až 30% úspora paměti  Staticky linkuje většinu knihoven .NET frameworku Aktualizace stávajících aplikací  V tuto chvíli není možné ve Visual Studiu realizovat automatický upgrade  Vytvořit nový projekt univerzální aplikace a postupně překopírovat stávající aplikaci  Nejčastější problémy bránící spuštění: • Odebrání systémové resource (zejména Windows Phone) • Drobná změna API  Nutné úpravy v UI aplikace: • Přidání adaptability na různá zařízení + úprava dle nových UI guidelines  Aplikace na Windows Phone v Silverlightu vyžadují přepsat • Jak změna API, tak změna veliké části ovládacích prvků UI Přizpůsobení aplikace zařízení  Aplikace by se neměla cílit na telefon/tablet/počítač  Aplikace by měla detekovat přítomnost specifických API a podle toho se přizpůsobit  Přítomnost API je dána cílenou device family Jak psát aplikace napříč více typy zařízení  Cílíte aplikaci na Universal device family  Další device family přidáte jako Extension SDK  Při použití API z Extension SDK musíte ověřovat jeho přítomnost na zařízení Jak začít s návrhem aplikace  Seznamte se s UI design guidelines pro Windows 10 • UI by mělo být v souladu s UI systému – uživatelé nemají rádi nekonzistence  Představte si svého uživatele • K čemu mu vaše aplikace bude? • Proč ji bude používat? • Jak ji bude nejčastěji používat  Identifikujte nejdůležitější scénáře použití  Udělejte je co nejjednodušší Jak navrhovat uživatelské rozhraní  Na základě zjednodušených scénářů použití začněte navrhovat UI  Neprogramujte hned!!!! • Vytvářejte prototypy UI nehledě na aplikační logiku! • Použijte tužku a papír   Správný návrh architektury aplikace (MVVM) podporuje oddělení role vývojáře a designera 3 hlavní části UI Obsah Příkazy Navigace Ovládací prvky  Ve Windows 10 je do ovládacích prvků zabudována podpora pro přizpůsobení se zařízením  Zjednodušení tvorby responzivního UI:  Upravený VisualStateManager • State Triggers • Setters  RelativePanel  SplitView Novinky v jazyce XAML  Většina UI systému je napsána nově v XAMLu • Microsoft provedl řadu výkonnostních optimalizací  Nový data binding {x:Bind} • Kompilovaný databinding • Až 5x vyšší výkon • Detekce chyb ve vazbách již při překladu • Vyžaduje znát typ datového kontextu • Podporuje binding událostí Není rozlišení jako rozlišení  Screen resolution – kolik fyzických pixelů má obrazovka na šířku a na výšku  Size – diagonální fyzický rozměr obrazovky  Density – kolik bodů na palec má obrazovka  Physical pixel – bod na obrazovce  Effective pixel – na zařízení nezávislý bod  Effective resolution – velikost obrazovky v efektivních pixelech  Scaling – mapování mezi efektivním a fyzickým pixelem 4” 480x854 5” 720x1280 6” 1080x19201080 px 1920 px 5” 4” 320x533 5” 360x640 6” 432x768 160 DPI 1 inch Device Independent Pixel  UI v XAMLu je vyrenderováno ve velikosti dle efektivního rozlišení • Texty jsou korektně čitelné na různých zařízeních  Rastrová grafika by měla být dodána ve více rozlišeních  Použití asset packages • Resource manager vybírá soubory dle jejich jména: logo.scale-100.png, logo.scale-200.png  Uživatel si v appx balíčku stahuje jen potřebné obrázky pro jeho zařízení Android 100 150 200 300 400 IOS 100 200 300 Windows 100 125 150 200 250 300 400 Novinky v navigaci  Aplikace může nově otevřít více aplikačních oken • Na mobilních zařízeních toto uměly pouze zabudované aplikace  Podpora globálního tlačítka zpět • I na desktopu je možné nechat zobrazit jako součást aplikace tlačítko zpět  Volba politiky pro obnovení aplikace • Obnova dle předchozího stavu a časové značky Životní cyklus aplikace  Aplikace běží v sandboxu  UWP adaptivně poskytuje prostředky pro běh aplikace v závislosti na aktuálním zařízení Novinky v životním cyklu aplikace  Žádost o rozšíření doby na uspání aplikace • Z důvodu ukládání dat uživatele po síti  Možnost zažádat o neomezený běh aplikace • Schváleno dle dostupných zdrojů systému • Např.: Navigace Běh operací na pozadí  Aplikace musí respektovat životní cyklus  Pokud potřebujete dělat operace na pozadí, nevyžadujte zbytečně neomezený běh aplikace  Mnohem efektivnější na zdroje jsou background tasky  To, že jsou nové možnosti background tasků neznamená, že pro mnohé scénáře není lepší použít vzdálené notifikace Background Task  Background Task je spouštěn na základě triggeru  Jeho spuštění může být podmíněno podmínkou • Dostupnost internetové konektivity  Background Task je umístěn v separátním projektu • Oddělená Windows Runtime Component  Celé tělo je umístěno v metodě Run Aplikační služby  Nová forma propojení aplikací  Aplikace může sloužit jako služba poskytující data ostatním aplikacím • Např.: Aplikace dopravní společnosti může mít své UI a zobrazovat data, navíc ale může poskytovat data jiným aplikacím jako služba  Aplikace může vrátit data a při tom se vůbec nespustit Nové způsoby propojení aplikací  Cíl • Přenést jednoduchost propojení webových aplikací do ekosystému univerzálních Windows aplikací  URI schéma • Aplikace si může zaregistrovat obsluhu URI schématu • Pokud je dané URI schéma otevřeno, aplikace je spuštěna  Tento přístup funguje i pro univerzální aplikace • I ve Windows 8.1 a Windows Phone 8.1  Omezení na spuštění aplikace podle URI schématu • Stávající aplikace je v tu chvíli uspána a není možné vrátit hodnotu do volající aplikace Nové způsoby propojení aplikací  Ve Windows 8.1. bylo propojení aplikací prakticky nemožné • Omezeno jen na registraci Uri schématu  Windows 10 přináší následující nová rozšíření • Možnost předat soubor mezi aplikacemi • Volání aplikace za účelem získání návratové hodnoty • Drag & Drop mezi aplikacemi • Aplikační služby Novinky v možnostech dlaždic  Hlavní účel dlaždice • Předat informaci uživateli, aby nemusel spouštět aplikaci • Upozornit uživatele, že je dobrý důvod aplikaci spustit  Ve Windows 8.1 existoval katalog šablon dlaždic • https://msdn.microsoft.com/en-us/library/windows/apps/hh761491.aspx  Windows 10 umožňují dlaždici stylovat pomocí XML Novinky v možnostech dlaždic  Definice stylu pro více velikostí dlaždic  Již nebude nutné renderovat dlaždici jako obrázek  Je možné zobrazit v nabídce Start více dlaždic najednou  Připravuje se: • Podpora XAML dlaždice • Interaktivní dlaždice Actions Center  Actions Center synchronizováno mezi zařízeními  Je možné upravit šablonu toast notifikace One Windows 10 Store Windows Desktop Windows Mobile Xbox ONE CORE OS ONE APP PLATORM ONE STORE IoT HoloLens Surface Hub Windows 10 ONE CORE OS ONE APP PLATFORM ONE STORE Aplikace podporované ve Windows 10 Store Store Ecosystem Westminster- Web apps (HTML/CSS/JS) Astoria - Android apps (Java/C++) Existing store apps/games (C++/C#/JS) Universal windows apps (C++/C#/JS) Music Movies & TV Centennial - Classic windows apps (C/C++/.NET/Win32 API) Islandwoods - IOS apps (Objective-C/C++) Jeden obchod s aplikacemi ve Windows 10 Vnitrofiremní obchod s aplikacemi  Společnosti si mohou založit uzavřený vnitrofiremní obchod  Omezení přístupu k interním aplikacím a jejich jednoduchá distribuce  Nákupy licencí aplikací a přiřazení zaměstnancům Vývojářský účet  Pro distribuci aplikací přes Windows Store je nutné se registrovat jako vývojář  Individuální vývojářský účet • Jednorázový poplatek • Zdarma v rámci MSDN • Pro studenty zdarma  Firemní účet • Složitější validace One Windows Dev Center  Jedna registrace  Aplikaci publikujete na jednom místě  Pokročilé možnosti monetizace  Rozsáhlé možnosti analýzy chování zákazníků DEV.WINDOWS.COM Dotazy Mgr. David Gešvindr MVP: Azure | MCSD: Windows Store | MCSE: Data Platform | MCT | MSP david@gesvindr.cz @gesvindr