MOBILNE APLIKACJE HYBRYDOWE

Wielkość: px
Rozpocząć pokaz od strony:

Download "MOBILNE APLIKACJE HYBRYDOWE"

Transkrypt

1 MOBILNE APLIKACJE HYBRYDOWE Waldemar Korłub KASK ETI Politechnika Gdańska

2 JavaScript 2 Początkowo wykorzystywany tylko w przeglądarce internetowej Obecnie: Przeglądarki cały czas Po stronie serwera Node.js Aplikacje okienkowe środowisko Electron Aplikacje mobilne hybrid apps/html5 apps

3 Aplikacje hybrydowe 3 HTML + CSS + JavaScript Zasoby statyczne spakowane w archiwum aplikacji Zamiast pobierania ich z Internetu przy każdym wejściu Strona HTML wyświetlana w komponencie WebView na urządzeniu mobilnym Komponent przeglądarki osadzony w interfejsie aplikacji

4 Komponent WebView 4 Umożliwia osadzenie przeglądarki w interfejsie aplikacji Android/iOS: WebView dystrybuowany jako osobna aplikacja Domyślnie zainstalowany Aktualizacje niezależne od wersji systemu n Korzystne dla deweloperów n Niezrozumiałe do użytkowników W aplikacji hybrydowej WebView wypełnia cały interfejs aplikacji

5 5 Ionic Framework

6 Ionic Framework 6 Zestaw narzędzi do generowania projektu Zestaw komponentów do budowania interfejsów aplikacji hybrydowych Zestaw bibliotek do modelowania przepływu sterowania i interakcji z systemem operacyjnym urządzenia mobilnego Zestaw narzędzi do uruchamiania i testowania aplikacji na emulatorach i smartphonach Zestaw narzędzi do budowania paczek dystrybucyjnych aplikacji na wiele platform Głównie Android oraz ios

7 Ionic generowanie projektu 7 $ ionic start CinemaApp sidemenu Struktura (główne elementy): platforms n Pliki związane z platformami mobilnymi plugins n Wtyczki, np. cordova resources n Zasoby statyczne, np. pliki graficzne, ikona aplikacji src n Kod aplikacji opartej o framework Angular package.json n Definicje zależności aplikacji config.xml

8 Ionic CLI 8 $ ionic platform add android Dodanie obsługi platformy $ ionic build android Zbudowanie wersji dystrybucyjnej $ ionic emulate android Uruchomienie w emulatorze $ ionic run Uruchomienie na podłączonym smartphonie $ ionic serve Uruchomienie lokalnego serwera testowanie w przeglądarce

9 Ionic dołączone biblioteki 9 PhoneGap/Cordova Wywoływanie funkcji systemu operacyjnego z poziomu języka JavaScript n Dostęp do czujników (np. akcelerometr, żyroskop, magnetometr) n Dostęp do aparatu fotograficznego n Dostęp do pamięci lokalnej na urządzeniu Angular Framework MV* po stronie klienta (w przeglądarce) Modelowanie przepływu sterowania w interfejsie użytkownika

10 Ionic widgety 10 Ionic oferuje zestaw gotowych komponentów do budowania interfejsów aplikacji Odzwierciedlają wygląd widgetów wykorzystywanych w aplikacjach natywnych Style dla ios, Androida, Windows Phone Komponenty: API do obsługi interakcji:

11 11 TypeScript

12 Co jest nie tak z JavaScriptem? 12 Dynamiczne typowanie Brak weryfikacji typów na etapie wytwarzania kodu dopiero na etapie uruchomienia w przeglądarce Ograniczone wsparcie narzędziowe (IDE nie jest w stanie prawidłowo podpowiadać dostępnych metod obiektów) n Kontrakty funkcji i obiektów opisane w dokumentacji, a nie w kodzie źródłowym Dynamiczne typowanie jest wygodne w małych projektach i w czasie prototypowania W dużych, wieloosobowych projektach statyczne typowanie często ułatwia pracę n Kontrola typów na etapie kompilacji/transpilacji, lepsze wsparcie narzędziowe

13 Co jest nie tak z JavaScriptem? 13 Brak wsparcia dla przestrzeni nazw, pakietów, zasięgów na poziomie języka Idiom IIFE immediately-invoked function expression wprowadzanie zasięgu leksykalnego przy użyciu zasięgu funkcji Brak granularnej kontroli nad widocznością pól obiektów (np. private, package, protected, public) Model oparty na prototypach Słowo kluczowe class (ECMAScript 2015) to tylko cukier składniowy dla istniejącego modelu W efekcie: JavaScript słabo skaluje się w dużych projektach a aplikacje w przeglądarce rosną z każdym rokiem

14 TypeScript 14 Statycznie typowany język transpilowany do języka JavaScript Deweloper pracuje w TypeScripcie, przeglądarka otrzymuje zrozumiały dla siebie JavaScript Oferuje kompatybilność z najnowszymi wersjami JavaScriptu (ES2017) Transpilacja do ECMAScript 3 Lub nowszego według wyboru dewelopera n Flaga --target kompilatora Próba obejścia problemu wersji standardu i wersji obsługiwanych przez przeglądarki

15 TypeScript 15 Umożliwia korzystanie z istniejących bibliotek JavaScriptowych Declaration Files zawierają deklaracje typów dla bibliotek zaimplementowanych w JavaScriptcie, np. Wygenerowane pliki.js są (w miarę) czytelne dla dewelopera Strategia wyjścia Wersja 1.0: kwiecień 2014

16 TypeScript podstawowe użycie 16 Instalacja: $ npm install -g typescript Transpilacja pliku: $ tsc file.ts Obserwowanie zmian: $ tsc --watch file.ts Popularne IDE oferują integrację z narzędziami

17 17 Przegląd składni

18 Typy proste 18 Boolean: let isdone: boolean = false; Po transpilacji: var isdone = false; Number: let age: number = 42; let color: number = 0xf00dcc; String: let color: string = "blue"; color = 'red'; color = 0xaabbcc; Type ' ' is not assignable to type 'string'

19 Typy proste 19 String szablony: let username: string = `world`; let greeting: string = `Hello, ${ username }!`; Po transpilacji: var username = "world"; var greeting = "Hello, " + username + "!"; Tablice: let list1: number[] = [42, 36, 28]; let list2: Array<number> = [27, 45, 19]; Wszystkie elementy tablicy tego samego typu

20 Typy proste 20 Krotki: let x: [string, number] = ["Waldemar", 22]; Typy wyliczeniowe: enum Color {Red, Green, Blue}; let c: Color = Color.Green; Typ Any: let zmienna: any = 42; zmienna = "Imiesław"; zmienna = false; Typ Void: Tylko null lub undefined Używany w deklaracjach typów zwracanych funkcji

21 Funkcje z deklaracjami typów 21 function greeter(username: string): string { return "Hello, " + username; } Podpowiadanie składni na podstawie typu à

22 Funkcje bez deklaracji typów JavaScript 22 function greeter(username) { return "Hello, " + username; } Podpowiadanie składni à

23 Parametry funkcji 23 Standardowo wszystkie parametry funkcji są wymagane Jak jest w przypadku JavaScriptu? Parametry opcjonalne można oznaczyć znakiem?: function greeter(username?: string): string { if(username) { return "Hello, " + username; } else { return "Hello!" } }

24 Parametry funkcji 24 Wartości domyślne definiowane na liście argumentów: function greeter(username: string = "world"): string { return "Hello, " + username; }

25 Zmienna liczba argumentów 25 function greeter(firstname: string,...othernames: string[]): string { return "Hello, "+username+" "+othernames.join(", "); } //wywołanie: greeter("world", "Waldemar", "Michał");

26 Programowanie obiektowe 26 class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } } greet() { return "Hello, " + this.greeting; } let greeter = new Greeter("world"); let powitanie = greeter.greet();

27 Dziedziczenie klasa bazowa 27 class Animal { public name: string; public constructor(thename: string) { this.name = thename; } } public move(distanceinmeters: number) { console.log( `${this.name} moved ${distanceinmeters}m.`); }

28 Klasa potomna 28 class Snake extends Animal { constructor(name: string) { super(name); } } move(distanceinmeters = 5) { console.log("slithering..."); super.move(distanceinmeters); }

29 Inna klasa potomna 29 class Horse extends Animal { constructor(name: string) { super(name); } } move(distanceinmeters = 45) { console.log("galloping..."); super.move(distanceinmeters); }

30 Poziomy dostępu 30 Public domyślny Pola i metody widoczne dla innych klas Protected Widoczne tylko w obrębie hierarchii dziedziczenia Private Dostępne tylko w obrębie danej klasy

31 Akcesory 31 Nie zaleca się udostępniania bezpośredniego dostępu do pól klasy class Animal { private _name: string; get name(): string { return this._name; } } set name(newname: string) { this._name = newname; }

32 Klasa abstrakcyjna 32 abstract class Animal { abstract makesound(): void; move(): void { console.log("move"); } }

33 Interfejsy 33 Opisuje kontrakt, który powinny spełniać obiekty Oczekiwane pola Dostępne metody Nie tworzymy instancji interfejsu lecz obiekty, które ten interfejs implementują

34 Interfejs i jego implementacja 34 interface Person { firstname: string; lastname: string; } (message: string): string; class Student implements Person { firstname: string; lastname: string; } (message: string): string { return this.firstname + "." + this.lastname + "@student.pg.edu.pl"; }

35 Interfejs i jego implementacja 35 let p: Person = {firstname: "Imiesław", lastname: "Nazwiskowy", (): function() /*...*/}; let p2: Person = new Person(); //błąd kompilacji let p3: Person = new Student("Nazwisław", "Imiesłowy");

36 36 Angular

37 Framework Angular 37 Angular 1.x 2009 Angular 2.x wrzesień 2016 Framework został przepisany od zera Język TypeScript Wersja 2.x znacznie bardziej przypomina framework React niż Angulara 1.x n Migracja 1.x à 2.x wymaga wielu modyfikacji Angular 4, Wersjonowanie semantyczne Wersja 3.x pominięta ze względu na rozbieżność wersji poszczególnych komponentów à Google planuje nowe wydanie średnio co pół roku

38 38 Architektura

39 Architektura frameworka Angular 39 Aplikacja wykorzystuje język HTML i style CSS Poza standardowymi znacznikami HTML występują również dodatkowe specjalne znaczniki Dodatkowe znaczniki umożliwiają wykorzystanie komponentów definiowanych w projekcie Komponent opisuje fragment widoku oraz jego zachowania Komponent może być zbudowany z innych komponentów n Hierarchiczna struktura widoków Logika aplikacji implementowana w serwisach Komponenty i serwisy grupowane w modułach

40 40 Architektura

41 Architektura 41 Moduły (ang. modules) Komponenty (ang. components) Szablony (ang. templates) Metadane (ang. metadata) Wiązanie danych (ang. data binding) Dyrektywy (ang. directives) Serwisy (ang. services) Wstrzykiwanie zależności (ang. dependency injection)

42 Moduły 42 Aplikacje w Angularze dzieli się na moduły odpowiadające poszczególnym funkcjonalnościom Każda aplikacja posiada główny moduł o nazwie AppModule Małe aplikacje mogą posiadać tylko jeden moduł, duże aplikacje setki modułów Moduły definiowane jako klasy z Dekoratory umożliwiają dołączenie metadanych do klasy

43 NgModule metadane 43 Najważniejsze metadane dekoratora NgModule: declarations lista komponentów wykorzystywanych do budowania widoków aplikacji exports lista klas/komponentów, które powinny być dostępne do wykorzystania przez inne moduły imports lista modułów, których wyeksportowane klasy są wykorzystywane w module bieżącym providers lista dostawców umożliwiających budowanie instancji serwisów do wykorzystania w całej aplikacji (we wszystkich modułach) bootstrap komponent reprezentujący główny widok aplikacji (do niego ładowane są wszystkie inne widoki), używany tylko dla AppModule

44 Przykład AppModule (app.module.ts) imports: [ BrowserModule, FormsModule, HttpModule, AppRoutingModule ], declarations: [ AppComponent, DashboardComponent, HeroDetailComponent, HeroesComponent, ], providers: [ HeroService ], bootstrap: [ AppComponent ] }) export class AppModule { }

45 Moduły Angulara a moduły w języku 45 JavaScript W języku JavaScript każdy plik jest modułem Moduły w języku JavaScript i moduły frameworka Angular to dwie osobne koncepcje JavaScript: moduł = plik Angular: moduł = zbiór komponentów i serwisów W typowym projekcie używamy obu mechanizmów modułów równocześnie Wspólne nazewnictwo (moduł/import/export) dla odrębnych mechanizmów może wywoływać dezorientację

46 Moduły w języku JavaScript 46 Słowo kluczowe export w plikach (modułach).js określa obiekty, które dany moduł udostępnia innym modułom (plikom.js): export class AppModule { } export class AppComponent { } Inne pliki (moduły).js mogą korzystać z tych obiektów za pomocą dyrektywy import: import {AppComponent} from "./app.component";

47 47 Uruchomienie aplikacji za pomocą modułu AppModule Należy zaimportować klasę AppModule z pliku (modułu) JavaScript Wywołanie metody bootstrapmodule inicjuje moduł Angulara: import { AppModule } from './app/app.module'; platformbrowserdynamic(). bootstrapmodule(appmodule);

48 Komponenty (ang. components) 48 Reprezentują fragmenty widoków składające się na interfejs aplikacji Definiowane jako klasy z Są reprezentowane przez dodatkowe znaczniki umieszczane w kodzie HTML, np.: <body> <my-app>loading...</my-app> </body>

49 Komponenty (ang. components) 49 Komponent określa: Szablon używany do zbudowania fragmentu widoku (tagi HTML obejmujące też tagi innych komponentów) Dane do prezentacji (model) Zachowania (funkcje obsługi najważniejsze metadane: selector selektor CSS określający które znaczniki na stronie mają zostać wypełnione zawartością komponentu templateurl ścieżka do pliku.html z szablonem providers lista dostawców serwisów, z których korzysta komponent

50 Przykładowy komponent selector: 'my-heroes', templateurl: './heroes.component.html', }) export class HeroesComponent { heroes: Hero[]; selectedhero: Hero; } constructor(private heroservice: HeroService, private router: Router) { } onselect(hero: Hero): void { this.selectedhero = hero; } gotodetail(): void { this.router.navigate(['/detail', this.selectedhero.id]); }

51 Szablony (ang. templates) 51 Wykorzystywane przez komponenty do wygenerowania treści w oknie przeglądarki Składnia opiera się na składni języka HTML Zawierają dodatkowe elementy Znaczniki umożliwiające dołączanie kolejnych komponentów do widoku Dyrektywy umożliwiające sterowanie procesem generowania wynikowego kodu HTML

52 Przykładowy szablon 52 <h2>hero List</h2> <p><i>pick a hero from the list</i></p> <ul> <li *ngfor="let hero of heroes" (click)="selecthero(hero)"> {{hero.name}} </li> </ul> <hero-detail *ngif="selectedhero" [hero]="selectedhero"> </hero-detail>

53 Wiązanie danych (ang. data binding) 53 Bez wykorzystania wiązania danych deweloper musi ręcznie umieszczać w drzewie DOM dane uzyskane w kodzie JavaScript (np. wyniki żądania AJAXowego) oraz ręcznie pobierać wartości z drzewa DOM w reakcji na zdarzenia emitowane przez użytkownika (np. keyup, click itd.) Przykładowo: walidacja formularza Po kliknięciu przycisku przez użytkownika pobranie danych z pól, a następnie dodanie komunikatów błędów na stronie Wiązanie danych automatyzuje proces wymiany informacji pomiędzy komponentem i drzewem DOM

54 4 formy wiązania danych 54 Interpolacja wartości: {{...}} Wiązanie właściwości elementów DOM: [property] Wiązanie obsługi zdarzenia: (event) Dwukierunkowe wiązanie danych: [(...)]

55 Interpolacja: {{ }} 55 Umożliwia wyznaczenie wartości wykorzystywanej w widoku na podstawie wyrażenia, np.: <h3>{{imgtitle}}</h3> <img src="{{imgurl}}"> Wyrażenie najczęściej odnosi się do pól/własności klasy komponentu Wyrażenie w nawiasach {{ }} jest konwertowane na ciąg znaków przed umieszczeniem w widoku

56 Wyrażenia (ang. template expressions) 56 Wyrażenie może realizować dodatkowe operacje, np.: <p>przekroczono próg o {{getscore()-gettreshold()}} punktów.</p> Wyrażenie nie powinno powodować efektów ubocznych Wyrażenie powinno być szybkie do wykonania Wyrażenia powinny być możliwie krótkie i proste Złożoną logikę należy umieścić w metodzie komponentu i wywoływać gotową metodę w wyrażeniu Wyrażenie powinno być idempotentne

57 Wiązanie własności 57 Wartości wyrażeń można również wiązać z właściwościami elementów drzewa DOM oraz właściwościami komponentów, np.: <button [disabled]="isunchanged">cancel</button> <img [src]="imgurl"> <hero-detail [hero]="selectedhero"> Takie wiązanie jest jednokierunkowe Zmiana wartości wyrażenia powoduje zmianę wartości właściwości, ale nie odwrotnie Wiązania odnoszą się do właściwości elementów drzewa DOM a nie do atrybutów tagów HTMLowych

58 58 Właściwości węzłów DOM a atrybuty elementów HTML Niektóre atrybuty elementów HTML mają bezpośrednie odzwierciedlenie w właściwościach węzłów drzewa DOM, np. id, src Dla niektórych atrybutów nie istnieją odpowiadające im właściwości, np. colspan, aria Niektóre właściwości nie posiadają odpowiadających im atrybutów, np. textcontent Niektóre atrybuty mają odzwierciedlenie we właściwościach, ale jest ono nieintuicyjne np. disabled: n W HTMLu sama obecność atrybutu powoduje nieaktywność elementu (bez względu na wartość) n W drzewie DOM disabled=true powoduje nieaktywność

59 Wiązanie dla atrybutów 59 Wiązania odnoszą się do właściwości elementów drzewa DOM a nie do atrybutów tagów HTMLowych poza jednym wyjątkiem: <td [attr.colspan]="getcolscount()">one-two</td> Jeśli atrybut nie posiada odpowiednika wśród właściwości DOM jedyny sposób na jego zmianę, to bezpośrednia zmiana atrybutu prefiks: attr.

60 Wiązanie właściwości CSS 60 Obiektem wiązania mogą być klasy CSS, np.: <div [class.special]="isspecial">...</div> Albo poszczególne właściwości CSS, np.: <button [style.color]="isspecial? 'red': 'green'"> <button [style.background-color]="cansave? 'cyan':'grey'">

61 {{ }} czy [property]=" "? 61 Interpolacja {{ }} zawsze konwertuje wynik na postać tekstową Wiązanie właściwości [property] zachowuje typ wiązanego wyrażenia

62 Wiązanie zdarzeń 62 Umożliwia wywoływanie funkcji obsługi zdarzeń zdefiniowanych w klasie komponentu w reakcji na akcje użytkownika, np.: <button (click)="onsave()">save</button>

63 Wiązanie dwukierunkowe 63 Zmiana wartości związanego pola zmienia wartość właściwości Zmiana wartości właściwości zmienia wartość pola Szczególnie przydatne przy pracy z formularzami Dwukierunkowe wiązanie zbudowane ręcznie : <input [value]="name" (input)="name=$event.target.value" > n Różne tagi formularzy wymagają użycia różnych atrybutów Z wykorzystaniem ngmodel: <input [(ngmodel)]="name">

64 ngmodel 64 Reprezentuje wartość pola w formularzu Umożliwia np. przypisanie wartości początkowej Równocześnie pozwala nasłuchiwać na zmiany Zmiana wartości wykonana przez użytkownika jest automatycznie odzwierciedlona w polu klasy komponentu Obsługuje wszystkie podstawowe elementy formularzy HTML Ukrywa różnice pomiędzy nimi, np.: n input à value n select/option à selected

65 Dyrektywy (ang. directives) 65 Dokumenty HTML posiadają statyczną strukturę Szablony widoków Angulara są dynamiczne Wynikowy HTML jest efektem przetworzenia szablonu zgodnie z umieszczonymi w nim dyrektywami Dwie grupy dyrektyw: Strukturalne modyfikują strukturę dokumentu poprzez dodawanie, usuwanie lub zamianę elementów, np.: n *ngfor dodawanie elementów w pętli n *ngif warunkowe wyświetlenie elementu Dyrektywy w postaci atrybutów modyfikują wygląd lub zachowanie istniejących już elementów

66 Serwisy (ang. services) 66 Logika aplikacji nie powinna być implementowana w klasach komponentów Komponent działa w kontekście konkretnego szablonu widoku trudno ponownie wykorzystać logikę zaszytą w klasie komponentu w innych miejscach aplikacji Kontroler powinien definiować pola i metody na potrzeby wiązania danych, a logikę delegować do serwisów Serwisy implementują logikę aplikacji w sposób niezależny od interfejsu Łatwe wykorzystanie w wielu różnych kontekstach Serwisy są dostarczane do komponentów na drodze wstrzykiwania zależności

67 67 Wstrzykiwanie zależności (ang. dependency injection) Klasa nie odpowiada za pozyskanie swoich zależności, zamiast tego zależności są do niej dostarczane z zewnątrz.

68 Wstrzykiwanie w Angularze 68 Wstrzykiwanie zależności jest nieodzownym mechanizmem frameworka Angular Wykorzystywane wewnętrznie przez sam framework oraz w komponentach opracowywanych przez autora aplikacji opartej na Angularze Za dostarczenie zależności odpowiada komponent injector Injector utrzymuje instancje serwisów, które mogą być wstrzykiwane Instancje pozyskiwane są przy użyciu dostawców (ang. providers) n Należy w projekcie zdefiniować dostawców dla wymaganych serwisów Wstrzykiwanie przez parametry konstruktora

69 TypeScript: Pola klasy w parametrach konstruktora 69 Jawnie zdefiniowane pola z inicjalizacją w konstruktorze: class Person { private firstname: string; private lastname: string; } constructor(first: string, last: string) { this.firstname = firstname; this.lastname = lastname; } Pola definiowane na poziomie konstruktora: class Person { constructor(private firstname: string, private lastname: string) { } }

70 70 Routing nawigacja w aplikacji

71 Routing 71 Typowe aplikacje internetowe składają się z wielu widoków, pomiędzy który nawiguje użytkownik RouterModule umożliwia definiowanie adresów, które spowodują wyświetlenie wybranych widoków (komponentów) aplikacji Znacznik <base href="/"> w sekcji <head> pliku index.html określa bazową ścieżkę dla adresów w ramach aplikacji

72 Przykładowy routing 72 import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { DashboardComponent } from './dashboard.component'; import { HeroesComponent } from './heroes.component'; import { HeroDetailComponent } from './hero-detail.component'; const routes: Routes = [ { path: '', redirectto: '/dashboard', pathmatch: 'full' }, { path: 'dashboard', component: DashboardComponent }, { path: 'detail/:id', component: HeroDetailComponent }, { path: 'heroes', component: HeroesComponent } imports: [ RouterModule.forRoot(routes) ], exports: [ RouterModule ] }) export class AppRoutingModule {}

73 Nawigacja 73 Nawigacja z użyciem dyrektyw routerlink: <a routerlink="/dashboard" routerlinkactive="active">dashboard</a> <a routerlink="/heroes" routerlinkactive="active">heroes</a> Komponent zdefiniowany w routingu zostanie wyświetlony poniżej elementu: <router-outlet></router-outlet>

74 Bibliografia 74 Wykorzystano materiały na licencji CC BY 4.0 ( z oficjalnej dokumentacji frameworka Angular by Google (

75 75 Pytania?

ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska

ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska ANGULAR 2+ Waldemar Korłub Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska 2 Architektura MVC: Model View Controller 3 Wzorzec architektoniczny modelujący przepływ sterowania w interfejsie

Bardziej szczegółowo

ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska

ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska ANGULAR 2+ Waldemar Korłub Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska 2 Architektura Architektura frameworka Angular 3 Aplikacja wykorzystuje język HTML i style CSS Poza standardowymi

Bardziej szczegółowo

ZAAWANSOWANE PROGRAMOWANIE W JĘZYKU SKRYPTOWYM

ZAAWANSOWANE PROGRAMOWANIE W JĘZYKU SKRYPTOWYM ZAAWANSOWANE PROGRAMOWANIE W JĘZYKU SKRYPTOWYM Waldemar Korłub Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska Agenda 2 Zaawansowane programowanie w przeglądarce Bogate aplikacje klienckie

Bardziej szczegółowo

O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes.

O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes. Wstęp do Angulara O sobie Adam Kowalski Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes adam.kowalski@synergycodes.com https://www.synergycodes.com Plan wykładu

Bardziej szczegółowo

Framework Angular4. Alicja Frankowicz Weronika Węglińska

Framework Angular4. Alicja Frankowicz Weronika Węglińska Framework Angular4 Alicja Frankowicz Weronika Węglińska Angular Pierwszym wydaniem Angulara był Angular1, zwany także AngularJS. Opierał się on na języku JavaScript oraz na wzorcu MVC wdrożonego do aplikacji

Bardziej szczegółowo

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

WYKŁAD 1 ANGULARJS CZĘŚĆ 1 WYKŁAD 1 ANGULARJS CZĘŚĆ 1 DEFINICJA ANGULARJS Framework JavaScript na licencji open-source wykorzystywany do tworzenia aplikacji SPA (single page applications) w oparciu o wzorzec projektowy Model-View-Controler.

Bardziej szczegółowo

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia Kod szkolenia: Tytuł szkolenia: DED/FSJS Full Stack JavaScript z Angular i Nest Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających podstawową wiedzę w zakresie JavaScript,

Bardziej szczegółowo

Zajęcia 4 - Wprowadzenie do Javascript

Zajęcia 4 - Wprowadzenie do Javascript Zajęcia 4 - Wprowadzenie do Javascript Co to jest Javascript Javascript jest językiem skryptowym pozwalającym na dołączanie dodatkowej funkcjonalności do stron WWW. Jest ona najczęściej związana z modyfikacją

Bardziej szczegółowo

Laboratorium 4: Routing

Laboratorium 4: Routing Laboratorium 4: Routing Ćwiczenie 1. Przygotowanie routingu Czas na coś bardziej skomplikowanego. Strona główna naszej galerii gotowa, pora dodać coś bardziej złożonego. Każdy nasz album zdjęciowy powinien

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych Kod szkolenia: ANGULAR 4 Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

REACT NATIVE. Anna Maziejuk Kamil Jankowski

REACT NATIVE. Anna Maziejuk Kamil Jankowski REACT NATIVE Anna Maziejuk Kamil Jankowski React Native Framework/biblioteka bazujący na React Pozwala na tworzenie aplikacji tylko za pomocą języka JavaScript Wspiera platformy ios i Android REACT React

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Mobilne aplikacje hybrydowe

Mobilne aplikacje hybrydowe Mobilne aplikacje hybrydowe 1. Przygotowanie środowiska pracy Praca z aplikacjami hybrydowymi wymaga instalacji kilku komponentów. Wykorzystany zostanie framework Ionic, który opiera się na menadżerze

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Aplikacje SPA, Angular, TypeScript. dr hab. inż. Marek Wojciechowski

Aplikacje SPA, Angular, TypeScript. dr hab. inż. Marek Wojciechowski Aplikacje SPA, Angular, TypeScript dr hab. inż. Marek Wojciechowski Ewolucja aplikacji webowych (pre-spa) Model 1 (pierwotny model WWW) Strony powiązane linkami (jak dokumenty WWW) Model 2 (MVC) Kontroler

Bardziej szczegółowo

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C #import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Rys.2.1. Drzewo modelu DOM [1]

Rys.2.1. Drzewo modelu DOM [1] 1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA 2.1. DOM model

Bardziej szczegółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

Bardziej szczegółowo

Aplikacje SPA, Angular, TypeScript. dr hab. inż. Marek Wojciechowski

Aplikacje SPA, Angular, TypeScript. dr hab. inż. Marek Wojciechowski Aplikacje SPA, Angular, TypeScript dr hab. inż. Marek Wojciechowski Ewolucja aplikacji webowych (pre-spa) Model 1 (pierwotny model WWW) Strony powiązane linkami (jak dokumenty WWW) Model 2 (MVC) Kontroler

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński rperlinski@icis.pcz.pl

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński rperlinski@icis.pcz.pl ngular, cz. II 1/24 Angular, cz. II Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej 10 kwietnia 2015

Bardziej szczegółowo

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery Łukasz Bartczuk Moduł 6 JavaScript w przeglądarce Agenda Skrypty na stronie internetowej Model DOM AJAX Skrypty na stronie

Bardziej szczegółowo

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH szkolenie dla webdeveloperów ze znajomością przynajmniej podstaw HTML i JavaScript INFORMACJE PODSTAWOWE AngularJS to framework JavaScript stworzony przez inżynierów

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

Zaawansowane aplikacje internetowe Zaawansowane aplikacje internetowe AJAX 1 Celem tego laboratorium jest pokazanie moŝliwości technologii AJAX. W ramach ćwiczeń zostanie zbudowana prosta aplikacja, przechwytująca kliknięcia uŝytkownika

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Aplikacje WWW. Statyczne oraz dynamiczne strony WWW. Skrypty po stronie klienta. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Modelowanie obiektowe

Modelowanie obiektowe Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) 1. Udostępnianie wszystkich prywatnych atrybutów do prezentacji, wprowadzenie standardu nazewnictwa plików nazwy plików

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

Aplikacje internetowe

Aplikacje internetowe Temat: Język HTML i style CSS Aplikacje internetowe Pracownia specjalistyczna, studia podyplomowe, rok 2011/2012 1. Stwórz formularz HTML pozwalający na rejestrację użytkownika w aplikacji internetowej.

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Aplikacje WWW. Statyczne oraz dynamiczne strony WWW. Skrypty po stronie klienta. dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski Uniwersytet Warszawski 6 kwiecień 2009 Spis Treści 1 MVC Jak to wygląda w JavascriptMVC 2 Prawie jak klasy 3 Hierarchia Widoki Kontrolery Modele 4 Struktura katalogów Generatory kodu Generatory dokumentacji

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,

Bardziej szczegółowo

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat EL - Expression Language Załóżmy, że mamy klasę Pracownik, której atrybutem jest PESEL. Załóżmy dalej, że w atrybucie sesji zalogowany przechowujemy obiekt aktualnie zalogowanego

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop. 2016 Spis treści Spis rysunków 11 Spis tabel 13 Przedmowa 15 Wprowadzenie 17 Podziękowania 27 O autorach 29 1 Wprowadzenie

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,

Bardziej szczegółowo

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska JAVA EE MODEL APLIKACJI Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Architektura aplikacji 2 Java EE od początku była projektowana z myślą o aplikacjach klasy enterprise

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Agenda Dlaczego PhoneGap i co to jest? Możliwości PhoneGap Jak pisać aplikacje z PhoneGap? Konfiguracja i przykład aplikacji

Bardziej szczegółowo

Wykład 03 JavaScript. Michał Drabik

Wykład 03 JavaScript. Michał Drabik Wykład 03 JavaScript Michał Drabik Język programowania wykorzystywany na stronach internetowych głównie w celu umożliwienia interakcji z użytkownikiem. Kod JavaScript może być umieszczany w kodzie XHTML

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty Wybrane działy Informatyki Stosowanej Format HTML Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty dr hab. inż. Andrzej Czerepicki 2019 Definicja HTML HyperText Markup Language

Bardziej szczegółowo

Java Server Faces narzędzie do implementacji w wy prezentacji

Java Server Faces narzędzie do implementacji w wy prezentacji Java Server Faces narzędzie do implementacji w wy prezentacji pojęcie komponentu powiązanie z modelem danych widok (View) jako drzewo komponentów obiekty pomocnicze: konwertery, walidatory, obsługa zdarzeń

Bardziej szczegółowo

Laboratorium 2: Portfolio zdjęciowe, p.1

Laboratorium 2: Portfolio zdjęciowe, p.1 Laboratorium 2: Portfolio zdjęciowe, p.1 Ćwiczenie 1. Szablon portfolio zdjęciowego Skoro dołączyliśmy wszystko, co potrzeba, zajmijmy się najpierw stworzeniem szablonu statycznego dla naszego portfolio.

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

Zaawansowane aplikacje internetowe Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska JUnit TESTY JEDNOSTKOWE Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Testy aplikacji 2 Ręczne testowanie Czasochłonne Powtarzalność trudna do uzyskania Nudne Testowanie automatyczne

Bardziej szczegółowo

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński Programowanie aplikacji dla technologii mobilnych mgr inż. Anton Smoliński Agenda Cykl życia aplikacji Struktura plików Plik AndroidManifest.xml Elementy aplikacji Activity Layout Intent BroadcastRecivers

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

Zastosowanie komponentów EJB typu Session

Zastosowanie komponentów EJB typu Session Zastosowanie komponentów EJB typu Session na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Programowanie komponentowe Lab1 1 1. Refaktoryzacja kodu programu Sklep_6 z lab5, TINT 1.1. Należy wykonać

Bardziej szczegółowo

W czystym JavaScripcie zasięgi zmiennych tworzone były poprzez funkcje anonimowe, w AngularJS posiadamy kontrolery, które także są funkcjami.

W czystym JavaScripcie zasięgi zmiennych tworzone były poprzez funkcje anonimowe, w AngularJS posiadamy kontrolery, które także są funkcjami. Zrozumienie tego artykułu jest kluczowe aby móc tworzyć aplikacje w AngularJS. Do tej pory powinieneś wiedzieć czym jest Angular, umieć utworzyć moduł główny aplikacji i podpiąć do niego kontroler. Zdefiniowany

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Cena szkolenia Cena szkolenia wynosi 100 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie

Bardziej szczegółowo

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C Wymagana wiedza wstępna: 1) Student musi 1) Znać język C 2) Znać zasady zarządzania pamięcią w komputerze 3) Znać pojecie wskaźnika

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios Politechnika Poznańska, Instytut Informatyki, TWO/GE Programowanie dla ios 13 stycznia 2012 Urządzenia ios Urządzenie Data prezentacji iphone 9.01.2007/06.2007 ipod touch 5.09.2007 iphone 3G 9.06.2008

Bardziej szczegółowo

Materiały do zajęć VII

Materiały do zajęć VII Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja

Bardziej szczegółowo

Google Web Toolkit. Piotr Findeisen

Google Web Toolkit. Piotr Findeisen Google Web Toolkit Piotr Findeisen findepi@students.mimuw.edu.pl Czym jest GWT kompilator Javy do Javascriptu biblioteki Java/Javascript emulacja części java.lang i java.util webowe okienka narzędzia do

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo