DPE SK Blog

Blog pre slovenských vývojárov od DPE (Developer and Platform Evangelist), Microsoft Slovakia

Novinky

Aktualizácie emailom

July 2015 - Príspevky

Preneste Android, iOS, Web alebo Desktop aplikácie na Windows 10

Nová aplikačná platforma Universal Windows Platform (UWP) je dostupná naprieč všetkými rodinami Windows 10 zariadení. Umožňuje vám vytvárať univerzálne aplikácie pre PC, tablety, telefóny, holografické zariadenie HoloLens, Surface Hub a čoskoro aj Xbox a IoT zariadenia, pričom vám stačí vytváriť iba jeden aplikačný balíček (úvod k UWP môžete nájsť v predošlom príspevku). Okrem možnosti plne natívneho vývoja Windows 10 aplikácií, ktorému sa budeme v ďalších blogoch venovať, ponúkne UWP možnosť využiť tzv. mosty (bridges), ktoré vám umožnia vytvoriť Windows Obchod aplikáciu z vášho existujúceho aplikačného kódu. Do aplikácie môžete následne taktiež pridať funkcionalitu ako živé dlaždice, notifikácie, “in-app” nákup a mnoho ďalšieho. Mosty vám umožnia preniesť vaše Android a iOS aplikácie na Windows 10, no taktiež vytvoriť store aplikácie z vašej webovej alebo klasickej desktopovej (Win32) aplikácie. V tomto príspevku si vysvetlíme, ako fungujú mosty pre jednotlivé platformy. Pred tým však ešte pár slov k tomu, čo bolo pre Microsoft motiváciou k takémuto kroku. Prostredníctvom mostov chce Microsoft vývojárom umožniť jednoduché publikovanie ich existujúcich aplikácii do Windows aplikačného obchodu a tým odhaliť potenciál platformy, pričom časom, po otestovaní platformy, očakávame, že sa vývojári a vydavatelia aplikácií rozhodnú poskytnúť svojim používateľom plne natívny zážitok, ktorý je a zrejme vždy bude nenahraditeľný.

Android Runtime

Pre Android developerov bude dostupný nástroj resp. most, ktorý sa nazýva “Project Astoria“ a umožní vytváranie Windows 10 aplikácií pre telefóny bez potreby výmeny vášho Android IDE a navyše vám poskytne Windows phone emulátor. “Project Astoria“ automaticky preloží Android obsah na obsah pre Windows. Príkladom môže byť funkcionalita zdieľania obsahu, ktorú dokáže “Project Astoria“ namapovať na natívnu formu zdieľania pre Windows. Okrem prenosu samotnej funkcionality aplikácie  “Project Astoria“ podporuje taktiež portovanie najčastejšie používaných Google Play služieb ako napríklad reklamy v rámci aplikácii, analytiky „In-app“ nákupy alebo notifikácie.  Vďaka interoperabilite a priamemu namapovaniu API, vám “Project Astoria“  umožní preniesť medzi programátormi najpoužívanejšie a najobľúbenejšie Android API využité vo vašej aplikácií na Windows. Na overenie toho, koľko kódu budete môcť znovu použiť, budete môcť využiť analyzačný nástroj dostupný cez developerské centrum, ktorý vám taktiež poskytne pokyny v prípade potreby zmeny časti kódu. Detailnejšie informácie k nástroju “Project Astoria“  budú sprístupnené počas leta 2015 na stránke http://uwp.dev.windows.com/en-us/uwp-bridges/project-astoria/ . Momentálne je dostupná preview verzia na pozvánku. Ak máte záujem vyskúšat “Project Astoria“  a poskytnúť vývojovému tímu skorú spätnú väzbu, môžete sa prihlásiť prostredníctvom uvedenej stránky a v prípade voľnej kapacity obdržíte pozvánku.

iOS

“Project Islandwood” vám umožní vytvárať univerzálne Windows aplikácie vo Visual Studiu 2015 s využitím vášho existujúceho Objective-C kódu. Vďaka “Project Islandwood” budete môcť importovať váš Xcode projekt do Visual Studia, odkiaľ budete môcť debugovať kód, prispôsobiť používateľský zážitok pre každú rodinu Windows zariadení a rozšíriť váš iOS kód o funkcionalitu, ktorú vám UWP ponúka. Rovnako ako pre Android, bude viac informácii poskytnutých toto leto na stránke https://dev.windows.com/en-us/uwp-bridges/project-islandwood, kde je taktiež možné prihlásiť sa a v prípade voľnej kapacity obdržíte pozvánku na otestovanie preview verzie.

Webové aplikácie

“Project Westminster” je most, ktorý vám umožní jednoducho publikovať vašu responzívnu webovú aplikáciu vo Windows Obchode. “Project Westminster” vám umožní vytvoriť aplikačný balíček, v ktorom využijete kód vašej webovej stránky (či už lokálne zabalený, alebo vyhostovaný na servery), pričom aplikácia bude fungovať naprieč všetkými Windows 10 zariadeniami. Vytvorenie UWP web aplikácie vám umožní jednoducho škálovať váš responzívny web na rôzne zariadenia, interagovať s natívnymi Windows API z JavaScriptu bežiaceho na vašej stránke (notifikácie, live tile atď.), integráciu s Cortana hlasovými pokynmi, debugovať vašu aplikáciu s Microsoft Edge F12 vývojárskymi nástrojmi, jednoduchý update aplikácie bez nutnosti znovu publikovania v aplikačnom obchode, získavať analytiky a zarábať na aplikácií vďaka aplikačnému obchodu. “Project Westminster” si môžete vyskúšať už dnes a preto ak máte responzívnu webovú aplikáciu, neváhajte a vytvorte z nej svoju Windows 10 aplikáciu. Bližšie informácie nájdete na tejto stránke: https://dev.windows.com/en-us/uwp-bridges/project-westminster 

Klasické Windows aplikácie

”Project Centennial” vám umožní zabaliť a publikovať vaše existujúce .NET a Win32 Windows aplikácie vo Windows Obchode, čím vám poskytne nový distribučný kanál a nové monetizačné možnosti pre vašu aplikácie na Windows PC. Naviac vám ”Project Centennial” poskytne možnosť využiť UWP API z vašej desktopovej aplikácie, čím môžete využiť napríklad notifikácie, živé dlaždice a pod. Viac informácií bude poskytnutých toto leto a taktiež sa môžete prihlásiť na testovanie prostredníctvom tejto stránky: https://projectipreviewsignup.windows.com/ . V prípade voľnej kapacity obdržíte pozvánku na otestovanie preview verzie. 

 

Marek.

Windows 10 – univerzálny vývoj aplikácií (UWP)

Windows 10 – univerzálny vývoj aplikácií

 

Windows 10 prináša mnohé novinky nielen pre používateľov, ale aj pre vývojárov. V tomto príspevku sa dozviete niečo o základných princípoch tvorby univerzálnych Windows 10 aplikácií, ktoré je možné spustiť na širokej škále zariadení, od IoT zariadení (napr. Raspberry PI 2), cez smartfóny, tablety, počítače, až po zariadenia ako XBOX One, Surface Hub alebo holografické zariadenie Hololens. Následne si v sérii ďalších blogov detailnejšie priblížime možnosti implementácie rôznej často používanej aplikačnej funkcionality.

Univerzálny vývoj pre platformu Windows bol do určitej miery dostupný už pre verziu 8.1 a zahŕňal Windows a Windows Phone zariadenia. Tento univerzálny vývoj bol umožnený vďaka množine prekrývajúcich sa „APIčiek“ dostupných ako na Windows 8.1, tak aj na Windows Phone 8.1. Táto množina sa nazýva Win RT. Vytvorenie univerzálnej aplikácie spočívalo z vytvorenia riešenia zloženého z troch projektov. Jeden projekt obsahoval kód špecifický pre Windows 8.1 zariadenia, druhý projekt kód špecifický pre Windows Phone 8.1 a tretí projekt obsahoval zdieľaný kód, t.z. kód, ktorý patril do oboch predošlých projektov. V ideálnom prípade tento zdieľaný projekt obsahoval celú aplikačnú logiku a zvyšné dva projekty obsahovali iba súbory s používateľským rozhraním. V konečnom dôsledku však bolo stále potrebné vytvárať dva rôzne aplikačné balíčky a distribuovať ich do dvoch aplikačných obchodov.  (pre viac informácií si môžete prečítať môj starší blog k vývoju univerzálnych Windows-Windows Phone 8.1 aplikácii).

Aj vďaka tomu, že Windows 10 je operačným systémom pre naozaj širokú škálu zariadení, boli možnosti vývoja univerzálnych aplikácií posunuté oveľa ďalej. Univerzálny vývoj na Windows 10 je umožnení novým unifikovaným aplikačným modelom a nástupcom Win RT a síce Universal Windows Platform (UWP), ktorý sprístupňuje najrôznejšie API naprieč rodinami Windows 10 zariadení.

 

Obr. 1:  Stavebné prvky UWP

 

UWP je samostatnou časťou systému Windows a bude pravidelne updatovaná (oprava chýb, pridávanie API..). Vývojári budú vyvíjať aplikácie nad špecifickou verziou UWP. Na obrázku nižšie môžete vidieť časť aplikačného manifestu, v ktorom je definovaná cieľová verzia UWP a najvyššia verzia UWP, na ktorej bola aplikácia testovaná. (Pozn.: uvedené označenia verzií sú iba ilustračné)

 

Obr. 2: Cieľové verzie UWP

Pri programovaní Windows 10 aplikácií budete vytvárať jediný aplikačný balíček, ktorý následne publikujete cez jedno developerské centrum do jedného aplikačného obchodu prístupného pre Windows 10 zariadenia. To znamená, že budete môcť veľmi jednoducho distribuovať vašu aplikáciu pre akékoľvek Windows 10 zariadenia. V rámci tohto procesu budete mať samozrejme možnosť špecifikovať, pre ktoré rodiny zariadení je vaša aplikácia určená.

Základnou filozofiou vývoja Windows 10 aplikácií je vytváranie prirodzeného a zjednoteného používateľského zážitku naprieč zariadeniami, pričom sa však kladie dôraz aj na jeho „doprispôsobenie” na mieru danému typu zariadenia (podľa dostupného rozlíšenia obrazovky a iných hardvérových špecifík). Práve to umožňujú dva hlavné princípy a síce adaptívne používateľské rozhranie a adaptívny kód. Tieto princípy si detailnejšie priblížime nižšie.

Adaptívne používateľské rozhranie predstavuje rozhranie, ktoré sa prispôsobí veľkosti rozlíšenia obrazovky. Jeho fungovanie si môžete predstaviť ako fungovanie responzívnej webovej stránky. Takáto stránka sa dokáže prispôsobiť rozlíšeniu napr. využitím tzv. hamburgerového menu, zmenšením a premiestnením grafických prvkov v prípade zníženia dostupného rozlíšenia atď. Podobne funguje aj adaptívne rozhranie v univerzálnych Windows 10 aplikáciách. Využívajú sa pritom princípy ako adaptívnosť (zmena dizajnu, premiestnenie obsahu) a responzívnosť (zmena veľkosti, „reflow“ obsahu). UWP taktiež podporuje možnosť vytvorenia samostatného používateľského rozhrania pre špecifický typ zariadení, tzv. dizajn šitý na mieru (tailored design). Na obrázku nižšie môžete vidieť, ako sa dokáže rozhranie aplikačného obchodu na Windows 10 prispôsobiť obrazovke počítača a smartfónu.

 

Obr. 3: Adaptívne rozhranie Store aplikácie

Ďalším spomenutým princípom, ktorý umožňuje prispôsobiť aplikáciu určitému typu zariadenia a využiť tak jeho plný potenciál, je adaptívny kód. Vďaka adaptívnemu kódu vieme v aplikácií adresovať špecifiká napríklad smartfónov (kamera s bleskom, HW spätné tlačidlo), pri IoT zariadeniach vieme pristupovať k pripojeným senzorom a pod. Pre každú edíciu Windows 10, t.z. verziu pre špecifickú rodinu zariadení, existujú takzvané rozširujúce SDK (extension SDKs), ktoré sprístupňujú funkcionalitu daného typu zariadení a ktoré môžeme do projektu pridať ako referenciu. Keďže sa však vytvára jeden aplikačný balíček, resp. jedna binárka pre všetky zariadenia, bolo potrebné  zabezpečiť, aby kompilátor nehlásil chyby pri použití tried a metód špecifických napr. pre Windows 10 mobile, v prípade kompilovania kódu pre iný typ zariadenia. Každá edícia Windows 10 preto obsahuje minimálne prázdne definície tried a metód jednotlivých extension SDKs. Tým sa predíde chybám o neznámych definíciách, ktoré by kompilátor v opačnom prípade hlásil. Avšak v rámci kódu je potrebné zabezpečiť, aby sa špecifická funkcionalita vyvolala iba na správnom type zariadení. To je možné vykonať s využitím reflexie, ktorá nám umožní zistiť, či je daná funkcionalita dostupná na zariadení, na ktorom aplikácia beží. Nižšie môžete vidieť implementáciu spätnej navigácie, kde rozlišujeme, či zariadenie disponuje HW spätným tlačidlom.

 

Obr. 4: Zistenie prítomnosti typu počas behu aplikácie

 

To bolo krátke predstavenie vývoja pre Windows 10 a UWP. V ďalšom príspevku si povieme o takzvaných mostoch (bridges), ktoré UWP ponúka, a ktoré umožňujú tvorbu Windows store aplikácií z webových stránok, existujúcich WIN32/desktopových alebo iOS a Android aplikácii. V ďalších príspevkoch sa budeme následne detailnejšie venovať vybraným súčastiam UWP.

 

Marek

 

Viac príspevkov