środa, 5 listopada 2014

ng-europe cz.2 - nowy router, animacje, Material Design, Angular 1.3, Cordova, Ionic

Ach… W końcu udaje się mi się zrobić podsumowanie z kolejnych sześciu nagrań, jakie pozwoliłem sobie wybrać z ng-europe i obejrzeć. Dziś będzie trochę publicystyki, będą głosy podziwu, trochę hejtu, a także filozoficznych rozważań. To oczywiście nie wszystko, jeśli chodzi o nowego Angulara, który poza routerem nie jest obecny w dzisiejszych klipach. W swoim czasie podsumuję bardziej wnikliwie i jego, jak przebrnę przez mniej eksponowane materiały.

 

The new Router for AngularJS by Rob Eisenberg at ng-europe 2014

Cóż prezentacja bardzo, ale to bardzo ogólnikowa. Tutaj jeden kolega obronił Roba wskazując miejsce w githubie. Ale wróćmy do wystąpienia. Konwencje? Gdzie ja to słyszałem? Czyżby Rob czerpał ze swoich pomysłów z Caliburn Micro? Zagnieżdżone “frame’y”, asynchroniczna nawigacja, asynchroniczne dialogi, czy ja się z tym nie spotkałem w Silverlight czy XAML? Zawsze patrząc na Angular 1.x stawiałem sobie pytanie, a co jeśli ktoś chciałby nawigować wewnątrz danego widoku?  Dynamiczne ładowanie brzmi interesująco, chociaż czy z tą ideą nie spotkałem się w czasach Silverlight 4? Ale chwała twórcom Angulara, że próbują zrobić coś lepszego niż zrobili.

image

Nowa właściwość:  dynamiczne ładowanie

image

image

do dema nie został pokazany kod źródłowy

image

asynchroniczne operacje przy nawigacji: okna dialogowe, operacje na bazie, …

image

image

 

Animations (sequencer, web animations) by Matias Niemelä aka yearofmoo at ngeurope 2014

To wystąpienie z kolei przypomniało mi czasy, bo ja wiem, tak Blenda 4, rok 2010. Wtedy zaczynały się pojawiać się w Silverlight efekty na layoucie m.in fluid layout (pamięta ktoś przykład z krzesłem?) czy animacje dzieci w kontenerach. Twórcy Angulara też zaczęli tworzyć wreszcie fajne wysokopoziomowe efekty animacyjne i tranzycyjne.  Staggering?  Gdzie ja ostatnio słyszałem? A, w efektach animacyjnych Windows Phone 8.1.  Tranzycje między stronami?  Jak dla mnie adaptacja pomysłu znanego od początku Windows Phone i XAML (kto pamięta Windows Phone Silverlight Toolkit ?)

Fajny pomysł, żeby animacje wyrażać jako promise. Taki jeden świeży krok (nie doczekaliśmy się póki co animacji wykonywanych jako Task-i).

image

3-party keyframes mogą być dołączane do staggera

image

image

image

image

image

image

image

image

image

Jak grupować animacje? Wykonywać sekwencyjnie i równolegle?  I mieć prosty CSS/JS ?

Potrzebujemy dostęp do DOM szablonu, zanim zostanie załadowany, by kontrolować, które komponenty ładować i kiedy.

Nie wszystko używa dyrektyw.

ngAnimateLayout - do animacji layoutu (zmiana elementów w html)

image

image

image

image

image

image

image

Prowadzi to do lepszej kontroli, jak strona się renderuje.  Sekwencer może dawać wyższy poziom kontroli do zarządzania cyklem życia widoku.

 

Material Design by Thomas Burleson & Max Lynch at ng-europe 2014

Material Design w Angularze?  Dla mnie to musi się kojarzyć z WinJS, który implementuje Modern UI.  Aria?  Tak to standard webowy, ale pierwszy raz o nim usłyszałem dwa lata wcześniej przy okazji wertowania dokumentacji WinJS.  Efekty layoutu jak z Silverlight cztery lata temu.  Komentarze do niektórych komponentów wizualnych pod screenshotami.

image

image

image

image

image

image

     Responsywna nawigacja. Na małym ekranie ułuda nawigacji, podczas gdy na dużym ekrany są cały czas obok siebie. 

     Napisałem kilka dni temu coś takiego samemu, ale dobrze że ktoś próbuje coś takiego standaryzować i dostarczać uniwersalne komponenty.

image

image

image

image

image

Google nielicho się narobiło przygotowując layout ala grid.  Eh, twórcy Chrome mogli zaimplementować zgłoszony jako draft do W3C przez Microsoft CSS Grid używany w WinJS dwa lata wcześniej…

image

image

image

image

 

Angular 1.3 by Jeff Cross & Brian Ford at ng-europe 2014

Po opadnięciu pierwszego dymu z Angular 2.0, wzrok skierowałem dokładniej na bieżącą wersję 1.3.  Jak widać warto korzystać z tej wersji. Poza wyraźnym wzrostem wydajności mamy kilka naprawdę godnych uwagi rzeczy:

  • binding one-time (skąd my to znamy jak nie z XAML, począwszy od WPF z 2006 roku ?)
  • asynchroniczna walidacja (skąd to znam? Aha, z Silverlight 4 cztery lata temu)
  • opóźnienie czasowe w data bindingu (skąd to znam?  A, z WPF 4.5 trzy lata temu)
  • aktualizacja data bindingu w zależności od zdarzenia (z czym mi się to kojarzy? A, z opcją bindingu w XAML o nazwie UpdateSourceTrigger)
  • bindowanie do gettera / settera (to podstawa bindingu w XAML, co ciekawe również twórcy Angulara 2.0 mówią o bindingu do propercji i zdarzeń zamiast do atrybutów jak jest w Angular 1.x)
  • ng-messages (łatwiejsze definiowanie warunków do niestandardowej walidacji niż w wersji 1.2)
  • ngRia (wreszcie wysoka dostępność trafiła pod strzechy)
  • $watchGroup (może sie przydać zamiast kilku watch-y)

imageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimage

image

 

Keynote on the state of Angular by Igor Minar, Brad Green and Judy Tuan at ng-europe 2014

Cóż, oglądanie tego keynote po obejrzeniu filmów o Angular 2.0 nic nie wnosi… Liczyłem na jakiś bonus czy jakiś ekstra pokaz. Ale się przeliczyłem.

image

image

image

image

 

Using Angular & Phonegap to build hybrid mobile applications by Julien Bouquillon @ ng-europe 2014

Co do aplikacji hybrydowych mam zdanie umiarkowane. Nie mówię im nie, choć uważam że pełne możliwości danej platformy mobilnej (wydajność, user experience) może wyrazić tylko natywna aplikacja. Nie muszę się nikogo prosić, by z czegoś skorzystać czy pisać jakieś wtyczki. Platformy muszą się różnić między sobą, walczyć, inaczej świat z pełną unifikacją byłby nijaki.

image

image

image

image

mockowanie i uruchomienie na desktopowej przeglądarce

image

image

image

 

Ionic Framework by Andrew Joslin at ng-europe 2014

Kolejny mobilny framework dla ludzi z opcji Web. Jakby taki współczesny odpowiednik mobile jQuery, tylko że bazujący na Angularze. Prezentacja stanowi bardzo dobre wprowadzenie do biblioteki. Mamy m.in rejestrowaną obsługę widoków, klawisza back, predefiniowanych wiele styli CSS, wbudowane animacje… Pstryk i mamy aplikację. Ale czuję się trochę zniewolony.

image

image

image

image

image

ion-nav-view - posiada tranzycje

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

przycisk domyślnie upodobniony do platformy

image

image

image

image

image

image

image

Brak komentarzy: