Projektowanie stron i UI/UX
11 godz. 24 min · UI, UX i Webdesign
Grzegorz RógIdea ArchitectPoznasz podstawowe zagadnienia związane z funkcjonowaniem stron WWW w sieci - porozmawiamy o przeglądarce, domenach oraz DNS, wyborze odpowiedniego dostawcy usług hostingowych i najważniejszych parametrach na które należy zwrócić uwagę aby nasza strona WWW mogła skalować się wraz ze wzrostem ruchu. Powiem też o tym jak wygląda podział ról w procesie projektowania a także poznamy podstawowe pojęcia jak serwer i client-side oraz ich najważniejsze technologie html css js, pomówimy o blibliotekach i frameworkach, bazach danych i technologiach serwerowych jak asp net i php. Ta część głównie kierowana jest do osób które stawiają swoje pierwsze kroki w webdesignie i stanowi dopełnienie całego materiału.
Czy wiesz, że aż 25% ludzi na świecie korzysta wyłącznie z urządzeń mobilnych do przeglądania sieci? W tej części kursu będziesz miał okazję zainspirować się nowym podejściem do projektowania w związku ze zmieniającym się ekosystemem urządzeń i technologii mobilnych. Dowiesz się czym jest podejście mobile first oraz jakie są zalety rozpoczęcia procesu projektowego od małych ekranów. Poznasz też aktualne kierunki i trendy związane z wykorzystaniem IOT oraz VR i sensorów. Sprawdzimy statystyki i przygotujemy się do praktycznych aspektów projektowania na wiele ekranów, czyli…
Współczesny proces tworzenia serwisów, czy raczej aplikacji internetowych w ciągu ostatnich lat ewoluował w kierunku sprawnego dostarczania rezultatów i realizacji celów biznesowych w rekordowym czasie. W kursie omówimy dokładnie nowe podejście, wspominając także o metodologii Agile i podejściu Scrum, które z odpowiednimi modyfikacjami zastosujesz do każdego serwisu - niezależnie, czy tworzy go duży zespół osób, czy tylko grafik i programista. Jeśli słyszałeś o Agile UX i Lean UX to prawdopodobnie zainteresuje Cię to w jaki sposób zorganizować pracę tak aby przebiegała ona z nakierowaniem na rezultat. Powiem Ci też jak niemal całkowicie zrezygnować z przestarzałej dokumentacji na rzecz aktywnego angażowania zespołu i właściciela projektu.
Kurs, który masz przed sobą prowadzi Cię w sposób spójny i zrozumiały po kolejnych etapach procesu projektowania stron WWW. Ma on stanowić kompletne źródło wiedzy, do którego będziesz wracał w różnych fazach swoich projektów. Dlatego kolejnym działem jest wyjaśnienie zagadnienia pracy koncepcyjnej i jego pierwszego etapu jakim jest definicja celów oraz stworzenie modelu biznesowego dla powstającej witryny. Pokażę Ci jak zdefiniować cele, akcje oraz funkcje serwisu i jak powinien przebiegać podział tych elementów w fazie koncepcyjnej.
Kolejnym etapem pracy będzie zweryfikowanie tego, czy cele biznesowe serwisu odpowiadają zapotrzebowaniu oraz specyficznym wymaganiom użytkowników. Powiem Ci jak małym nakładem czasu przeprowadzić testy na użytkownikach i wyjaśnię, dlaczego są potrzebne w fazie koncepcyjnej. Zdefiniujemy także użytkowników, do których chcemy kierować swój serwis a także stworzymy persony, które będą towarzyszyć nam podczas kreowania strategii treści dla serwisu.
Ta obszerna część kursu obejmuje niezwykle ważny etap pracy koncepcyjnej, w ramach którego najpierw opracujemy schemat i architekturę treści dla naszego serwisu a następnie zbudujemy relację podstron witryny tworząc tym samym tzw. Sitemapę. Przy okazji pokażę Ci mnóstwo ciekawych narzędzi wspierających ten proces. Zajmiemy się kolejno hierarchią treści i podstron budując tym samym nawigację na naszej stronie. Pokażę Ci także szereg praktycznych, nowoczesnych rozwiązań związanych z nawigacją w serwisie.Kolejno zajmiemy się tworzeniem wizualnego schematu witryny a naszą pracę rozpoczniemy od prostych Wireframe'ów oraz projektowania w oparciu o tekst, by przejść do coraz bardziej zaawansowanych technik pracując nad mockupami oraz prototypami serwisu. Pokażę Ci szereg rozwiązań i narzędzi które będą pomocne również do tworzenia interaktywnych prototypów takich jak UX Pin, Invision czy Adobe Muse.Zbudujemy też tzw. Content Inventory, czyli repozytorium treści, które znajdą się w serwisie. Poznasz sposoby na jego łatwą aktualizację oraz narzędzia chmurowe, które pozwolą na zdalną współpracę nad treścią z innymi autorami.
Zamiast tworzenia klasycznych stron WWW opartych o podstrony, zaproponuję Ci zupełnie nowe podejście bazujące na tworzeniu systemów opartych o komponenty. Poznasz atomy oraz molekuły tworzące gotowy organizm i strony Twojego serwisu i odkryjesz mnóstwo zalet takiego podejścia, które znacznie odciąży Twój serwis i sprawi, że będziesz mógł go łatwo skalować. Pomówimy o graficznych bibliotekach komponentów oraz ich organizacji a także rozwiązaniach opartych o przeglądarkę i HTML oraz CSS. Dowiesz się czym jest Style Guide i jak stworzyć uniwersalne wytyczne do komponentów w Twoim serwisie. Pokażę Ci też najlepiej przygotowane przykłady Style Guide.
Kolejną część kursu poświęcimy na omówienie praktycznych zagadnień związanych z poszukiwaniem inspiracji stylistycznych do projektu. Pokażę Ci narzędzia, które pozwolą w łatwy sposób gromadzić inspiracje w postaci zasobów i tablic a następnie na ich podstawie stworzymy wytyczne do zaprojektowania graficznego UI serwisu. Dowiesz się czym są Style Tiles i dlaczego warto tą część procesu zaplanować w odpowiednim czasie.
To nie wszystko! Jako bonus do tego kursu otrzymasz ponad godzinną lekcję z przeglądem setek serwisów WWW, które zainspirują Cię do dalszej pracy. Przyjrzymy się aktualnym trendom w projektowaniu takim jak Flat UI czy Material Design. Będziesz miał okazję obejrzeć najlepiej zaprojektowane serwisy na Świecie i dowiedzieć się, co sprawia że ich UI i UX są wyjątkowe. To nie wszystko! W ramach kursu otrzymasz darmowe aktualizacje tego materiału w każdym roku tak, abyś mógł dopasować się do zmieniających się trendów!
W kolejnej części kursu porozmawiamy o nowych trendach w zakresie przygotowywania i optymalizacji na strony WWW. Dowiesz się jakie są popularne formaty grafiki, jak możemy zastąpić ją z pomocą typografii czy elementów CSS3 a także jak przygotować pliki na Twoją stronę WWW. Dowiesz się też jak pracować z formatem SVG i popularnymi bibliotekami wspomagającymi pracę z grafiką.Porozmawiamy także o projektowaniu w oparciu o zasoby - przekażę Ci mnóstwo linków do darmowych zasobów jak grafiki - zdjęcia, ikony, czy gotowe zestawy UI przygotowane dla Photoshop, Sketch czy Illustrator, tak abyś mógł pracować wydajniej mając do dyspozycji świetnej jakości źródła.
Kolejna część dotyczy kolorystyki na stronach WWW oraz siatki - poznasz właściwe zastosowania kolorów oraz dowiesz się jak działa psychologia kolorów. Pokażę Ci także szereg narzędzi, które ułatwią i pomogą w wyborze kolorystyki na stronę WWW. Poza tym będziemy także pracować w oparciu o siatkę jako jeden z kanonów projektowania, który łatwo zrozumiesz dzięki aplikacjom optymalizującym pracę na gridzie.
Z kursu dowiesz się także jak skutecznie pracować w zespole. Nieważne, czy jest to zespół składający się z kilkunastu osób pracujących zdalnie, czy z dwóch które ściśle ze sobą współpracują - pokażę Ci jak zautomatyzować procesy oraz jak zarządzać skuteczną komunikacją w zespole z wykorzystaniem nowych, ciekawych narzędzi. Automatyzatory zadań, repozytoria plików, praca w oparciu o chmurę czy biblioteki CC, Slack, OneDrive i wiele innych narzędzi pomoże Ci zrealizować sprawnie zadania projektowe w ramach nowego procesu Parallel Design.
Ostatnia część kursu stanowi wprowadzenie do nowoczesnego SEO, czyli optymalizacji strony pod kątem indeksowania w wyszukiwarkach. Poznasz elementarne składowe procesu zarządzania indeksowaniem oraz sposoby na monitorowanie i analitykę Twojej strony pod tym kątem. Poza tym, będziemy także mówić o promocji strony w sieci, gdzie poznasz podstawowe kanały, którymi warto obecnie docierać do Twoich odbiorców.Jako bonus do kursu znajdziesz również wzory prawidłowo skonstruowanych dokumentów!
Kurs jest przeznaczony dla wszystkich osób, które pracują ze stronami WWW - grafików, programistów, koderów, a także osób które kierują projektami webowymi lub odpowiadają za ich ousourcing w firmach. Jeśli chcesz dowiedzieć się, jak funkcjonują nowoczesne strony WWW - ten kurs jest właśnie dla Ciebie!
Cześć. Witaj w kolejnej lekcji tego kursu o wydajności, w której porozmawiamy o dwóch ważnych terminach
jakimi jest Cache, a także Content Delivery Network, czyli inaczej CDN.
Jeżeli mówimy o Cache'u, prawdopodobnie już słyszałeś czym jest Cache.
Jeżeli wciśniesz Ctrl + Shift i np. Backspace czy Delete w przeglądarce, uzyskasz możliwość wyczyszczenia
danych przeglądania, czyli właśnie inaczej mówiąc Cache'u.
Znajdują się tutaj m.in. pliki Cookie, ale również inne dane stron, a także obrazy i pliki zapisane w pamięci
podręcznej.
Co to znaczy?
To znaczy, że strony internetowe potrafią zapisywać rozmaite pliki na dysku użytkownika po to, aby w momencie
gdy użytkownik jeszcze raz na tę stronę wejdzie, ładowały się znacznie szybciej, ponieważ wtedy nie są
pobierane już wszystkie dane, a część danych jest brana instant bardzo szybko z pliku cache, czyli właśnie z dysku
użytkownika i wczytują się tylko te dane np. które zostały zmienione. Dzięki temu zcache'owane strony działają
znacznie, znacznie szybciej.
No i sam wiesz, że w takim cache'u może się uzbierać naprawdę dużo mega bajtów, które czasem warto sobie
wyczyścić i wtedy trochę wolniej nam wszystko działa, bo znowu musi się zcache'ować.
Jednak Cache po stronie przeglądarki, z którego oczywiście powinny Twoje strony korzystać i zdecydowanie go
polecam, to nie wszystko.
Pamiętaj również o tym, że istnieje cache po stronie serwera.
Co to znaczy?
To znaczy że Twój serwer może także zwłaszcza takie bardziej dynamiczne strony, cache'ować jako takie wersje
statyczne.
Wyobraź sobie, że na Twojej stronie znajduje się mnóstwo podstron, które w jakiś sposób korzystają z zasobów
bazy danych.
Jednak te zasoby bazy danych nie są aż tak często aktualizowane.
W związku z tym aby za każdym razem gdy użytkownik wchodzi na tą stronę nie trzeba było mielić po bazie
danych i wyciągać tych informacji,
serwer może zcache'ować jakąś wersję bazy danych i po prostu wyświetlać tą stronę z tego cache'u.
To sprawia, że działa on znacznie wydajniej i Twoja strona również ładuje się dużo szybciej.
Druga sprawa to Content Delivery Network, czyli tzw. CDN'y. CDN'y
Być może też już kojarzysz, jeżeli korzystałeś z jakichkolwiek zasobów, np. dodatkowych bibliotek na Twoją
stronę, takich jak Modernizr, jak jQuery, jak np. biblioteki Google, no to najczęściej dołączałeś je w taki
sposób, że korzystałeś właśnie z sieci CDN.
Mamy tutaj opcję Using jQuery with a CDN, Content Delivery Network i sprowadza się to po prostu do umieszczenia
prostego skryptu na naszej stronie.
Tak jak robiliśmy np. przy okazji zamieszczania fontów z Typekit'a, gdzie ten skrypt jest, skrypt jQuery, jest nie
u nas na serwerze, ale na serwerach jQuery.com.
I z tych serwerów zostanie zaczytany dla użytkownika.
Dlaczego to jest wartościowe? Dlatego, że oprócz nas tysiące albo setki tysięcy developerów na swoich
stronach umieszczają tego typu zapis i
jeżeli tylko użytkownik był na jakiejś takiej stronie wcześniej, to ten skrypt jQuery znajduje się już
w jego lokalnym Cache'u.
W związku z tym nie jest on wczytywany ponownie, a zaczytuje się z dysku twardego użytkownika, co trwa
dużo szybciej.
Oczywiście jeżeli stosujemy taką metodę CDN, to warto też zastosować follback w momencie gdy np. ten serwer
jQuery.com by nie działał, żeby na naszym serwerze też były pliki jQuery i w razie czego one zostały za
czytane.
W tym kontekście mogłeś słyszeć o CDN. Jednym z takich fajnych dostawców CDN jest właśnie np. MaxCDN,
ale generalnie CDN to nie tylko tego typu zastosowania, które polecam. CDN to również możliwość jaką
Ty masz do dostarczania swoich stron internetowych.
Na przykład możesz zrobić to przez serwery Microsoft Azure, ale też z pomocą innych dostawców.
Wielu dostawców hostingu oferuje swoje serwery CDN i chodzi tutaj o to, że Twoja strona jest na tym głównym,
najważniejszym serwerze, natomiast jej kopie są zcache'owane na różnych innych serwerach w różnych miejscach
miejscach świata.
I teraz jeżeli użytkownik wysyła żądanie do przeglądarki o wyświetlanie Twojej witryny, to nie idzie
za każdym razem do tego głównego serwera, ale do serwera, który jest najbliżej jego. Oczywiście
wiesz jakie to może mieć korzyści.
Po pierwsze zredukowanie ilości oraz czasów żądania do Twojego serwera.
To oczywiście wpływa znacznie na szybkość wyświetlania strony dla użytkownika, ponieważ jeżeli serwer
jest bliżej to ma prawdopodobnie niższe pingi,
no i oczywiście odciąża Twój główny produkcyjny serwer, ponieważ zapytania nie lecą do niego tylko w
dużej mierze do serwerów, które są rozproszone gdzieś po całym świecie. Sieci CDN,
tak jak powiedziałem, oferują dostawcy hostingu, tacy jak np. Microsoft Azure, z których możesz skorzystać.
No i wtedy bardzo łatwo można to po prostu taką sieć uruchomić dla działającej na serwerach Azure'a strony,
aczkolwiek może to być dość drogie, ale także są zewnętrzni dostawcy np. MaxCDN albo nasi lokalni dostawcy,
gdzie jak najbardziej możesz także nie posiadając takiej opcji w Twoim hostingu, po prostu wykupić sobie
serwery CDN, które zwiększą wydajność Twojej strony.
No i to jest właśnie to, co chciałem powiedzieć o Cache'u, a także o Content Delivery Network.
Następna rzecz, o której wspomnę jeszcze w tej lekcji to hostowane skrypty i minifikacjach. O hostowanych skryptach w
ramach sieci CDN
już powiedziałem, bo są to właśnie, np. te CDN'y, które wykorzystuje jQuery, z których warto korzystać.
I jeszcze jedna ostatnia rzecz o której chcę powiedzieć w tej lekcji to minifikacja. O hostowanych skryptach już mówiłem
i właśnie chodzi tutaj o to, że jeśli korzystamy z jQuery, no to możemy skorzystać ze skryptu hostowanego na
CDN'ie jQuery, czyli na stronie jquery.com.
Natomiast jeżeli zdecydujemy się pobrać sobie konkretny, konkretną nieskompresowaną w tym przypadku wersję
jQuery to jeśli sobie otworzę ten plik i spróbujmy zobaczyć jak to wygląda.
Zauważ, że mamy taki dosyć duży skrypt, który tutaj został wyświetlony i skrypt jest zrobiony w taki sposób,
że aby był on bardziej czytelny, stosujemy znaki spacji oraz tabulacje, które przez parser, przez przeglądarkę
są ignorowane,
ale co do zasady, są to dodatkowe znaki, które wpływają na wielkość naszego pliku.
Jeżeli sprawdzimy ile ten plik waży, to okaże się że to jest 284 Kb.
I teraz to co możemy zrobić to, pozwolę sobie otworzyć ten plik, a następnie skopiujemy całą jego zawartość
i spróbujemy go właśnie zminifikować, zaraz zobaczysz co to znaczy, na praktycznym przykładzie jest to chyba
najlepiej pokazać. Mamy np. takie Online'owe narzędzie jakjscompress.com. Tutaj wystarczy, że wkleimy
cały kod JavaScript, albo możemy uploadować też gotowy plik i wybieramy polecenie compress JavaScript.
W tym momencie cały ten plik jest kompresowany
i w rezultacie dostajemy plik, który nie zawiera żadnych białych znaków, żadnych spacji. Jak widzisz
trudno jest go w tym momencie edytować,
ale nie o to nam chodzi.
Chodzi nam o to, że jest to już plik, który powędruje na serwer w tej wersji, a nam udało się go skompresować, czyli
zmniejszyć aż o 66%. To znaczy, że oszczędziliśmy aż 183 kb
dzięki kompresji tego pliku. Jeżeli zastosujemy kompresję dla wszystkich naszych plików JavaScript
i CSS, naprawdę możemy zyskać mnóstwo miejsca i mnóstwo wydajności naszej strony.
I jeszcze chciałbym powiedzieć o kompresji serwerowej na koniec. Jeśli chodzi o samo serwowanie stron
internetowych przez serwery, to serwery również w momencie wysyłania plików do użytkownika, mogą każdy
taki plik również HTML i inne, kompresować serwerowo po to, aby były jeszcze mniejsze i żeby szybciej się
ładowały i jest to już pewna funkcjonalność serwera, w związku z tym musisz się upewnić,
jest to bardzo ważne, abyś sprawdził czy Twój serwer, na Twoim serwerze jest włączona kompresja.
Jednym z najbardziej popularnych formatów kompresji, aczkolwiek nie jedynym, jest gzip.
Jeżeli gzipem sobiekompresujemy na serwerze, to na serwerach Apache używamy np. mod_deflate, na serwerach Nginx'a
GttpGzipModule, no i na IIS'ie mamy specjalny link, który pozwoli Co włączyć tą kompresję, więc w zależności od typu serwera
poproś o to swojego administratora i upewnij się, że Twoja strona jest wysyłana z pomocą kompresji.
To znacznie zmniejszy czasy ładowania i jeśli chodzi o tą lekcje i te praktyczne wskazówki co do minifikacji,
CDN, cache'u oraz kompresji to już wszystko. Dziękuję Ci za uwagę i do usłyszenia w kolejnej lekcji.