+6Nasi autorzy

Universal Apps – jedna aplikacja dla każdej platformy

universal-apps-microsoft

Rewolucja mobilna przyniosła za sobą szereg naprawdę ciekawych rozwiązań. Kiedy nie muszę, komputera nie włączam, nawet i przez kilka dni. W mojej kieszeni siedzi urządzenie, które pozwala mi na prawie wszystko to, co zrobiłbym na komputerze. Wyciągnę smartfona na ulicy, sprawdzę media społecznościowe, odbiorę maile i idę dalej. I zawsze chciałbym mieć swoje ulubione aplikacje na każdym urządzeniu – na tablecie, stacjonarce i smartfonie. Z pomocą przychodzi niezbyt nowy już pomysł Microsoftu – Universal Apps, który ułatwi życie i mnie i programistom, którzy nie będą już musieli głowić się nad tworzeniem aplikacji na każdą platformę.

Zamysł jest prosty

Stworzyć takie narzędzia programistyczne, by twórcy aplikacji mogli w jednym czasie tworzyć programy na każdą platformę w obrębie ekosystemu. Mało tego, że oszczędzą przy tym czas (i nierzadko pieniądze), to jeszcze zyskają na tym użytkownicy platformy. Sklep dla Windows 8.1 nie oferuje zbyt wielu ciekawych propozycji, natomiast w tym dla Windows Phone jest już nieco więcej dobrych aplikacji. Tworzenie aplikacji na nową modłę Microsoftu spowoduje wyrównanie się szans między niezbyt lubianą platformą Microsoftu dla tabletów i coraz mocniejszą – dla smartfonów.

Ok, ale o co dokładnie chodzi?

Jak wspomniałem, zapełnienie całego ekosystemu aplikacjami rodziło dotąd potrzebę oddzielnego pisania różnych wersji aplikacji pod różne platformy. Przy czym nie chodziło tylko o przeskalowanie jej na różne wielkości ekranów, ale i o potrzebę kompletnego przerobienia dużej części kodu źródłowego. Microsoft zrozumiał, że musi jakoś zachęcić deweloperów do tworzenia aplikacji na swoje platformy i tym samym wychodzi do nich z pomocną dłonią. Tym samym, w ramach Universal Apps nie będą oni musieli tworzyć oddzielnych propozycji dla Windows 8.1, Windows Phone, czy też konsoli Xbox One, bo i ona jest zawarta w zamyśle giganta z Redmond. W ramach jednej aplikacji będą oni mogli zaimplementować inny interfejs dla każdej platformy – tak, aby pasował on do konkretnego typu urządzenia.

universal-windows-apps

Akcja-unifikacja

Nie trudno oprzeć się wrażeniu, że strategia Microsoftu zaczyna być coraz bardziej klarowna. Xbox One? OneDrive? Co dalej? „One” jednoznacznie kojarzy nam się z ujednoliceniem pewnych elementów składowych całego ekosystemu. I tak zaczyna właśnie być. Microsoft swoim podejściem do aplikacji pokazuje, jak ważne jest dla niego stworzenie ekosystemu, w którym różnice między systemami bardzo się zacierają. Któż nie chciałby korzystać z tej samej aplikacji na komputerze, tablecie, smartfonie i konsoli? To wielka wygoda i naprzeciw temu wychodzi właśnie gigant z Redmond.

Nie będzie problemu także z wielością metod obsługi urządzeń. Każdą aplikację będzie można przystosować jednocześnie do obsługi rysikiem, klawiaturą i myszką, za pomocą gestów, ekranu dotykowego i głosem. Wszystko to będzie zależne od tego, co będzie chciał zaimplementować producent aplikacji i czego oczekują od niego użytkownicy. Wszystko jednak opiera się na tym, że wdrożenie tych usprawnień będzie dużo łatwiejsze od strony dewelopera. Pozwoli to na szybsze, tańsze i wygodniejsze tworzenie aplikacji.

To także wielka wygoda dla użytkownika ekosystemu Microsoftu

I będzie to chyba „killer-feature”. Deweloper oczywiście w dalszym ciągu będzie mógł określić, czy za aplikację na różne platformy zapłacimy raz, czy tyle razy, na ile platform ją pobierzemy. Jednak Microsoft pozwala tym samym na wdrożenie modelu: „Pay once, use on everything”. Kupiłeś aplikację dla Windows Phone? Pobierz ją także w ramach jednej ceny na Windows 8.1 oraz Xboxa. Przykładem aplikacji, która zaskoczyła mnie w ten sposób była gra: Halo: Spartan Assault, którą niedawno recenzowałem na łamach Tabletowo. Mogę ją zainstalować także na urządzeniu pod kontrolą Windows 8.1 w ramach jednej ceny, którą wydałem przy zakupie na platformę Windows Phone.

I tak oto, dochodzimy do momentu, gdzie Microsoft zaczyna podchodzić mądrze do aplikacji w ramach swojego ekosystemu. Apple posiada dwa systemy – iOS i OS X, które nijak nie są ze sobą zgodne. Android na smartfonie i tablecie to praktycznie jedno i to samo, ale co z Chrome OS? Microsoft, jeden z liderów oprogramowania na rynku znalazł na to sposób. I to najlepszy z możliwych.

Jeżeli znalazłeś literówkę w tekście, to daj nam o tym znać zaznaczając kursorem problematyczny wyraz, bądź zdanie i przyciśnij Shift + Enter lub kliknij tutaj. Możesz też zgłosić błąd pisząc na powiadomienia@tabletowo.pl.

Komentarze

  • Microsoft odkrywa możliwość tworzenia aplikacji niezależnych od systemu, ale swoim sposobem ogranicza je do jednego systemu.

  • Tomasz Lenartowski

    Czyli w skrócie tak: MS daje nam API, które jest uniwersalne, czyli na każdej platformie programista dostaje te same funkcje. Więc o ile API bedzie rozbudowane możemy liczyć na wieloplatformowe aplikacje. Oczywiście nie ma tak lekko i konieczność zaprojektowania interfejsu dla każdej platformy z osobna pozostaje. A w przypadku konsoli także sterowania padem/kinectem. Z tym, że jeśli ktoś będzie chciał napisać coś bardziej wymagającego to mu to API po prostu nie wystarczy (Microsoft nie przewidzi wszystkiego a zaawansowana optymalizacja będzie i tak wymagała działania na niskim poziomie).

    A teraz poparzcie na sytuację obecną: mamy Windows API. Dla Windows RT mamy po prostu implementację Windows API na ARM. Teraz: gdy odblokujemy sobie pulpit na windowsie RT (jailbreak anybody?) możemy niektóre otwartoźródłowe programy skompilować i używać na Surface RT. To nie teoria, widziałem to na własne oczy. Czyli to żadne nowatorskie odkrycie MS a jedynie rozwijanie idei.

    Android na smartfonie i tablecie to właściwie to samo? Jasne. Ale mamy androida dla ARM i x86. A api to samo, narzędzia do tworzenia responsywnego interfejsu są od lat. Zasada działania jest analogiczna.

    IOS paradoksalnie ma najlepiej, bo nie musi się martwić o architekturę, więc i narzędzia programistyczne mogą sięgać o wiele głębiej.

    Słowem: dobry krok, który popieram. Ale też żadno odkrycie. Nie ma się czym podniecać.

    • Ale czym ogranicza? W VS możesz korzystać z gotowych funkcji, ale i tworzyć własne rozwiązania. Im więcej niezależnych poziomów szczegółowości tym lepiej – początkujący koderzy mają niemalże programowanie blokowe, a zaawansowani mają pełny dostęp do wszystkich funkcji oraz możliwość manualnego tworzenia bytów „z palca”.

      • Tomasz Lenartowski

        Gościu ja tu o API mówię a Ty mi z IDE wyskakujesz. Pomijając, że nie użyłem nawet słowa ogranicza ani jego synonimu. Po prostu jeśli API czegoś nie obsłuży, szczególnie operacji wymagających ingerencji na niskim poziomie to dla każdej architektury bedzie trzeba to napisać osobno.

        • Nie wiem czy miałeś już do czynienia z nowym SDK, ale ja po wstępnym zapoznaniu się powiedziałbym, że wystarczy ono do napisania nawet mocno zaawansowanych aplikacji.
          Przykładem takich aplikacji są wszystkie Bingi.
          Nie uważam się za wybitnego programistę, może dlatego ogrom możliwości dla nowych appek jest dla mnie aż przytłaczający. Zarządzanie cache, auto-resume, funkcje optymalizacji zarządzania pamięcią, generowanie dynamicznego layoutu, narzędzia do obsługi najróżniejszych baz danych… Jest tego mnóstwo na każdej warstwie aplikacji.

          • Tomasz Lenartowski

            Ale wszystkiego nie przewidzisz. Dość powiedzieć że nikt w tym gry 3D nie będzie pisał. To jest takie samo ograniczenie jak z każdym api więc nie wiem do czego się teraz przyczepiasz. I nadal SDK a VS to co innego.

          • Gry, szczególnie 3d, rządzą się zupełnie innymi prawami. Mi chodzi o appki srednio i mocnozaawansowane. Naprawde nie widzę zbyt wielu obszarów, kiedy trzeba by pisac osobny, niskopoziomowy dedykowany dla konkretnej platformy kod.

          • Tomasz Lenartowski

            Ale nadal są. I przyczepiłeś się wiedząc, że są. Więc o co ci u licha chodzi?

          • Są gry czy obszary? Jeśli obszary, to zdefiniuj je, odnosząc się do SDK/API dostarczanego przez Microsoft.
            Jeśli chodzi Ci o gry – to… koronnym przykładem gry Universal App z 95% współdzielonego kodu jest Halo.

          • Tomasz Lenartowski

            ok: obróbka grafiki i dźwięku. Obliczenia wysokiej złożoności. Serwery. A twój koronny argument, bing: czekam niecierpliwie na moment gdy ktoś całą machinę, którą jest wyszukiwarka internetowa odpali na komórce lub Xboxie.

          • Obliczenia wysokiej złożoności? Serwery? Na litość boską, mówimy o appkach na tablet, komórkę i xboxa.
            Jeśli chodzi o obróbkę dźwięku czy grafiki – chyba nie do końca rozumiem. Dlaczego wg Ciebie nie można wykorzystać wspólnego kodu, funkcji czy bibliotek między poszczególnymi platformami?

          • Tomasz Lenartowski

            Nie. Ty zacząłeś o bingu nawijać. Więc nie mówimy o appkach na tablety. obróbka -> wsparcie sprzętu. Takie rzeczy można osiągnąć na dwa sposoby: wydajny albo łatwy. Wydajny wymaga grzebania. Ale dobra, niech Ci będzie. Windows jest najlepszy, ma najlepsze api, odpalasz Binga na xboxie a photoshopa na lumii. Dobranoc.

          • Nie bingu, tylko bing apps.
            W 99% przypadków wystarczy sposób „łatwy”. Do instagrama, vine’a czy fotora. A jak Adobe będzie chciało tworzyć optymalizację sprzętową pod Photoshop Touch? Na biednego nie trafiło, niech działają. Tylko takich appek jak PS jest tyle, że można policzyć na palcach 1 ręki. A appek do obróbki grafiki czy dźwięku, które nie potrzebują dedykowanej optymalizacji sprzętowej są dziesiątki tysięcy. I to do nic skierowany jest projekt Universal Apps.

          • Tomasz Lenartowski

            I nigdy tego nie negowałem. I ja to wiem i ty to wiesz i twoje ego ma się lepiej bo się powymądrzałeś. Starczy

          • To było (mocno chybione moim zdaniem) wymądrzanie się:

            „Z tym, że jeśli ktoś będzie chciał napisać coś bardziej wymagającego to mu to API po prostu nie wystarczy (Microsoft nie przewidzi wszystkiego a zaawansowana optymalizacja będzie i tak wymagała działania na niskim poziomie).”

            PS: Nawet takie appki jak FB, twitter czy photoshop touch nie są optymalizowane sprzętowo na żadną z platform. Dużo ważniejsza jest optymalizacja cache i odwołań do pamięci. Dużo o tym pisał Hanselman – poszukam.

            EOT.

          • Tomasz Lenartowski

            Mam kumpli w moim wieku, którzy mają to co Ty: uwielbienie dla jednego systemu/rozwiązania/producenta. Królują w tym programiści IOS. Objective c i nic innego. A w mojej firmie nauczyłem się, że nie ma technologii idealnej i nie ma api do wszystkiego.

          • Takaszi

            Bo nie może być, wszystko co tworzy człowiek jest skończone, a to oznacza ograniczone. Nie da się inaczej, zawsze będzie wyjątek, z czasem coraz mniej (ewolucja) ale nigdy do końca.

    • Takaszi

      Zgadzam się z tobą, Microsoft po prostu odrabia lekcje i fajnie kolejna normalna platforma powstaje. A działanie takich rozwiązań można prztestować w „starej” wersji Opery. Opera Link, dawała możliwość synchronizacji pomiędzy maszynami, wystawiania serwera www, klienta poczty. Potem przeszli na silnik Chromium i …….. (tu autocenzura).

Tabletowo.pl
Logowani/Rejestracja jest chwilowo wyłączona