w Praktyce
7 godz. 1 min · Angular · Full-stack i Programowanie
Mateusz KuleszaSenior Software Developer, Konsultant, TrenerPodstawą produktywnej pracy z angularem jest możliwość zagwarantowania że wszystko działa bez potrzeby wielokrotnego “przeklikiwania” poszczególnych ekranów. W pierwszej części kursu omawiam więc temat testów automatycznych.Już po obejrzeniu pierwszych lekcji zobaczysz dlaczego warto testować kod i jak dzięki narzędziom dostarczonym z angularem jest to proste. Zobaczysz jak testowanie automatyczne pozwoli zaoszczędzić Ci wiele godzin spędzonych na szukaniu błędów.
Za jakość aplikacji odpowiada nie tylko to czy działa ona poprawnie, ale w dużej mierze decyduje o tym dobry interfejs użytkownika oraz UX, czyli user experience. Dwie kolejne sekcje kursu poświęcone są właśnie dobremu UI oraz UX. Omawiam typowe problemy w oparciu o zasady i wskazówki specyfikacji Google Material Design - jednej z najbardziej szczegółowych specyfikacji UX. Wszystkie przykłady UI zarówno w wariantach desktopowych jak i mobilnych omówione są na przykładzie Angulara oraz obszernej biblioteki komponentów Angular Material. Zobaczysz nie tylko jak korzystając z gotowych komponentów błyskawicznie budować nowe funkcjonalności, ale przy okazji omówimy wiele praktycznych wskazówek oraz dobrych praktyk UX które warto wykorzystać w Twoich aplikacjach.
W ramach budowania interfejsów skupimy się na najmniejszych szczegółach takich jak prawidłowe zachowanie linków, przycisków oraz wskaźników przechodząc stopniowo do coraz większych elementów aplikacji takich jak nawigacja, układ strony, paski nawigacyjne czy okna dialogowe. Przy każdym etapie czeka Cię masa wskazówek, przykładów i rozwiązań typowych problemów user experience.
Jednak UX to nie tylko wygląd i zachowanie pojedynczych elementów. W ostatnich sekcjach kursu dowiesz się jak projektować bardziej złożone interakcje z użytkownikiem. Zobaczysz wieloetapowe formularze kreatora oraz dowiesz się jak zarządzać stanem aplikacji oraz różnymi źródłami danych. Pokaże Ci jak zbudować samodzielnie sortowane, filtrowane i stronicowane źródła danych oraz połączyć je z różnymi komponentami UI takimi jak listy czy datagrid.
Na koniec kursu zobaczysz jak możemy różne gotowe elementy UI połączyć w przepływ ekranów budując ścieżkę użytkownika. Zobaczysz jak prawidłowo zaprojektowane komponenty wraz z dobrze zaplanowanym UX pozwalają być niesamowicie produktywnym jednocześnie nie poświęcając jakości czy dobrej architektury aplikacji.
Jest to kurs dla osób które już pracowały z angularem i chciałyby wyjść poza pojedyncze techniki oraz poznać proces projektowania aplikacji w praktyce z uwzględnieniem najlepszych praktyk programistycznych oraz user experience. Zarówno w wariancie webowym jak i projektując pod urządzenia mobilne.
Angular 6, 7, 8+
Jedną z bardziej charakterystycznych cech material design jest
formularz formularze w material design są zbudowane w bardzo ciekawy
sposób że etykieta znajduje się w środku jeśli pole jest puste natomiast
jeśli chce pisać no ten place holder etykieta w środku animuje
się tutaj do góry na krawędź oczywiście nie
jest to wymagane jest to jeden z opcjonalnych styli mamy
też taki styl wypełniony gdzie etykieta trochę inaczej się zachowuje możemy
też w różny sposób na przykład te elementy dekorować na to wszystko pozwala
nam material design możemy dać dodatkowy tutaj tekst możemy
umieścić także komunikat błędu który zmienia także wygląd takiego
elementu tak mam tutaj właśnie różne style i
różne style w różnych sytuacjach możemy zastosować jak mamy jednolite białe
tło no to możemy wykorzystać te bez wypełnienia jakbym chciał na przykład umieścić
na jakimś kolorowym tle w ten sposób no to właśnie ten
taki wariant z tłem może nam się bardziej przydać nie jest polecane
mieszanie ich i teraz jeśli chodzi o angular material to
mamy tu odpowiednie komponenty przejdę tutaj odpowiednie zakładki components form controls
i w tej lekcji zaczniemy od takich najbardziej podstawowych elementów czyli
zaczniemy na przykład od pola input które tutaj jak widzisz też zachowuje się
w ten sam sposób mamy też animacje i mamy te wszystkie
opcje żeby no właśnie wyglądało to jak takie
pole z material design bo mam przygotowane component forms example
works przejdę sobie teraz do edytora
i spróbujemy dodać tutaj po prostu input jeśli dodam
zwykły prosty input będzie on wyglądał w ten sposób żadnych
specjalnych styli żeby to zaczynało
się zachować zachowywać się jak pole z materiala musimy dać tutaj mat input
specjalną dyrektywę i oczywiście żeby ona zadziałała to musimy do
naszego modułu dodać odpowiednie tutaj importy z
material design czyli będzie to mat input
module a także będzie nam potrzebny mat
form form field module to
dlatego że w input reprezentuje oczywiście pole tekstowe ale
żeby mieć ten efekt właśnie animacji i etykiety potrzebujemy
dwóch komponentów potrzebujemy komponent który umieścimy w środku może
być na przykład input może być to checkbox może być to dropdown natomiast ten efekt
animacji etykiety do tego użyjemy właśnie tutaj coś
takiego jak form field czyli input żebym miał tą animację
powinien zawierać się w elemencie mat form field i teraz mat form field
może zawierać właśnie tekstowy element text area może listę
rozwijaną i inne elementy które sobie też tutaj omówimy
czyli tak mam dodane moduły i teraz
tak mat input to za mało musimy jeszcze dodać tutaj mat form field
dodam mat form field i w środku umieszczamy kontrolkę
czyli jak widzisz kontrolka składa się z kilku komponentów dlatego że to tworzy
grupę czyli grupuje wszystkie te elementy które widzieliśmy sobie
tutaj w dokumentacji tak może być to tekst
etykieta ikona natomiast w środku umieszczamy
dowolny element formularza którego chcemy użyć jeśli zapiszę to w
tym wariancie to powinniśmy zobaczyć pole
które widzisz zupełnie inaczej wygląda i mamy tutaj już animacje rozwijanej
belki jeśli chce etykietę możesz na dwa sposoby
placeholder po prostu w
ten sposób i to się animuje możemy też użyć specjalnego
tagu tutaj label czyli jak zobaczymy sobie tutaj możemy użyć
tutaj placeholderów możemy
zmienić na dowolny z tych styli tutaj dostępnych możemy
użyć także tutaj specjalnego mat label czyli elementu
który tutaj będzie reprezentował tą kontrolkę jest to szczególnie istotne
jeśli mam jakieś specjalny typ elementu na przykład nie jest to input tylko jakiś
custom'owy nasz jakiś specjalny element no to żeby ta etykieta się
pojawiła żeby się animowała no to umieszczamy tutaj mat label jak
widzisz przy inpucie nie jest to konieczne placeholder po prostu jest stąd pobrany
i tutaj ten mat form field dodaje nam właśnie
taki element mat label za nas i
teraz tak mamy kilka wariantów ten float label oczywiście może
być animowany ale możemy go na przykład zablokować u góry możemy
go także zablokować na dole żeby zachował się jak zwykły placeholder i
aby zmienić wygląd mamy tutaj specjalny
argument appearance czyli zmieniając na przykład
tutaj appearance czyli po prostu wygląd dostaniemy
komponent który będzie wyglądał troszeczkę inaczej mat form
field appearance legacy albo appearance na przykład field
który robi nam wypełniony element taki
z tłem możemy
no właśnie appearance legacy field wymagają osobnej
etykiety jeśli chodzi o nie tutaj któryś
z tych wyglądów tylko jeśli chodzi o tą
animację no to opcja do tego służy tutaj float
label i float label może mieć właśnie zawartości auto always
i never auto automatycznie always jest przypięta u góry never
nigdy czyli ja tu tego nie będę zmieniał zostajemy przy tych domyślnych wartościach
chciałem tobie tylko pokazać że można to sobie dostosować do
własnych potrzeb jak chciałem pokazać takie bardziej rozbudowane pole pole które będzie zawierało na
przykład tutaj potrzebne informacje czyli możemy użyć takiego pola
które nazywa się mat hint i mat hint występuje w dwóch wariantach
możemy umieścić mat hint czyli podpowiedź na końcu
czyli na przykład mogę taki input ja tutaj go sobie przypiszę do
zmiennej input rev powiedzmy go nazwę sprawdzić
jaka tam długość jest i powiemy mu na
przykład może mieć dziesięć znaków i będzie to wyglądało
w ten sposób tu nam się pojawi taki właśnie hint etykietka i
w trakcie pisania oczywiście będziemy się to trochę przerenderowywało tutaj
mogę dodać dwa takie elementy jeden na końcu tutaj aligment
jeden na początku czyli jak na przykład informacje tutaj max
na przykład w ten sposób max
characters 10 czyli
możemy umieścić informację tu z przodu drugą z tyłu tutaj
jeśli pojawi się błąd do błędu przejdziemy w kolejnych lekcjach do obsługi błędów
do walidacji no to te etykietki nam znikną w ich miejsce pojawi się
błąd okej dodatkowo
jeszcze możemy umieszczać takie różne elementy tak jak tu widzieliście widziałeś
taką ikonkę lub przycisk i helper i
teraz takie elementy tutaj możemy dawać przy użyciu mat suffix
i mat prefix czyli ja tutaj sobie pożyczę jakieś dwa takie elementy
prefix suffix i
zobaczmy możemy prefix czyli z tej strony umieścić
element możemy suffix z tej strony na przykład gdyby to był number
gydbyśmy mieli tutaj liczbę tutaj dodać walutę i
dwa zera tym prefixem lub suffixem nie musi być tekst
może być na przykład to przycisk albo ikona czyli może być na przykład mat icon
albo po prostu button mat button
tak dodać sobie tutaj jakiś przycisk okej i
to też może być prefix suffix formularza i
oczywiście żeby to był mat button muszę
dodać mat button module
i jeśli chcemy z ikonek korzystać mat icon module jeśli
tu chciałbym użyć ikony zobaczmy przycisk wygląda w ten sposób
czyli on tu się dopasowuje do formularza staje się częścią formularza i też
jeśli ja go klikam to też to aktywuje formularz czyli
te wszystkie elementy które tutaj widzimy w specyfikacji container ikona
tekst tutaj podpis jak najbardziej to wszystko jest
obsługiwane przez angular material
i w kolejnych lekcjach zajmiemy się innymi polami formularza tak innymi
typami pól bo tu nie tylko może być to input to może być checkbox radio select
może być tutaj date picker slidery i
obsługa błędów no ale to wszystko już w kolejnych lekcjach tak więc do zobaczenia