Kurs: Tworzenie aplikacji frontendowych

Język wykładowy Polski
Semestr Letni
Status Poddana pod głosowanie
Opiekun Kamil Matuszewski
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj Kurs inżynierski
ECTS 5
Polecany dla I roku Nie
Egzamin Nie

Opis przedmiotu:

Choć frontend jest nieodłączną częścią większości aplikacji webowych, to proces jego wytwarzania znacząco zmienił się w ostatnich latach. Gwałtowny rozwój frameworków, bibliotek i preprocesorów sprawił, że programiści borykają się dziś z zupełnie innymi problemami niż jeszcze dekadę temu. Za zmianami ciężko jest nadążyć, nic więc dziwnego, że wiele osób nie rozumie z czym wiąże się rola Frontend Developera. Wykład ma na celu przybliżyć słuchaczom tę rolę i związane z nią odpowiedzialności, a także przekazać wiedzę umożliwiającą wytworzenie pierwszych frontendowych aplikacji. Poruszymy zarówno aspekty techniczne jak i te bardziej teoretyczne, by nie zależeć od konkretnych rozwiązań. Program przedmiotu będzie oparty na [Roadmapie Frontendowej](https://roadmap.sh/frontend). Przejdziemy przez interesujący podzbiór zagadnień, gdzieniegdzie dorzucając dodatkowe tematy. Poniższa lista jest oparta o poprzednią edycję wykładu, w zależności od potrzeb może ulec zmianie. 1. Wstęp, działanie internetu i HTML 1. Podstawy CSS: Box model, Składnia, Selektory, Kaskada stylów, Jednostki 1. Layout: Display, Pozycjonowanie, z-index, Float, Flex, Grid 1. Organizacja stylów (BEM), responsywność (historia i praktyka) i formularze 1. Podstawy JS: Historia, cechy charakterystyczne, typy, funkcje, obiekty, arraye, JSDoc 1. Zaawansowane koncepcje JS: This, Funkcyjny JS, Scope, Hoisting, Klasy, Error Handling i Asynchroniczność 1. Manipulacja DOM: Działanie przeglądarek, zarządzanie DOM i obsługa Eventów 1. Połączenie z API: Teoria, Fetch, Cookies, LocalStorage, CORS 1. TypeScript i NPM: Motywacja, podstawy typowania 1. Modułowość JSa, Bundlery i Transpilery 1. Framework: React 1. Framework: Vue 1. CSS-in-JS vs Preeprocesory vs Tailwind 1. Biblioteki komponentów: podejścia 1. Testowanie *Wymagania: podstawowa umiejętność programowania, podstawowa znajomość dowolnego systemu kontroli wersji*