Trzy dni sesji i paneli za nami. Mnóstwo nowych informacji, które zaciekawić mogą nie tylko programistów. Wielu zachodnich dziennikarzy narzekało, że podczas prezentacji za dużo było pokazywania kodu i programowania. Nie wiem czego spodziewali się po konferencji dla deweloperów. Modelek w bieliźnie? Tygrysów skaczących przez płonące obręcze?
W tym wpisie postaram się odcedzić dla czytelników Tabletowo najciekawsze informacje o konsumenckiej części wydarzenia i podzielić się swoimi spostrzeżeniami na ten temat. Tematy chmury obliczeniowej, Office API i narzędzi programistycznych celowo pominę. Momentami tekst może nie być do końca zrozumiały dla osób, które nie zetknęły się z programowaniem, ale mam nadzieję, że każdy znajdzie w nim coś dla siebie.
Uniwersalne Aplikacje
Uniwersalne Aplikacje wreszcie stały się naprawdę uniwersalne. Trzeba zaznaczyć, że UA w W10 to nie to samo co UA w W8.1. W wersji 8.1 Uniwersalne Aplikacje mogą współdzielić kod źródłowy i cały backend (szacuje się, że jest to w zależności od złożoności appki od 70-90% kodu), ale trzeba było tworzyć osobne interfejsy użytkownika („wygląd”) dla smartfonów i dla tabletów. Wszystko w ramach jednego projektu Visual Studio, ale na osobnych wynikowych „binarkach”. Mało tego, „Uniwersalną Aplikacją” mogła się nazywać appka, która nie współdzieliła kodu wcale, a wspólne miała jedynie zachowywanie stanu aplikacji (np stan gry, czy zakupy w aplikacji) w chmurze i synchronizowanie tego stanu między smartfonem a tabletem. Przykładem takiej appki jest gra Halo od Microsoftu.
W Windowsie 10 Uniwersalne Aplikacje są prawdziwie uniwersalne. Nie ma (a właściwie nie musi być) rozróżnienia czy to smartfon czy tablet, czy komputer PC, czy Xbox, czy Surface Hub – kod w 100% może być ten sam – jedna binarka i brak osobnych widoków. Jak to możliwe? Nowy makrup XAML (język znaczników, coś co do zasady przypominające HTML czy XML), dzięki kontrolkom takim jak RelativePanel czy AdaptiveTrigger, pozwala automatycznie lub półautomatycznie skalować interfejs w zależności od wielkości ekranu. Oczywiście projektant będzie mógł wprowadzić udogodnienia w sytuacjach, kiedy automatyczne skalowanie i rozmieszczanie elementów na ekranie nie będzie optymalne pod względem łatwości obsługi – na przykład w mniejszych urządzeniach będzie mógł przesunąć nawigację do dolnej części ekranu – w pobliże kciuka. To zdecydowanie najważniejsza zmiana, która pozwoli tworzyć „responsywne” aplikacje, a „responsywność” ta będzie uzyskiwana dzięki zabiegom w XAML-u, a nie w bazowym kodzie programu, tak jak wyglądało to dotychczas.
Drugą najważniejszą sprawą jest wspólne API. Wspólne dla smartfonów, tabletów, komputerów, Xboxa, Huba czy urządzeń IoT. Nie będzie podziału na API dla smartfonów, API dla konsoli, itd… Dzięki temu nie będą potrzebne zmiany w kodzie, a aplikacja będzie w pełni przenośna. Oczywiście programiści nie unikną warunkowego wykonywania części kodu – na przykład nie wszystkie urządzenia mają GPS czy sensory ruchu i niektóre funkcje dostępne będą tylko dla określonych grup sprzętowych. Warunki te nie będą jednak wyglądać tak jak kiedyś, czyli „jeśli smartfon, to ->” lecz „jeśli ma GPS, to ->”. W końcu żyjemy w czasach, gdzie nie tylko telefony mają GPS.
Spis treści:
- Uniwersalne Aplikacje
- Windows 10 dla smartfonów
- Pełny Windows 10 i przeglądarka Edge
- Aplikacje z Android i iOS na Windowsie
- Nowy interfejs użytkownika – geneza
- Xbox, gry i HoloLens
Windows 10 dla smartfonów
Ten podtytuł mógłby pozostać niemalże pusty. Nie do końca wiadomo dlaczego, ale tematowi temu poświęcono wyjątkowo mało uwagi. Wiele wskazuje na to, że wynika to z tego, iż system ten jest w dużo wcześniejszej fazie rozwoju niż jego pełny odpowiednik. Już teraz wiadomo, że oficjalną premierę będzie miał później niż starszy brat, ale z wideo z Joe Belfiore, między wierszami możemy wyczytać, że pierwsze smartfony z Windowsem 10 pojawią się „jeszcze tego lata”. Obstawiam drugą połowę września, jeśli Microsoft zdąży z terminami.
https://www.youtube.com/watch?v=-oi1B9fjVs4
Na pierwszym keynote poświęcono kilka minut nowej funkcji, która trafi do przyszłych (niestety nie do obecnych) flagowych smartfonów i fabletów z Windowsem. Wsparcie dla Bluetooth HID pojawiło się najwyraźniej nieprzypadkowo. Dzięki podłączeniu zewnętrznego ekranu (na przykład telewizora czy monitora) do smartfona z W10 oraz (opcjonalnym) podłączeniu myszki i klawiatury zamienimy nasze urządzenie w mini-komputer. Na samym początku trzeba zaznaczyć, że NIE będzie tam z oczywistych przyczyn pulpitu. Ktoś powie, że Android umożliwia coś takiego od dawna. I tak i nie.
Po pierwsze, nie będzie to rzutowanie obrazu, a korzystanie z dwóch ekranów na raz. Na telewizorze będziemy mogli używać Worda, a na smartfonie odpisywać na SMS-a. Po drugie – Uniwersalne Aplikacje. Rozciągnięta smartfonowa appka wyglądałaby pokracznie na 40 calach, ale w przypadku Windowsa i UA dla W10 nie mamy tego problemu. Na dużym ekranie wyświetli się ona z takim interfejsem, z jakim wyświetla się na dużych monitorach komputerów PC na pełnym Windowsie 10. Gdyby się głębiej zastanowić, może okazać się, że taki zestaw jest w stanie zastąpić wielu osobom komputer. Przyjrzyjmy się już istniejącym Uniwersalnym Aplikacjom, które mogą pracować w trybie dokowania. Mając do dyspozycji pełnoprawną przeglądarkę klasy desktop (Edge), Worda, Excela, PowerPointa, OneNote, Outlooka i rosnącą bazę appek UA, osoby które używają PC do przeglądania internetu, oglądania wideo, sprawdzania poczty czy edycji dokumentów – nie będą potrzebowały niczego więcej. Moim zdaniem, taki zadokowany smartfon z Windows 10 będzie miał większą funkcjonalność niż Chromebook.
Wiemy też, że Windows 10 dla smartfonów będzie obsługiwał coś na kształt maszyny wirtualnej dla przepakowanych aplikacji Androidowych pisanych w Javie czy C++. Ale o tym więcej w dalszej części.
Spis treści:
- Uniwersalne Aplikacje
- Windows 10 dla smartfonów
- Pełny Windows 10 i przeglądarka Edge
- Aplikacje z Android i iOS na Windowsie
- Nowy interfejs użytkownika – geneza
- Xbox, gry i HoloLens
Pełny Windows 10 i przeglądarka Edge
Premiera Windowsa 10 zbliża się wielkimi krokami. Wiele wskazuje na to, że będzie miała miejsce już pod koniec sierpnia, wraz z falą nowych urządzeń z W10 (prawdopodobnie również z Surface Pro 4), jeszcze przed sezonem zakupowym „back to school”, którego Microsoft nie chce ominąć. Czym jest nowy Windows 10? To już nie desktopowo-tabletowy system operacyjny. Firma z Redmond używa określenia „One Core” w odniesieniu do wspólnego jądra systemu, który między urządzeniami różni się jedynie powłoką. Od smartfonów, tabletów, laptopów, stacjonarek, po konsole, Surface Huba, Xboxa, urządzenia IoT (takie jak Raspberry Pi) czy wreszcie HoloLens.
Wspólne jądro i wspólne API pozwala deweloperom na tworzenie jednej aplikacji, która będzie uruchamiana na wszystkich rodzinach urządzeń. Na tym i na darmowej aktualizacji Microsoft opiera swoją strategię co do tego systemu. W ciągu 2-3 lat chce, żeby ponad miliard użytkowników korzystało z Windowsa 10. Skoncentrujmy się jednak na W10 dla komputerów PC (tablety >8 cali, hybrydy, laptopy, komputery all-in-one, komputery stacjonarne). O większości zmian wiemy już niemalże wszystko. Powrót Menu Start, tryb Continuum, odpalanie dotykowych aplikacji w okienkach, wirtualne pulpity czy Cortana. Pod koniec pierwszego dnia konferencji, do użytkowników trafiła kompilacja numer 10074, która jeśli chodzi o wygląd ma niewiele odbiegać od wersji ostatecznej. Jest znacznie stabilniejsza od poprzedników, ale wciąż zdarzają się niespodziewane błędy, a interfejs w niektórych miejscach dalej wymaga nadania ostatnich szlifów.
Wszystko wskazuje, że do systemu wróci efekt „prześwitywania” okien z Windowsa 7, znany jako Aero Glass. Wygląda to trochę jak iOS 7, ale o gustach podobno się nie dyskutuje. Wiele podstawowych ustawień, elementów nawigacji przeniesiono do aplikacji dotykowych (czy „Uniwersalnych”), ale manager plików czy stary Panel Sterowania nadal są dostępne. Na razie nie wiadomo jak to będzie wyglądać w ostatecznej wersji, ale wiele wskazuje na to, że Microsoft albo nie zdążył, albo nie chce wszystkiego przenieść. Jest to zrozumiałe zbyt drastyczne zmiany mogą zrazić użytkowników biznesowych. Pani Jadzia z księgowości dzwoni do helpdesku, bo ktoś jej poprzestawiał ikony na pulpicie – a co by było, gdyby zupełnie przeorganizowano jej eksplorator plików? Lepiej o tym nie myśleć…
https://www.youtube.com/watch?v=iH1D31YHsgY
Projekt Spartan wreszcie otrzymał oficjalną nazwę – Edge. Przeglądarka jest bardzo szybka w benchmarkach, ale w codziennym użytkowaniu na razie nie jest do końca stabilna ani pozbawiona laga. Warto pamiętać, że jest to Aplikacja Uniwersalna, jednak jej wersja desktopowa korzysta z niektórych bibliotek aplikacji Win32 – choćby po to, żeby zapewnić wsparcie dla Flasha czy pluginów. Edge będzie domyślą przeglądarką w Windowsie 10 oraz wewnątrz aplikacji W10, korzystających z web-wiew.
Spis treści:
- Uniwersalne Aplikacje
- Windows 10 dla smartfonów
- Pełny Windows 10 i przeglądarka Edge
- Aplikacje z Android i iOS na Windowsie
- Nowy interfejs użytkownika – geneza
- Xbox, gry i HoloLens
Aplikacje z Android i iOS na Windowsie
O aplikacjach z Androida uruchamianych na smartfonach z Windowsem 10 mówiło się od dawna i budziło to skrajne emocje. Jedni byli zachwyceni, inni uznawali coś takiego za przyznanie się do kapitulacji. Podczas pierwszego keynote’a dowiedzieliśmy się, że appki z Androida rzeczywiście mogą trafić na W10, jednak w innej formie niż się tego spodziewano. Po pierwsze – nie będzie to przenoszenie jeden w jeden. Mając paczkę z appką (.apk) nie będziemy jej mogli ręcznie wgrać do swojego urządzenia. Aplikacja taka w niezmienionej formie będzie po prostu niekompatybilna z Windowsem 10. Czym jest zatem „Project Astoria”? Wokół tego powstało wiele nieporozumień, które chciałbym w kilku następnych zdaniach wyjaśnić.
Po pierwsze, chcąc przenieść Androidową appkę (Java / C++) na Windowsa, należy ją odpowiednio zmodyfikować – korzystając z istniejących środowisk programistycznych IDE (takich jak Android Studio czy Eclipse). Microsoft udostępni narzędzie online, do którego będzie można wysłać paczkę z naszą Androidową aplikacją – po wykonaniu analizy, narzędzie podpowie nam które fragmenty kodu mogą pozostać niezmienione, a które trzeba zmodyfikować ręcznie. Elementy takie jak udostępnianie z wewnątrz aplikacji, nawigacja przyciskami czy powiadomienia – zostaną co do zasady przeniesione automatycznie. Microsoft zachęci nas do przejścia na swoje narzędzia, zamiast narzędzi Google’a i będzie trzeba zrobić to ręczne (edytując zwykle jedną linijkę kodu). Chodzi o usługi takie jak reklamy, narzędzia analityczne, mapy (przejście z Google Maps na Bing) czy zakupy wewnątrz aplikacji. Microsoft dostarczy również API do dostosowania appki do możliwości Windowsa – choćby w zakresie dynamicznych kafelków. Całość będzie uruchamiana w swojego rodzaju maszynie wirtualnej – Windowsowego odpowiednika Dalvika czy ART-a, w bezpiecznym Windowsowym kontenerze. Warto pamiętać, że taka przeniesiona aplikacja będzie mogła działać na każdym urządzeniu z Windowsem, nie tylko na smartfonach.
Microsoft zaprezentował również założenia „Project Islandwood”, czyli zestawu narzędzi, pozwalających przeniesienie aplikacji na iOS do Windowsa 10. Działać to będzie jednak na zupełnie innej zasadzie, niż w przypadku przepakowywania appek z Androida. Dostępne narzędzia pozwolą na import projektu aplikacji iOS do Visual Studio 2015 – który w tym środowisku programistycznym będzie mógł być edytowany. Język programowania oczywiście pozostaje bez zmian i jest nim Objective-C. Po niezbędnych zmianach w kodzie oraz dodaniu opcjonalnych funkcji obsługiwanych przez Windowsa (takich jak dynamiczne kafelki), Visual Studio umożliwi debugging i kompilację projektu do natywnego kodu binarnego Windowsa 10 bez potrzeby korzystania z emulatorów czy maszyn wirtualnych. Takie podejście najprawdopodobniej zapewni większą szybkość działania i większą stabilność niż w przypadku uruchamiania aplikacji z Androida.
Najwięcej nieporozumień w mediach pojawiło się w związku z premierą aplikacji Visual Studio Code dla OSX i Linuksa. Nagłówki portali krzyczały „Visual Studio dla OSX i Linuksa!” co jest całkowitą bzdurą. Visual Studio Code to nic innego jak… edytor tekstu. Bardzo zaawansowany, ale wciąż tylko EDYTOR kodu. Z podświetleniem składni, obsługą wielu języków, inteligentnymi podpowiedziami, snippetami i autosynchronizacją kodu ale BEZ możliwości kompilacji czy debuggingu. To EDYTOR KODU, a nie środowisko programistyczne. Notepad++ na sterydach.
Spis treści:
- Uniwersalne Aplikacje
- Windows 10 dla smartfonów
- Pełny Windows 10 i przeglądarka Edge
- Aplikacje z Android i iOS na Windowsie
- Nowy interfejs użytkownika – geneza
- Xbox, gry i HoloLens
Nowy interfejs użytkownika – geneza
O nowym wyglądzie Windowsa 10 napisałem już wszystko, więc skupię się na rzeczach nowych i wyjaśnieniu co stało za wszystkimi, czasami zaskakującymi, zmianami. Warto pamiętać, że Modern UI wywodzi się z interfejsu odtwarzacza muzyki ZUNE. Interfejs aplikacji takiego urządzenia jak i samego systemu może być prosty i „artystyczny”. I tak właśnie było w roku 2010. Z czasem pojawiały się jednak aplikacje bardziej zaawansowane, do których nijak nie pasowała ogromna typografia, piwotowe menu czy wszechobecne prostokąty.
Microsoft zdaje sobie sprawę z tego, że sztywne wytyczne dla projektantów, jakie stworzono dla Modern UI ograniczały twórców aplikacji, a czasami nawet zniechęcały do tworzenia dla tej platformy. Wynikało to z faktu, że aplikacje taką należało projektować od zera, co wiąże się z dużym nakładem pracy i czasu. Wraz z Windowsem 10, Microsoft ma ostatnią szansę zachęcenia deweloperów do zainwestowania w tą platformę. Oficjalnie przyznaje, że w wytycznych dla projektantów odchodzi od trybu „rób – nie rób”, pozostawiając więcej swobody twórcom. Stąd kontrolka do hamburgerowych menu czy zakładek. Należy jednak pamiętać, że nie zrezygnowano z piwotów czy widoku Hub – są one dalej dostępne. Microsoft prostu dodał natywną możliwość dodania nawigacji hamburgerowej. Dostępne następujące widoki nawigacji:
- piwoty
- zakładki
- hub
- master-detail
- hamburger
Cel wydaje się jasny. Zbliżenie się do swobody jaką mieli projektanci aplikacji Win32 (desktopowych). Dlaczego? Microsoft upatruje swojej przyszłości w Aplikacjach Uniwersalnych i liczy na to, że za kilka lat całkowicie zastąpią one aplikacji desktopowe. Uniwersalny Photoshop czy Visual Studio? Wszystko na to wskazuje. A chyba nikt sobie nie wyobraża tych programów, zaprojektowanych według wytycznych Modern UI. Jest to oczywiście broń obosieczna – odbiorca końcowy, który doceniał spójność i harmonię Windows Phone może czuć się nieswojo, gdy każda aplikacja będzie wyglądała inaczej. Modern UI spłonęło na stosie w imię wyższego dobra. Czy opłaci się to firmie z Redmond? Odpowiedź na to pytanie poznamy w ciągu najbliższych 5 lat.
Spis treści:
- Uniwersalne Aplikacje
- Windows 10 dla smartfonów
- Pełny Windows 10 i przeglądarka Edge
- Aplikacje z Android i iOS na Windowsie
- Nowy interfejs użytkownika – geneza
- Xbox, gry i HoloLens
Xbox, gry i HoloLens
Xbox na Windows 10 to możliwość streamingu gier z Xbox One na Windows 10 oraz wsparcie DirectX12. Chciałoby się powiedzieć wreszcie. Streaming dla wszystkich urządzeń z Windows 10 i aplikacja Xbox pozwalająca w pełni wykorzystać funkcjonalność konsoli. Przejście na DirectX12 to ogromny krok, który, przy wsparciu producentów gier, może znacznie poprawić płynność działania i zoptymalizować pobór mocy. A wszystko dzięki lepszej komunikacji rdzeni CPU i GPU. Wreszcie kilka rdzeni CPU na raz może komunikować się z rdzeniami GPU – zapewni to zauważalnie lepszą wydajność na tym samym sprzęcie. Realne benchmarki w istniejących grach (np. Fable) wskazują na nawet 20-30% wzrost wydajności, co przekłada się na większe wartości fps lub lepsze detale. I… w zasadzie to by było na tyle. Temat Xboxa, aplikacji na niego i gier został potraktowany jeszcze bardziej po macoszemu niż Windows dla smartfonów.
HoloLens to okulary rozszerzonej rzeczywistości od Microsoftu. Jedna z najważniejszych informacji dla deweloperów jest taka, że każda Uniwersalna Aplikacja będzie kompatybilna z tym urządzeniem, które przecież działa w oparciu o Windows 10. Oczywiście twórcy zapewne będą chcieli dostosować swoje appki do nowego sposobu interakcji i wyświetlania, jednak co do zasady będą korzystać z wspólnego API i nie będzie potrzeby wprowadzania dodatkowych efektów 3D – choćby w przypadku tworzenia „płaskich” odtwarzaczy wideo czy innych aplikacji konsumpcji treści. Bardziej zaawansowani programiści będą mogli skorzystać z silnika 3D od Unity, który teraz będzie zintegrowany z Visual Studio, co jest ogromnym krokiem na przód i ułatwieniem jeśli chodzi o tworzenie obrazu 3D.
https://www.youtube.com/watch?v=AaTyeDtht-8
Ciekawa jest też kwestia samego sprzętu. Podczas styczniowej prezentacji nie był on gotowy i testerzy korzystali z ciężkich i okablowanych prototypów. 100 dni później, podczas Build 2015 można było zobaczyć niemal finalną wersję – w pełni autonomiczną i zmieszczoną w obudowie znanej z graficznych renderów i materiałów prasowych. Co ciekawe, Microsoft twierdzi, że moc obliczeniowa HoloLens „przewyższa moc obliczeniową laptopów”. Pierwsze wrażenia osób, które korzystały z nowej wersji są na ogół bardzo pozytywne. Wszyscy zachwycają się przestrzennym dźwiękiem, jednak zwracają uwagę na małe pole widzenia nowej wersji. Styczniowy prototyp wyświetlał hologramy w dużo większym obszarze naszego widzenia, a nowa wersja wyświetla go tylko na środku. Zespół ma jeszcze czas na poprawki, więc miejmy nadzieję, że kwestia ta zostanie poprawiona, o ile nie wynika z ewidentnych ograniczeń sprzętowych. Microsoft mówił też o rozsądnej cenie, ale w kontekście HoloLens słowa te mogą znaczyć niemalże wszystko.
Spis treści: