Universal Windows 10 Platform - wspólna platforma deweloperska

Win10Platform

Windows 10 to już nie tylko system operacyjny dla komputerów stacjonarnych. To również cała platforma, na którą składają się urządzenia korzystające z tego systemu. Urządzenia, które korzystają ze wspólnej platformy, na której uruchamiane są uniwersalne aplikacje Windows - to właśnie one są niebywałą zaletą rozwiązania, które pozwala napisać aplikację raz i uruchomić ją na różnych typach urządzeń z systemem Windows 10.

 

W jaki sposób działa Uniwersalna Platforma Windows 10?

Zanim poruszony zostanie temat uniwersalnych aplikacji, warto wiedzieć jak zbudowana jest cała platforma i jakie są jej zalety.

1. Wspólny core systemu Windows:

Win10Platform2

Wspólna podstawa - jądro systemu Windows 10 jest takie samo, bez względu na rodzaj urządzenia. Microsoft zmienił dotychczasową strategię stawiając na ujednolicenie. Co to oznacza dokładniej?

  • Wspólne zaplecze sterowników
  • Wspólne zaplecze sieciowe
  • Wspólne zaplecze sprzętowe

 

2. Wspólna platforma deweloperska:

Zestaw wspólnych API jakie oferuje Platforma Windows umożliwia stworzenie jednej aplikacji z ich użyciem bez względu na rodzaj urządzenia, na którym będzie uruchomiona. Dzięki takiemu podejściu kod napisany raz może być użyty na różnorodnych urządzeniach z Windows 10. Warto również wspomnieć, że aplikacje są pisane w oparciu o wersję platformy, nie samego systemu Windows. Oznacza to, że podczas procesu tworzenia aplikacji, deweloper powinien określić dwa podstawowe parametry:

  • Minimalną wersję platformy, na której aplikacja będzie uruchamiała się poprawnie
  • Maksymalną wersję platformy, na której aplikacja została przetestowana i działa poprawnie

 

3. Jedna aplikacja Windows: Win10Platform4

Na samym szczycie stosu Windows pojawia się Universal Windows App - uniwersalna aplikacja, która może być uruchomiona na różnych urządzeniach z systemem Windows 10. Bardzo ciekawym elementem strategii Microsoftu jest podejście "one, single binary" - może to być rozumiane jako jedna binarka, którą możemy uruchamiać na każdej z architektur.  W rzeczywistości jednak podczas pobierania ze sklepu Windows (Windows Store) aplikacja jest kompilowana w oparciu o rodzaj architektury, na której ma być uruchomiona.

 

Co w przypadku dostępu do specyficznych funkcjonalności danego urządzenia? Win10Platform5

Oczywiste jest, że każde urządzenie ma swoje specyficzne funkcjonalności - telefon będzie oferował dostęp do aparatu, Xbox dostęp do kontrolera, a Hololens pozwoli na obsługę aplikacji za pomocą gestów dłoni. Jak w tym przypadku tworzyć aplikacje i rozszerzyć ich możliwości na poszczególnych urządzeniach? Z pomocą przychodzą "rozszerzenia platformy Windows" (platform extensions). Pozwalają na dodanie SDK, które zapewni dostęp do specyficznych funkcjonalności danego urządzenia - telefonu, Xboxa, czy IoT. W zakładce "Extensions" wybieramy odpowiednie SDK:

Win10Platform7

 

Na ilustracji poniżej widoczna jest cała koncepcja wykorzystania "extensions SDK". Aplikacja, która oryginalnie była tworzona z myślą o urządzeniach typu "desktop" może być rozszerzona w celu poprawnego działania na urządzeniach typu "mobile":

Win10Platform6

 

Jak zacząć?

Tworzenie aplikacji Universal Windows Apps wymaga komputera z systemem Windows 10 oraz środowiska deweloperskiego Visual Studio, które jest oferowane zupełnie za darmo w wersji Community:

Podczas instalacji należy zaznaczyć poniższe narzędzia:

UWP10

 

Więcej?

Jeśli jesteś zainteresowany rozpoczęciem tworzenia Uniwersalnych Aplikacji Windows poniższe linki mogą się przydać:

 

Plany na przyszłość

Bardzo ważnym celem całej strategii Platformy Windows jest zapewnienie wsparcia dla wszystkich typów aplikacji - nie tylko Windows, ale również tych z systemów Android oraz iOS. Microsoft zdecydował nie tylko na ujednolicenie samego systemu. Dotyczy to również poniższych elementów:

  • Jedno centrum developerskie - miejsce, gdzie developer ma możliwość zarządzania wszystkimi stworzonymi aplikacjami
  • Jeden sklep Windows - wspólne miejsce dystrybucji dla Uniwersalnych Aplikacji Windows

Win10Platform8

 

Warto również wspomnieć o czterech ważnych projektach:

  • Astoria - projekt, którego głównym celem było zapewnienie możliwości przenoszenia już napisanych aplikacji na system Android na Uniwersalną Platformę Windows. Prace nad narzędziem zostały jednak zakończone na rzecz drugiego z projektów oraz platformy Xamarin (umożliwiającej pisanie aplikacji mobilnych cross-platform w języku C#). Oficjalne zakończenie projektu zostało podsumowane w artykule.

 

  • Islandwood - portowanie aplikacji iOS na Uniwersalną Platformę Windows jest możliwe, dzięki temu narzędziu. Projekt jest nadal rozwijany i dostępny pod tym adresem. Deweloper ma możliwość konwersji aplikacji napisanej w środowisku Xcode do aplikacji Universal Windows. IslandWood zapewnia również wsparcie dla języka Objective C, więc deweloperzy natywnego rozwiązania nie będą mieli większych problemów z jego wykorzystaniem. Kod projektu jest otwarty i dostępny na GitHub'ie.

 

  • Centennial - narzędzie, które ma na celu konwertowanie aplikacji typu desktop (normalne aplikacje Windows) na Uniwersalną Aplikację Windows na platformie UWP. Konwersja ta powoduje przekształcenie instalatora takiego jak EXE, czy MSI na pakiet AppX, który może być zainstalowany w systemie Windows 10. Dla zainteresowanych warto zobaczyć jak działa projekt Centennial w tym video na Channel9. Samo narzędzie dostępne jest do pobrania pod następującym linkiem.

 

  • Westminster - bardzo ciekawy projekt, pozwalający na publikację stworzonych wcześniej aplikacji webowych w Sklepie Windows. Największą zaletą jest dostęp do zestawu różnych API, jakie oferuje platforma Windows 10 z poziomu stworzonej aplikacji web, takich jak Cortana, notyfikacje, czy też dodawanie kafelków (life tiles). Dostęp jest możliwy za pomocą skryptów napisanych w języku JavaScript. Tworzenie takiej aplikacji zostało przedstawione w krótkim video.