Multiplatformowe aplikacje w języku JavaScript 0800-MULTJAVA
W środowisku programistów coraz popularniejsze stają się rozwiązania, które pozwalają w szybki sposób tworzyć aplikacje, które uruchamiać można na różnych platformach i różnych systemach operacyjnych. Jest to praktyczna realizacja podejścia „write once, run anywhere”. Jedną z technologii, która pozwala tworzyć aplikacje desktopowe bazujące na aplikacjach internetowych jest Electron – otwartoźródłowy framework wykorzystujący środowisko Node.js i silnik Chromium. Podobne rozwiązanie oferuje framework Capacitor, który pozwala na zbudowanie aplikacji mobilnej oraz PWA (ang. Portable Web App) z kodu webowego.
Oczywiście, multiplatformowość w tym rozwiązaniu okupiona jest możliwym spadkiem wydajności i responsywności tworzonych aplikacji, jednak w dzisiejszych czasach rozwój mocy obliczeniowej komputerów i urządzeń mobilnych pozwala nam coraz mniej przejmować się tym faktem.
Obecny rozwój technologii webowych prowadzi do przenoszenia części interfejsów użytkownika do przeglądarki internetowej, ale w wielu przypadkach w dalszym ciągu wymagane jest stworzenie aplikacji mobilnej lub desktopowej. Aby ułatwić tworzenie, utrzymanie i rozwój kodu, coraz częściej stosowane są uniwersalne rozwiązania, które pozwalają na tworzenie jednego wspólnego kodu, a następnie zbudowanie projektu z bibliotekami potrzebnymi dla konkretnej platformy i dla konkretnego systemu operacyjnego.
W ramach kursu poruszone zostaną następujące zagadnienia:
- aplikacje PWA
- framework Electron – tworzenie uniwersalnych aplikacji desktopowych opartych na aplikacjach webowych
- framework Capacitor – tworzenie uniwersalnych aplikacji mobilnych opartych na aplikacjach webowych
Dla każdego z prezentowanych narzędzi zaprezentowane zostaną metody korzystania z zewnętrznego API, baz danych i rozwiązań charakterystycznych dla platformy, na które aplikacje będą tworzone.
Całkowity nakład pracy studenta
- Godziny realizowane z udziałem nauczycieli: 30 h
- Czas poświęcony na pracę indywidualną potrzebny do pomyślnego zaliczenia przedmiotu: 20 h
- Czas wymagany do uczestnictwa w procesie oceniania: 10 h
Efekty uczenia się - wiedza
- W1: Zna składnię języka JavaScript i biblioteki pozwalające na tworzenie aplikacji multiplatformowych (K_W05, K_W10)
- W2: Posiada wiedzę na temat metodologii programowania w języku JavaScript (K_W05, K_W11)
- W3: Zna podstawowe biblioteki służące do tworzenia aplikacji desktopowych i mobilnych w języku JavaScript (K_W09)
- W4: Posiada wiedzę na temat programowania obiektowego i funkcyjnego w języku JavaScript (K_W10)
- W5: Zna narzędzia do tworzenia aplikacji w językach HTML, CSS i JavaScript (K_W05, K_W10, K_W11)
Efekty uczenia się - umiejętności
- U1: Tworzy aplikacje webowe w języku JavaScript z wykorzystaniem popularnych frameworków (K_U08 - K_U13)
- U2: Korzysta z bibliotek do tworzenia aplikacji multiplatformowych (K_U08 - K_U13)
- U3: Tworzy logiczny kod obiektowy i funkcyjny w języku JavaScript, działający na wielu platformach (K_U08 - K_U13)
- U4: Projektuje oprogramowanie użytkowe w języku JavaScript (K_U18)
- U5: Potrafi tworzyć aplikacje multiplatformowe z wykorzystaniem języka JavaScript (K_U18, K_U19, K_U21, K_U22)
- U6: Potrafi tworzyć proste aplikacje dostosowane do uruchamiania na różnych urządzeniach (K_U21, K_U22)
Efekty uczenia się - kompetencje społeczne
- K1: Rozumie możliwości jakie stwarza wykorzystywane narzędzi wieloplatformowych (K_K01, K_K06)
- K2: Ma świadomość dotyczącą odpowiedzialności idącej za tworzeniem oprogramowania dla użytkowników (K_K01)
- K3: Posiada umiejętność pracy w grupie (K_K03, K_K04)
- K4: Rozumie zagrożenia związane z tworzeniem oprogramowania użytkowego (K_K01, K_K06)
Metody dydaktyczne eksponujące
Metody dydaktyczne podające
- opis
- wykład konwersatoryjny
Metody dydaktyczne poszukujące
- projektu
- sytuacyjna
- panelowa
- klasyczna metoda problemowa
- laboratoryjna
- seminaryjna
Wymagania wstępne
- Opracowywanie serwisów sieciowych cz. 1
- Opracowywanie serwisów sieciowych cz. 2
- Programowanie obiektowe cz. 1
Koordynatorzy przedmiotu
Kryteria oceniania
Metody oceniania weryfikujące efekty W1-W4, U1-U6 i K1-K4:
- realizacja zadań w trakcie zajęć (W1-W4, U1-U6, K1-K4)
- projekt liczeniowy (W1-W4, U1-U6, K1-K4)
- ndst - poniżej 25 pkt (<50%)
- dst - 25.0 pkt (50%)
- dst plus - 30.0 pkt (60%)
- db – 37.5 pkt (75%)
- db plus - 42.5 pkt (85%)
- bdb - 45.0 pkt (>90%)
Kryteria oceniania:
Zaliczenie na ocenę na podstawie sumy puntów otrzymanych z zadań wykonywanych na zajęciach ( 5 zadań, z których otrzymać można max. 25pkt. - 50% wkładu do oceny) oraz projektu zaliczeniowego (25pkt. - 50% wkładu do oceny).
Aby otrzymać zaliczenie, wystarczy zdobyć 25pkt. z zadań lub z projektu zaliczeniowego.
W ramach pracy podlegającej ocenie zdobyć można łącznie 50pkt., z czego 25 pkt jest warunkiem koniecznym do otrzymania zaliczenia przedmiotu.
Minimalne progi punktowe niezbędne do otrzymania konkretnej oceny wyglądają następująco:
Praktyki zawodowe
BRAK
Literatura
Dokumentacja techniczna omawianych bibliotek:
- Electron: https://www.electronjs.org/docs/latest/
- Capacitor: https://capacitorjs.com/docs
- Aplikacje PWA: https://web.dev/learn/pwa/
Literatura celowo nie zawiera pozycji książkowych - technologie te są wciąż żywe i rozwojowe, a więc tylko dokumentacja techniczna dostarcza aktualnego stanu wiedzy na ich temat.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: