Aplikacje UWP Universal Windows Platform

Dlaczego wszyscy hejtują UWP? Czy to kolejny niewypał Microsoftu?

Kojarzycie coś takiego jak Universal Windows Platform? Niegdyś zapowiadana jako całkowity rynkowy gamechanger, dziś funkcjonalność zalegająca niczym bezwładna masa w Windowsie 10, czekająca na lepsze czasy. Dlaczego cross-platformowe rozwiązanie nie przyjęło się globalnie?

O tym, że o popularności danego rozwiązania decydujące znaczenie ma wsparcie dla developerów ze strony producenta, przekonało się już naprawdę wielu. Mnóstwo nieprzyjemnych doświadczeń z tym ma Microsoft. Do grona “wpadek” śmiało można zaliczyć UWP, czyli Universal Windows Platform.

Co to UWP?

Warto zacząć od tego, czym w ogóle jest UWP. Universal Windows Platform to interfejs API, który Microsoft zaimplementował w Windows 10. Miał on ułatwić tworzenie uniwersalnych aplikacji (UWA – Universal Windows Apps), działających na wielu platformach (komputerach, urządzeniach mobilnych, konsolach Xbox oraz okularach HoloLens).

Universal Windows Platform

Tworzone w oparciu o języki C++, C#, VB.NET, XAML oraz JS rozwiązanie w swoich założeniach miało pozwolić na proste tworzenie skalowalnych aplikacji dla wielu platform. Wydawało się to idealnym rozwiązaniem zwłaszcza w kontekście szybkiego rozwoju procesorów wykonanych w architekturze ARM, których rozwój zwiastował wywrócenie rynku notebooków i urządzeń konwertowalnych do góry nogami.

Co poszło nie tak?

Jako że skrót UWP nic nie mówi wielu osobom, śmiało można wysunąć twierdzenie, że coś nie wyszło. Wyróżnić warto przede wszystkim zakończenie wsparcia dla systemu Windows 10 Mobile, będącego finałem krótkiej i bolesnej dla Microsoftu przygody z rynkiem smartfonów. Sens tworzenia aplikacji UWA praktycznie przestał istnieć. Mimo istnienia mostów umożliwiających tworzenie aplikacji na platformę Android oraz iOS, wykorzystywanie UWP nie cieszyło się dużą popularnością.

Problem jednak sięgał znacznie głębiej i nie ograniczał się tylko i wyłącznie do upadku Windows 10 Mobile. O kłopotach z tworzeniem uniwersalnej aplikacji wypowiedział się chociażby twórca popularnego programu Rufus. Wskazywał on między innymi na ogromne ograniczenie możliwości takich aplikacji z uwagi na politykę bezpieczeństwa dla UWP.

Aplikacje UWA nie miały opcji wykonywania jakichkolwiek operacji z poziomu systemu, jak chociażby dostępu block-level do urządzeń na USB, co całkowicie uniemożliwiało działanie aplikacji Rufus. A jej działanie, jak przyznaje sam autor, nie było aż tak skomplikowane – stworzenie partycji, formatowanie, wypakowanie plików z ISO. Ogromne problemy z wdrożeniem rozwiązania wykonującego operacje z poziomu systemu miał nawet sam Microsoft podczas tworzenia hybrydowej aplikacji Windows Terminal.

To tylko przykład jednego z wielu problemów, z jakimi borykali się programiści. Nie tylko brak dostępu do bardziej wrażliwych elementów systemowych sprawiał developerom kłopoty. Nieustanne dodawanie nowych funkcjonalności, zmiany decyzji oraz konieczność wspierania starszych wydań systemu (w tym Windows 7 bez UWP) sprawiało, że ciężko było komfortowo tworzyć aplikacje w tym środowisku. Wystarczy spojrzeć tylko na problemy z działaniem i implementacją wszystkich opcji w aplikacji Ustawienia w Windows 10, która miała zastąpić Panel Sterowania. Nie zastąpiła go do teraz, po prawie 6 latach od debiutu dziesiątki.

Koncept WinUI 3

Microsoft nadal jednak myśli o zapewnieniu jak najszerszej kompatybilności Windowsa dla architektury ARM. Wiadomość z grudnia o dopracowaniu emulacji aplikacji 64-bitowych napawa optymizmem. Gigant z Redmond pracuje również nad WinUI 3, który dostarczy rozwiązań UI znanych z UWP dla aplikacji Win32.

Era ARM i Mac Catalyst

Chociaż Microsoftowi idea stworzenia platformy umożliwiającej tworzenie uniwersalnych aplikacji kompletnie nie wyszła, inni producenci nie boją się wprowadzać podobnych rozwiązań. Ostatnim głośnym przykładem jest Apple oraz projekt Catalyst, który umożliwił developerom szybkie “scalenie” aplikacji na iPady oraz na macOS. Taki ruch był konieczny z uwagi na premierę urządzeń opartych o procesory M1, wykorzystujące architekturę ARM.

Apple miało jednak o wiele łatwiejszą ścieżkę. Zupełnie inne technologie, inne podejście do tworzenia aplikacji, unifikacja całej platformy, konieczność utrzymywania znacznie mniejszej ilości wersji systemów operacyjnych (na znacznie mniejszej ilości konfiguracji sprzętowych) pozwoliła na stworzenie o wiele efektywniejszych narzędzi dla programistów. Operacja rozpoczęta w 2019 roku powiodła się – urządzenia Apple z procesorem M1 cieszą się olbrzymią popularnością, a ich wydajność w aplikacjach jest naprawdę godna podziwu.

Apple M1

Nad swoim rozwiązaniem pracuje również Google. Projekt Fuchsia rozwijany już od kilku lat oferować ma zgodność z ARM i x86/64. Wciąż owiany sporą tajemnicą był swego czasu uważany za “endgame”, mający scalić Androida i ChromeOS.


Zdjęcie główne pochodzi z serwisu Unsplash. Źródła: Microsoft, GithubApple, Windowscentral

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Nowa funkcjonalność Facebooka zablokowana. Nie spodobała się sądowi