niedziela, 6 kwietnia 2014

BUILD 2014 - nowy model aplikacji w Windows Phone, uniwersalne aplikacje w JavaScript, migracja aplikacji web do aplikacji Windows Store i hybrydowych

W pierwszej kolejności po Keynote wybrałem wprowadzenie do aplikacji na WP 8.1 oraz najbardziej tajemniczy temat jak universalne aplikacje JavaScript (które nie były opisywane nawet w przeciekach) na Windows, Windows Phone, a także Xbox. By dopełnić całości tematu webowo-mobilnego obejrzałem migrację aplikacji web ze świata Open Source do aplikacji Windows Store. Komentarze przy screenshotach.

The New Windows Phone Application Model

Niezbyt odkrywcza prezentacja dla niektórych, ale dla większej części już tak.

image

image

image

image

image

Ulepszony multitasking w WP 8.1

image

image

image

Miracast, czarne ekrany podczas prezentacji

rytm serca

image

image

image

image

image

image

image

image

image

image

 

What's New in WinJS: The Road Ahead

Prezentacja przyjemna w oglądaniu, wszystko podane w przejrzysty i uporządkowany sposób. Polecam.

Kierując się optymalizacją i chęcia jak najlepszego przystosowania do interfejsu Windows Phone twórcy WinJS stworzyli nową dedykowaną wersję. Nie wszystkie kontrolki są wspierane na WP, są też dedykowane elementy, jak Pivot, dodatkowe animacje, obsługa skórek. Na niektórych ogólnodostępnych kontrolkach np. ListView  pojawiają się dodatkowe atrybuty, które są ignorowane na tablecie.

Kolejna rzecz do wystawienie WinJS na github jako Open Source na licencji Apache 2.0. Pokazano, że na Chrome działa trochę kontrolek, ale czasami bardziej zawansowane sprawy jak specyficzne zachowania przy gestach dotykowych nie zawsze już tak samo, co wynika z różnic między IE i Chrome. Pokazano też demo na iOS.  Docelowo WinJS ma wspierać wszystkie nowoczesne przeglądarki i konkurencyjne platformy mobilne, tak by była to jedna z bibliotek JavaScript, stosowana nie tylko przez twórców aplikacji Windows Store, ale także przez web developerów. Pewną niszą są tutaj wydajne kontrolki UI, z obsługą gestów, zyskujące natywną wydajność np. ListView z wirtualizacją. WinJS może się ładnie integrować z popularnymi bibliotekami tj. Angular.js czy Knockout.js. Zademonstrowano przykłady, w których użyto dedykowanych do tych bibliotek adapterów. W efekcie np. kontrolki WinJS na elementach HTML można z automatu zapisywać w postaci dyrektyw Angular. Można też stosować alternatywne systemy do szablonów np. Moustache.

image

WinJS w nowoczesnych przeglądarkach webowych oraz na innych platformach mobilnych

image

Obok stosowanych przez nas webowych bibliotek tj. jak np. Angular, Knockout, Bootstrap dochodzą WinJS i WinRT.

image

WinJS jako uzupełnienie dla web dewelopera

image

Łącząc dwie wizje otrzymujemy

image

Zasady

image

Płynny interfejs, zwłaszcza animacje realizowane z natywną wydajnością

image

image

image

image

image

Drobne różnice w AppBar między wersją na tablety

image

image

closedDisplayMode ignorowany na PC

image

image

image

ListView – inny wygląd na Windows Phone, inny sposób zaznaczania, obsługa wirtualizacji

image

tapBehavior - adaptacja do telefonu

image

image

image

image

kolor niebieski - nowe animacje na telefon

image

image

image

image

image

Współpraca z innymi bibliotekami

Można używać z innymi mechanizmami szablonów np. Moustache

Adaptery WinJS dla Angular.js i Knockout.js

image

image

image

image

image

image

image

image

image

FlipView działa na Chrome, ale nie ma takiego swipe dotykowego. Na Chrome nie działa też przenoszenie elementów listy z użyciem dotyku.

Cordova, aplikacje hybrydowe. ListView na iOS.

image

image

 

Building a Converged Phone and PC App using HTML and JavaScript

Bardzo przyjemna prezentacja. Pokazuje dokładnie to, co obiecuje w tytule.

Świetna sprawa z tymi projektami Shared, coś wrzucam i samo się to dalej kopiuje do projektów dla Windows i Windows Phone. Dzięki temu, co współdzielimy, co rozdzielamy zależy od pomysłu na UI, wymagań konkretnej aplikacji. Microsoft niczego nie narzuca. Jedne aplikacje mogą współdzielić niemalże wszystko (zasadniczo poza manifestami i index.html dołączającym różne wersje WinJS dla Windows i Windows Phone), inne mniej. Przy wspóldzieleniu potrzebna jest dobra modularyzacja aplikacji i jej kontrolek. Powinniśmy mieć porządek, trzymać do każdej strony i kontrolki  plik JS, CSS, HTML. Z reguły kod JavaScript udaje się współdzielić w dużym stopniu, często także widoki HTML, najczęściej różnicuje się style CSS.

A i jeszcze jedno. Uważam, że prezentacja może stanowić inspirację do opracowania współdzielenia kodu webowej aplikacji SPA na większe i mniejsze urządzenia, jeśli nie chcemy iść w Web Responsive Design. Microsoft praktycznie nie stosuje go między Windows a Windows Phone, z uwagi - jak sądzę - na postawienie na wydajność  i jak najlepszy user experience na smartfony i na większe urządzenia (to były priorytety dla twórców, jak określili sami w jednym z wywiadów na korytarzu, nie współdzielą wszystkiego). Aczkolwiek Microsoft swoim rozwiązaniem - jak można łatwo zauważywać - nie zabrania stosować stron responsywnych.

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

 

HTML5 Platform from Web to Apps

Teraz coś dla osób piszących typowe aplikacje webowe przy pomocy typowych ostatnio narzędzi Open Source tj, yeoman, grunt, bower, sublime a także używających popularnych ostatnio bibliotek tj. Knockout, Angular, Bootstrap itp. Otóż nie otwierając Visual Studio można swoją aplikację webową przerobić na aplikację Windows Store, odpalając tylko odpowiednie skrypty z linii komend. Tutaj responsywna, aczkolwiek bardzo prosta strona świetnie sprawdziła się przy współdzieleniu ekranu Windows w różnych proporcjach. Szkoda, że w demonstracji zabrakło portowania jej na Windows Phone.

image

Typowa aplikacja webowa napisana narzędziami społecznościowymi

image

image

image

Przeładowanie przeglądarki przy zmianie kodu.

image

image

image

Automatyczne odświeżenie we wszystkich przeglądarkach.

image

Trudne stylowanie kontrolki paska postępu.

image

image

image

Zrobienie aplikacji na Chrome jest bardzo proste. A jak z Windows app? Bardzo podobnie!

Odpalamy skrypt dodający manifest.

image

image

image

skrypt instalujący i uruchamiający aplikację

image

image

Bez linijki kodu Windows dostajemy obsługę podziału ekranu, skalowanie, wysyłanie maila z ikoną

image

image

image

 

Blending the Web with Platform Capabilities

Kolejna prezentacja o rozszerzaniu aplikacji Web w kierunku hybrydowych i natywnych.  Znowu wychodzimy od Open Source. Do aplikacji hybrydowych wykorzystano Cordovę. Ogólnie jednak spodziewałem się czegoś więcej po tej prezentacji.

image

image

image

image

image

image

image

image

Działa w Windows i Windows Phone (choć prezenterom nie udało się odpalić projektu WP)

image

image

image

image

image

 

Building Windows, Windows Phone, and Xbox One Apps with HTML/JS/CSS & C++

Temat mnie mocno zaciekawił po obejrzeniu KeyNote. Po obejrzeniu jednak tej prezentacji mój entuzjazm nieco się zmniejszył, bo do uruchamiania projektu na Xbox używany był Visual Studio 2012. Prezenter za każdym razem lawirował między VS 2013 a VS 2012. Inna sprawa to współdzielenie kodu natywnego przez C++, a gdzie WinRT?  Owszem może do pisania shederów C++ jest najlepszy, ale co z resztą kodu natywnego i co z .NET?. Temat jakby przemilczany.

Dużym plusem prezentacji są dobre wzorce na strukturalizację aplikacji, co pozwala zmaksymalizować współdzielenie kodu i plików między różnymi platformami. Dobry pomysł, by przy współdzieleniu widoków stron HTML stosować sztuczkę i pod taką samą nazwami kontrolek na div-ach (jak są w różnych pakietach to piszemy moduł JavaScript, który opakowuje różne nazwy kontrolek na różnych platformach) wstrzykiwać ich różne implementacje. W ten sposób zrobiono stronę HTML z abstrakcją kontrolki hub-a (na WP jako pivot) oraz abstrakcyjnie obsłużono search (na Windows i Xbox korzystając z komponentów systemowych, w WP otwierając nową stronę).

image

image

image

image

image

image

image

image

image

image

Do uruchamiania projektu Xbox potrzebny Visual Studio 2012.

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

Brak komentarzy: