Artykuł

freeimages.com freeimages.com
paź 31 2014
0

Koncepcja Universal Apps dla Windows i Windows Phone

Microsoft przespał czas w którym rodziły się nowe mobilne OSy. W momencie gdy powstawał Android oraz iOS, w ofercie giganta z Redmond dostępny był przestarzały i odrobinę toporny Windows Mobile. Microsoft zauważył że zbyt wiele tym OSem nie ugra, więc stworzył Windows Phone, który miał być swego rodzaju sukcesorem wcześniejszej platformy. W międzyczasie pojawił się również kontrowersyjny Windows 8, który wprowadził interfejs Modern UI. W krótkim więc czasie powstało kilka nowych, niekompatybilnych ze sobą platform, które mimo wielu podobieństw wymagały jednak innego podejścia. Sukcesu zabrakło w obu przypadkach.

Windows instalowany jest na większości nowych komputerów, ale nowy interfejs spotkał się raczej z delikatnie mówiąc chłodnym przyjęciem. Windows Phone przez długi czas zwiększał swoje udziały w rynku, ale robił to w zaiste żółwim tempie. Czy zatem nowa koncepcja budowy uniwersalnych aplikacji dla obu ekosystemów, odwróci złą passę Microsoftu?

W 8.1 i WP 8.1 - nowy początek

Microsoft chcąc zaradzić kryzysowi, po raz kolejny musiał wymyślić coś, co przykuje uwagę użytkowników. W tym przypadku najłatwiej było wydać nowe, usprawnione wersje obu OSów, co też włodarze Microsoftu uczynili.

Nowe edycje obu systemów zostały bardzo dobrze odebrane przez prasę i blogosferę. W przypadku dużego Windowsa usprawniono przede wszystkim interfejs - od tej wersji łatwiej jest np. wyłączyć system;-) Windows Phone w edycji 8.1 również przyniósł sporo nowości funkcjonalnych. Pojawiło się centrum akcji, Cortana, menadżer plików, czy też lepsze opcje personalizacji. Nowości wizualnych i funkcjonalnych było jeszcze więcej, ale tak naprawdę najbardziej spektakularne zmiany zaszły pod maską;-)

Jedną z największych nowości Windows Phone jest tak naprawdę obsługa architektury WinRT (Windows Runtime), która wcześniej pojawiła się w Windows 8. Jest to spore zaskoczenie, ponieważ Windows Phone od samego początku opierał się o Silverlighta. Co zatem stało się z rozwiązaniem które występowało aż do wersji 8.0? Właściwie to nic. Silverlight wciąż jest obecny w wersji 8.1 mobilnego OSa, a nawet otrzymał kilka nowości. Jeśli ktoś z Was spyta - czy w tym wszystkim jest logika, to mogę z całą pewnością odpowiedzieć, że tak. Microsoft nie mógł bowiem tak po prostu wyrzucić Silverlighta z Windows Phone, ponieważ jednym takim ruchem unieruchomił by wszystkie istniejące w systemie aplikacje i tym samym zastosował metodę łagodnego przejścia.

Nie mniej jednak upadek Silverlighta to w moim odczuciu tylko kwestia czasu, dlatego jeśli dopiero zaczynasz swoją przygodę z rozwiązaniami Microsoftu, to warto żebyś zwrócił swoją uwagę właśnie na aplikacje uniwersalne.

Architektura WinRT

Co zatem w praktyce oznacza nowa architektura dla dzisiejszych programistów Windows Phone? Oznacza przede wszystkim zmiany, ale są to zmiany które da się przeżyć i do których wcześniej można się przygotować. Przede wszystkim - wciąż korzystamy z XAMLa, wciąż mamy kontrolki (aczkolwiek te dość mocno się pozmieniały), mamy też wiele innych rzeczy i rozwiązań, które zdążyliśmy poznać na przestrzeni kilku ostatnich lat. Zmieniły się jednak biblioteki, które zatem wszystkim stoją, bo zmieniła się bowiem cała architektura pod spodem.

Jakie są konsekwencje tego wszystkiego? A no w pewnym sensie takie, że jak już się tych wszystkich nowości nauczymy, to będziemy mogli tworzyć nowe aplikacje na Windows oraz Windows Phone, które gdzieś w 80% będą miały wspólny, współdzielony kod. Ba - powiem więcej, będą one nawet występować w sklepie pod jedną pozycją;-)

Jedna solucja by rządzić nimi wszystkimi

Sporo już dzisiaj napisałem o dzieleniu kodu, o jednej aplikacji ze sklepu, którą można zainstalować na telefonie, tablecie czy laptopie, czyli jednym słowem wszędzie. Pytanie nasuwa się tylko jedno - jak to wszystko wygląda i działa w praktyce?

W praktyce by coś na tym poletku zdziałać, musimy mieć Visual Studio 2013 z zainstalowaną aktualizacją numer 2 (obecnie dostępny jest już nawet update z numerkiem 3). Jeśli kogoś z Was podłamała ta wiadomość, to już spieszę z pocieszeniem - do tworzenia aplikacji na nowe, cudowne platformy Microsoftu, wystarczy wersja Express. To kolejny już gest Microsoftu, który ma zwiększyć zainteresowanie developerów jego nowymi rozwiązaniami (w praktyce przyczynia się to też zalewania sklepu śmieciowymi programami, w końcu dostęp do środowiska jest darmowy...). Najnowszą wersję Visual Studio 2013 Express for Windows (uwzględnia update 3), możecie pobrać stąd.

Po uruchomieniu VS od razu możemy przystąpić do tworzenia nowego projektu. Wciąż może to być normalna aplikacja na Windows, czy Silverlightowa na Windows Phone, ale po co babrać się w starociach, kiedy na wyciągnięciu są nasze nowe Universal Appsy? Wystarczy tylko wybrać język oraz nadać nazwę projektowi, by system wygenerował dla nas działający projekt bazowy.

W solucji zawsze utworzone zostaną trzy projekty. Jeden dla Windows, drugi dla Windows Phone, natomiast trzeci stanowi cześć współdzieloną pomiędzy wspomnianą wyżej dwójką. Naszym zadaniem jest tworzyć projekt w taki sposób, by jak najwięcej elementów trafiło właśnie do tej ostatniej części układanki.

Można powiedzieć, że przecież projekty w ten sposób można było robić już wcześniej. W pewnym sensie jest w tym racja, ale nigdy nie można było robić tego na taką skalę. Przeważnie wydzielana była część odpowiedzialna za logikę biznesową i to było wszystko, co dawało się w jakiś racjonalny sposób sensownie wydzielić. Teraz możemy wydzielić rzeczoną logikę, zasoby, kod odpowiedzialny za obsługę akcji wykonywanych przez kontrolki, a jeśli odpowiednio się postaramy to nawet cały XAML poszczególnych podstron/okien. W dużej liczbie aplikacji, procent współdzielonego kodu waha się w przedziale 70-90%, przeważnie oscylując gdzieś pośrodku tych dwóch wartości. Brzmi to bardzo obiecująco - prawda?

Warto również wspomnieć, że tworząc projekt Universal App, możemy skoncentrować się tylko na jednej platformie. Drugą możemy dodać w dogodnym dla nas momencie, bądź też w skrajnym przypadku w ogóle nie dodawać, jeśli nie ma ku temu racjonalnych przesłanek biznesowych.

Wszystko to brzmi naprawdę super i obiecująco, ale na koniec mała łyżka dziegciu. Tworząc projektu Universal Apps, w pewnym sensie musimy odrzucić to co było wcześniej. Jest to szczególnie bolesne w przypadku Windows Phone, ponieważ OS w wersji 8.1, jest na rynku dopiero od kilku miesięcy i jeszcze nie wszyscy użytkownicy WP8 zdążyli otrzymać aktualizację dla tego systemu.

Podsumowanie

Trzeba przyznać, że Microsoft sprytnie sobie to wszystko obmyślił. Zapędził developerów Windowsa oraz Windows Phone w jedno miejsce, dzięki czemu jest realna szansa na to, że być może wkrótce zwiększy się liczba sensownych projektów na obie platformy. Aczkolwiek jest to tylko moje gdybanie, ponieważ cała ta sytuacja ma też drugie dno.

Microsoft często miesza w wymyślonych przez siebie rozwiązaniach. Mimo że w tym przypadku była to właściwie zmiana na lepsze, to tak naprawdę jest to sygnał dla developerów Silverlight: Hej, dziś możecie jeszcze programować w Silverligcie, ale nie wiem czy będzie to możliwe w kolejnych dniach.

Sam programowałem trochę dorywczo w tym obszarze i dostrzegam dość duże zmiany. Niby mechanizmy są takie same, lub zbliżone, ale tu pojawia się nowy styl, tu nowa kontrolka i w praktyce cała dotychczas zgromadzona wiedza, wymaga pewnej korekty. Nie da się przejść z dnia na dzień na nowe podejście, wcześniej nie czytając/oglądając choćby jednego tutoriala.

Czas pokaże czy najnowsze (abstrahując od wszystkich wątpliwości), całkiem sensowne zmiany Microsoftu rzeczywiście coś zmienią.

Data ostatniej modyfikacji: 19.11.2014, 19:44.

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus