UWP - jak to działa?

UWP - jak to działa?

Autor: Krzysztof Sulikowski

Opublikowano: 7/13/2015, 12:00 AM

Liczba odsłon: 9905

Ideą, która przyświeca koncepcji Windows 10, jest jednolity rdzeń systemu operacyjnego. Umożliwi to deweloperom tworzenie aplikacji współdzielących praktycznie cały kod dla rozległego spektrum urządzeń. Twórcy będą mogli korzystać ze specjalnych zestawów rozszerzeń, by dodawać funkcje, dedykowane specyfice konkretnej platformy. Universal Windows Platform - jak podkreśla Microsoft - wyewoluował z tej samej nowoczesnej platformy, która zadebiutowała w Windows Phone 8.1 i Windows 8 na PC. Oznacza to, że napisane w zgodzie z nią aplikacje będą ciągle działać w podobny sposób. Deweloperzy mogą nadal pisać w swoim ulubionym języku przy wykorzystaniu tych samych frameworków: C/C++, C#, Visual Basic, JavaScript, XAML czy Silverlight. Dzięki "pomostom" (ang. bridges) deweloperzy mogą udostępniać swoje aplikacje (również te "klasyczne" czy webowe) w Sklepie Windows. Istniejący już kod można także unowocześnić do standardu Windows 10, dokonując w nim niewielkich zmian. Dziś bliżej przyjrzymy się standardowi Uniwersalnej Platformy Windows zarówno z deweloperskiego, jak i użytkowego punktu widzenia.

UWP

Projektowanie

Doświadczenie użytkownika (UX) w Uniwersalnej Platformie Windows oscyluje wokół wszystkich platform z rodziny Microsoft. Ujednolicony język projektowania i kontroli oznacza, że otrzymujemy jeden zestaw narzędzi, z których zbudujemy doświadczenie zgodne ze wszystkimi urządzeniami, opartymi na Windows 10. Z drugiej strony twórcy mogą dokonać rozdziału, udostępniając określone funkcje lub moduły tylko dla wybranych urządzeń. Wielu deweloperów korzysta z natywnych szablonów i kontrolek, dostarczonych wraz z pakietem Windows 10 SDK. Microsoft postanowił jednak nie zamykać się na tego typu rozwiązanie, oferując też wsparcie dla responsywnych technik projektowania.

Jeden język projektowania i zestaw kontrolek ułatwia adaptację aplikacji do większości typowych scenariuszy użytkowych. Parametry, takie jak rozmiar okna czy typ wprowadzanych danych, są zwykle wspierane przez platformę. Przykładowo, wysuwane menu może wyglądać inaczej, gdy użytkownik korzysta z ekranu dotykowego, a inaczej, gdy używa klawiatury i myszy. Deweloper nie musi odgraniczać tych przypadków. Napisany w natywnym języku projektowym kod sam dostosuje wygląd obiektów w zależności od charakteru pracy użytkownika. Wszelkie kontrolki dostosują się do rozmiarów ekranu i urządzeń wskazujących: ekranu dotykowego, klawiatury, pióra dotykowego czy nawet kontrolera Xbox One.

Universal App Platform

Gdy projektant pragnie uzyskać większą kontrolę nad UX, może sięgnąć po dwa nowe narzędzia - RelativePanel i Adaptive Triggers. Można je wykorzystać do stworzenia prostych zasad, określających zachowanie aplikacji w różnych scenariuszach, np. przy zmianie rozmiaru okna przez użytkownika. Narzędzie Adaptive Triggers może zostać rozszerzone do postaci Custom Triggers, które zapewniają jeszcze głębszy poziom kontroli. Przykładowo, gdy użytkownik zmienia rozmiar okna, poszczególne obiekty w obszarze roboczym mogą nie tylko skalować się lub pojawiać i znikać, ale również zmieniać swój charakter (na uproszczony, rozleglejszy etc.). Dotyczy to nie tylko rozmiaru, ale także sposobu wprowadzania danych, orientacji urządzenia, dostępności czujników, usług lub jakiejkolwiek innej wykrytej zmiany. Deweloper może nawet stworzyć odrębne widoki XAML dla każdego z urządzeń, podczas gdy podstawowy kod aplikacji zostaje zachowany.

Rozwijanie

Universal Windows Platform oferuje jedno API dla wszystkich urządzeń z Windows 10 - PC, tabletów, telefonów itd. Microsoft wprowadził ponad 2500 nowych klas do API UWP, co stanowi 60% wzrost w porównaniu do Windows 8.1. Windows 10 posiada także zwiększony zestaw API w przypadku .NET (26%) oraz Win32 i COM (zwiększony o 48%). UWP wspiera również ogromny zestaw zupełnie nowych bibliotek, jak choćby DirectX12, Holographic, Active Pen i Windows Hello.

Model Uniwersalnych Aplikacji Windows

Podczas tworzenia aplikacji Windows zwracamy uwagę na powiązane z nią API oraz sposób, w jaki adaptowany jest interfejs użytkownika (UI). Należałoby też się zastanowić, co może, a czego nie może aplikacja. Dotychczas nie pojawiła się żadna definicja, która jednoznacznie określałaby, czym jest aplikacja z punktu widzenia systemu Windows. Oprócz rozszerzenia .exe należy zapytać o kilka kwestii:

  • Jak ją instalujemy?
  • Jak przechowuje swój stan?
  • Jak długo się uruchamia?
  • Czym jest historia wersji?
  • Jak integrujesz ją z systemem?
  • Jak integrujesz ją z innymi aplikacjami?
  • Co może/potrafi zrobić twoja aplikacja?

Model Uniwersalnych Aplikacji Windows (The Universal Windows App Model) zapewnia system, który odpowiada na powyższe pytania i - jak zapewnia Microsoft - robi to w całym zakresie urządzeń - od IoT (segment Internet of Things) po PC-ty z najwyższej półki. Model Uniwersalnych Aplikacji Windows rozpoczyna (i kończy) pracę w systemie rozwijania AppX, który dostarcza bezpiecznego mechanizmu instalacji, zaprojektowanego z myślą o dalszym aktualizowaniu opartych na nim aplikacji. AppX wspiera nie tylko aplikacje Windows 10, ale również pozostałe urządzenia zgodne z Windows Platform. Jego spektrum jest rzeczywiście szerokie - od wsparcia dla instalacji na nośnikach wymienialnych (jak karty SD) po pakiety danych do 150 GB. Model Uniwersalnych Aplikacji Windows dostosowany jest do skalowalnego środowiska, w którym aplikacje są wykonywane. Dotyczy to również parametrów, takich jak żywotność baterii czy moc procesora. Zarządzanie tymi zasobami będzie więc indywidualnie dostosowane do konkretnego urządzenia.

Warto napisać jeszcze kilka słów o integracji. Aplikacje oparte o Uniwersalny Model Windows integrują się nie tylko z systemem, ale też z innymi aplikacjami. Przykładowo, gdy w jednej aplikacji wybierzemy schemat kolorystyczny, możemy go bez problemu zapożyczyć do innej aplikacji o zgodnym języku projektowania. Można to nazwać integracją pierwszoplanową. Co z aplikacjami, uruchamianymi w tle? The Universal Windows App Model pozwala m. in. na wysyłanie poleceń do innych aplikacji, które zostaną uruchomione w tle, dzięki czemu pierwszoplanowa aplikacja może pozostać w centrum uwagi użytkownika.

Universal Windows Platform Bridge dla Klasycznych Aplikacji Windows

Windows posiada bogate portfolio aplikacji w standardach Win32, WPF i .NET. Są to zarówno niewielkie programy, jak też najbardziej rozbudowane gry czy pakiety narzędziowe. Bridges ("pomosty") to grupa elementów Uniwersalnej Platformy Windows, które umożliwiają konwersję klasycznych aplikacji Windows (ang. Classic Windows Applications) do standardu Universal Windows oraz ich publikację w Sklepie Windows. Odpowiada za to jeden z "pomostów" - Project Centennial. Klasyczne aplikacje zyskają dzięki temu nie tylko typowy dla Sklepu Windows proces instalacji i aktualizacji, ale również dostęp do większości API zgodnych z Universal Windows Platform, wraz z wszystkimi ich możliwościami, takimi jak dostęp do Centrum akcji, dynamicznych kafelków czy integrację z systemem powiadomień.

UWP

Microsoft przyznaje, że zadbał o to, by doświadczenie użytkownika podczas instalowania "klasycznych" aplikacji ze Sklepu pozostawało takie samo, jak w przypadku pozostałych aplikacji. Dotyczy to również kwestii bezpieczeństwa i funkcjonalności. Gdy użytkownik uzna, że aplikacja mu nie odpowiada, może odinstalować ją bez problemu, a system Windows wyczyści wszystkie jej dane. Aplikacja działa, jak gdyby jej dane były zapisywane w rejestrze. W rzeczywistości każda aplikacja posiada swój własny "ul" (ang. hive), z którego dane mogą zostać z łatwością wyczyszczone. Wszystko to odbywa się bez większych ingerencji w kodzie. Wystarczy, że deweloper zamieni dotychczasowy instalator na AppX. Odpowiedni zestaw narzędzi ma być dostępny w tym roku.

Universal Windows Platform Bridge dla aplikacji webowych

Rzućmy jeszcze okiem na aplikacje, uruchamiające się w sieci (ang. Web Apps). Scenariusz, oferowany przez Universal Windows Platform, pozwala deweloperom zarówno wykorzystać potencjał zewnętrznych środowisk uruchomieniowych, jak też rozwijać i publikować (także responsywne) aplikacje w Sklepie Windows.

UWP

Pełen dostęp do platformy jest możliwy m. in. poprzez bezpośrednie wywołanie API przez skrypty, uruchamiane na serwerze. Aplikacje hybrydowe również posiadają wsparcie UWP. Deweloperzy mogą dołączyć kod lokalny, wywoływany przez skrypt, znajdujący się w pakiecie aplikacji, a także umożliwić zdalny dostęp do aplikacji z poziomu lokalnego. AppX wymaga w takich przypadkach zdefiniowania dwóch parametrów: adresu URL strony startowej dla aplikacji oraz zestawu adresów URL, będących częścią aplikacji.

Deweloperzy webowi mogą też bezpośrednio wywoływać API poprzez kod JavaScript, wykonywany na serwerach, podczas gdy ich zawartość uruchamiana jest w formie aplikacji w Windows. By tego dokonać, należy zdefiniować parametr ACURs. Poniżej wkleimy przykład takiego kodu, opublikowanego przez Microsoft:

<uap:ApplicationContentUriRules>
       <uap:Rule Type="include" WindowsRuntimeAccess=”all” Match="http://example.com/" />
</uap:ApplicationContentUriRules>

Źródło: Microsoft

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia