Moderní webové aplikace AngularJS

Podobné dokumenty
Vývojařská Plzeň AngularJS

AngularJS. framework pro moderní webové aplikace. 24.března CZJUG Brno. Milan Víťa

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

DEVFEST ANGULAR 2 WORKSHOP. angular.cz

ANGULAR 2 WORKSHOP. angular.cz

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Proč Angular JS framework?

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

RESTful API TAMZ 1. Cvičení 11

OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

HMI * nad webovými technologiemi

KIV/PIA 2013 Jan Tichava

NSWI096 - INTERNET JavaScript

Ember.js. Jan Kopřiva, Vojtěch Jasný

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

JavaScript 101. "Trocha života do statických stránek"

Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Jaku b Su ch ý 1

Formuláře. Internetové publikování. Formuláře - příklad

Server-side technologie pro webové aplikace

JSON API pro zjišťování cen MtG karet

AJAX. Dynamické změny obsahu stránek

CMS LARS VIVO VERZE 1.2 Z POHLEDU VIVOJÁŘE

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Programování v jazyce JavaScript

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Část 1 Moderní JavaScript

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Ajax - úvod. Klíčové pojmy: Ajax, skriptování na straně klienta a serveru, objekt XMLHttpRequest, DOM model.

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Michal Augustýn Microsoft Most Valuable Professional

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

MVVM pro desktop i web

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Název Live prez Sear enta Maps

+ knihovna funkcí usnadňujících práci v javascriptu

Pear - hruška Systém pro implementaci a distribuci znovupoužitelných komponent (v PHP) Strukturovaná knihovna open-source (PHP) skriptů Systém pro dis

Webové služby. Martin Sochor

Artlingua Translation API

OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Individuální projekt z předmětu webových stránek 2012/ Anketa

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Web Services na SOAP

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Programování v jazyce JavaScript

Budte chytří při vytváření aplikací

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

Sem vložte zadání Vaší práce.

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

INFORMAČNÍ SYSTÉMY NA WEBU

Webové programování je CHALENGE! Milan Čapoun, Samuel Šramko

Formuláře. Internetové publikování

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Domino 10 nové komponenty a související témata (node.js, ES )

Základy HTML, URL, HTTP, druhy skriptování, formuláře

NA CO SI DÁT POZOR V JAVASCRIPTU? Angular.cz

SUTOL Symposium 2014

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

IS pro podporu BOZP na FIT ČVUT

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

Anabix API. Popis způsobu používání služby

Web frameworks v praxi Tomáš Krátký

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Mediareference Vojtěch

NSWI142 Webové aplikace Zkouškový test

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Rezervační systém Tvorba WWW stránek

Historie, současnost a budoucnost ASP.NET

Web frameworks v praxi

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Měření konverzí na SROVNAME.CZ návod k nasazení

Novinky v ASP.NET MVC6

Další nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide.

DUM 14 téma: Interakce s uživatelem

Stručný úvod pro programátory. Michal Kuchta

Internet 2 css, skriptování, dynamické prvky

Zápasíme s REST API. Lukáš Křečan REST API Architect GoodData

Platformy / technologie. Jaroslav Žáček

ČERV. Hra Červ je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

Vývoj Internetových Aplikací

Stručný obsah. Část I Úvod. Část II Komponenty

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

UJO Framework. revoluční architektura beans. verze

První kapitola úvod do problematiky

Tvorba internetových aplikací s využitím framework jquery

Greasemonkey. Uživatelské skriptování (nejen) ve Firefoxu

Programování v jazyku C# II. 8.kapitola

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

5.2 Controller zastupce

Testování webových aplikací Seznam.cz

Transkript:

Moderní webové aplikace AngularJS

Milan Lempera @milanlempera Víťa Plšek @winsik PHP -> Javascript PHP -> Java -> Javascript www.angular.cz @angular_cz

?

vše si poskládat z knihoven použít framework

AngularJS je framework

Psal se rok 2009 ano 2009... Jak se tehdy tvořili webové aplikace? pomocí server-side frameworků scriptování v jquery Původním cílem AngularJS byl komerční framework náhrada stávajících view příklon k Single Page aplikacím

Serverside VS SPA

Serverside VS SPA požadavek HTML - celá stránka 1.požadavek aplikace požadavek HTML - konkrétní oblast požadavek na data data

Šablonový systém v AngularJS <html ng-app> <head> <script src="https://../angularjs/1.4.8/angular.min.js"></script> </head> <body> <h1>ahoj {{city.name}}</h1> Upravit oslovení: <input type="text" ng-model="city.name" /> </body> </html> ukázka

Directivy <span ng-if="user.enabled"> {{user.name}} </span> <tr ng-repeat="user in users"> <td>{{user.name}}</td> </tr>

Dvoucestný databinding - milovaný i nenáviděný

Dvoucestný databinding - milovaný i nenáviděný <h1>ahoj {{city.name}}</h1> Upravit oslovení: <input type="text" ng-model="city.name" /> Watcher last value curent value changed? {{city.name}} false city.name (ngmodelwatch) false

Dvoucestný databinding - milovaný i nenáviděný <h1>ahoj {{city.name}}</h1> Upravit oslovení: <input type="text" ng-model="city.name" /> Watcher last value curent value changed? {{city.name}} Plzeň true city.name (ngmodelwatch) Plzeň true

Dvoucestný databinding - milovaný i nenáviděný <h1>ahoj {{city.name}}</h1> Upravit oslovení: <input type="text" ng-model="city.name" /> Watcher last value curent value changed? {{city.name}} Plzeň Plzeň false city.name (ngmodelwatch) Plzeň Plzeň false

Dvoucestný databinding - jak s ním žít angular výrazy vyhodnocuje pokud se něco mohlo změnit musí být rychlé nemáte pod kontrolou počet volání počet watcherů < ~2500 + výměnou za to můžete pracovat přímo s JS objekty + ve většině případů vám ušetří čas a kód

Formuláře <form name="breweryform"> <input id="brewery-year" type="number" name="year" ng-model="brewery.year" required /> </form> // angular vytvoří objekt breweryform.year = { = { $submitted: $dirty: false, false, $pristine: true, $dirty: $valid: false, $pristine: $invalid: true, $valid: $touched: false, false, $invalid: true, $error: $untouched: {required: true, Array[1]} } $error: { number : true required : true } }

Dependency injection var UserStore = function() { this.httpservice = HTTPService.getInstance(); } var UserStore = function(httpservice) { this.httpservice = httpservice; }

Dependency injection v angularu var BreweryServiceConstructor = function() { // služba řeší komunikaci se serverem } var BreweryController = function(breweryservice) { this.breweries = breweryservice.load(); }; angular.module("beerapp", []).controller("brewerycontroller", BreweryController).service("breweryService", BreweryServiceConstructor);

Komunikace se serverem $http - základní rozhraní $resource - jednoduché pojetí RESTu var Brewery = $resource('/api/v1/brewery/:id', {id : '@id'}); var list = Brewery.query({'page' : 2}); // GET /api/v1/brewery var brewery42 = Brewery.get({id : 42}); // GET /api/v1/brewery/42 brewery42.name = 'Janáček'; brewery42.$save(); // POST /api/v1/brewery/42 brewery42.$delete(); // DELETE /api/v1/brewery/42

Promise step1(function (value1) { step2(value2, function(value3) { step3(value3,. ); }); }); functionwithpromise().then(promisedstep2).then(function (value2) { // Do something }).catch(function (error) { // Handle error from // all above steps })

Interceptory ratingservice Intercetor Server přidat hodnocení 401 Unauthorized Modální přihlašovací okno požadavek na přihlášení autentizační token Klient přidat hodnocení (opakovaný požadavek) hodnocení přidáno (201 Created)

Routing #/brewery controller: BreweryListController, templateurl: brewery/list.html #/brewery/edit/:id controller: BreweryEditController, templateurl: brewery/edit.html brewery/list.html nebo brewery/edit.html

Vlastní elementy - directivy potřebujeme předat data reagovat na akce <brewery-form brewery="..." on-save="..." on-cancel="..."> </brewery-form>

Vlastní elementy - directivy / komponenety var componentdefinitionobject = { templateurl: "breweryform.html", }; controller: controllerconstructor, bindings: { brewery: '=', onsave: '&', oncancel: '&' } <brewery-form brewery="..." on-save="..." on-cancel="..."> </brewery-form> angular.module('beerapp.breweryform', []).component("breweryform", function() { return componentdefinitionobject; })

Proč si angular vybrat Výborná dokumentace Početná komunita Ucelený framework Oddělení kódu a html Velké množství komponent a knihoven Testovatelnost ngmock protractor

Protractor - End to End testing for Angular nádstavba nad Seleniem přidává lokátory specifické pro Angular element(by.id('gobutton')); element(by.css('selected')); element(by.binding('user.name')); element(by.model('product.count')); element(by.repeater('product.count'));

AngularJS přerostl své odvětví \ MOST POPULAR TECHNOLOGIES Stack Overflow - Developer Survey 2015

Kdy ho použít? Aplikace, aplikace aplikace informační systémy kalkulační nástroje téměř cokoli za přihlášením Tam kde potřebujete vyměnit view a dokážete postavit REST API

Kdy ho nepoužít? Z důvodu SEO klasické webové stránky (není náhrada jquery) Z důvodu výkonu vysoce dynamické aplikace Excel inzerce, e-shopy?

Na co si dát pozor? množství a rychlost watcherů více aplikací na jedné stránce pište čistý kód malé části kódu řešící jedem problém nespoléhejte na odstínění od javascriptu prototypová dědičnost promise this dbejte na architekturu

Kdo ho používá Youtube, PayPal, Mall, GoG, InvisionApp, Blue Origin, Lego Indiegogo, Docker, Best buy, NBA, Forbes, CNN, Weather... https://www.madewithangular.com

Angular 2 první zmínky 5/2014 Designed for the future 2.0.0-beta.6 (2016-02-11) bude to úplně jiný framework

Angular 2 - technologie psaný v TypeScriptu podpora pro ES5, ES6 i Dart používá RxJS (Reactive extension for JS) a set of libraries to compose asynchronous and event-based programs using observable collections and Array#extras style composition in JS funkcionální reaktivní programovní developed by Microsoft Open Technologies, Inc.

Budoucnost - 1.x vs 2.x datum vydání 2.0 - x / 2016 upgrade? použití 1.x komponent v 2.x (ngupgrade) použítí 2.x komponent v 1.x (ngforward) spokojeně pokračovat na 1.x Má smysl na něj čekat? rozhodně stojí za to ho sledovat

Díky za pozornost...

Zdroje - www.angular.cz/moderni-web-16