Top Banner
Webes alkalmazásfejles ztés HTML5 és GWT segítségével Nagy Péter
25

Webapplication development with HTML5 and GWT

Apr 16, 2017

Download

Technology

Peter Nagy
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Webapplication development with HTML5 and GWT

Webes alkalmazásfejlesztésHTML5 és GWT segítségével

Nagy Péter

Page 2: Webapplication development with HTML5 and GWT

Bevezetés

Hogyan készítsünk böngészőben futó alkalmazásokat?

Page 3: Webapplication development with HTML5 and GWT

A böngésző mint futtatókörnyezetWebes appfejlesztéshez eddigi lehetőségek:

●Flash●Java applet●Silverlight●etc...

Fő probléma: Platformfüggőség

Page 4: Webapplication development with HTML5 and GWT

A megoldás

Page 5: Webapplication development with HTML5 and GWT

HTML5

Fő előnyök:●Böngészőfüggetlenség●Sebesség●Nincs szükség plug-inekre

Page 6: Webapplication development with HTML5 and GWT

Komponensek

●Szemantikus tagek●Media tagek ●Kibővített form mezők (validálás, widgetek)●CSS3●Javascript API-k

Page 7: Webapplication development with HTML5 and GWT

Javascript API-k●Canvas API●Request Animation Frame●Webstorage●Web SQL●Web workers●Websocket●File API●Geolocation API●Drag 'n' Drop

Page 8: Webapplication development with HTML5 and GWT

Canvas APIA <canvas> tag-gel hozható létre

Funkciók:●Alakzatok rajzolása●Gradiensek és minták készítése●Szöveg- és képkirajzolás●Transzformációk●Pixel manipuláció

Page 9: Webapplication development with HTML5 and GWT

Canvas APIhttp://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.png

Page 10: Webapplication development with HTML5 and GWT

Request animation frameJS animációk készítéséhezEgy callback, ami mindig akkor fut, amikor a böngésző rajzol.

requestAnimationFrame(step);function step(timestamp) {

//Do some magic requestAnimationFrame(step);}

Page 11: Webapplication development with HTML5 and GWT

WebstorageMax. 5-10Mb adatCsak kliensoldali

Session storageAz adat csak addig tárolódik, amíg be nem zárjuk az adott tabot vagy ablakot.

Local storagePermanens adattárolás.

Page 12: Webapplication development with HTML5 and GWT

Webstorage

sessionStorage.setItem('key', 'value');sessionStorage.getItem('key');

Page 13: Webapplication development with HTML5 and GWT

Web SQL●Böngészőbe ágyazott SQLite●Lokálisan tárolhatunk adatot●SQL lekérdezések

var db = openDatabase('mydb', '1.0', 'my first database',2 * 1024 * 1024);db.transaction(function (tx) { tx.executeSql(

'CREATE TABLE IF NOT EXISTS foo (id unique, text)' ); tx.executeSql(

'INSERT INTO foo (id, text) VALUES (1, "bar")' );});

Page 14: Webapplication development with HTML5 and GWT

Webworkers●Nagyobb számításigényű feladatokhoz●Külön szálon fut●Nem szakítják meg a felhasználói

interakciók●Üzeneteken keresztül lehet velük

kommunikálnivar worker = new Worker("worker_script.js");worker.postMessage("Hello World!");worker.onmessage = function(event) { alert("Received message " + event.data); doSomething();}

Page 15: Webapplication development with HTML5 and GWT

WebsocketKétirányú hálózati kommunikáció

●Ideális multiplayer játékokhoz●Csevegő alkalmazásokhoz

Websocket server implementációk:●node.js●python●c++●java●stb...

Page 16: Webapplication development with HTML5 and GWT

Websocket // Let us open a web socket

var ws = new WebSocket("ws://someaddress:9998/echo"); ws.onopen = function() { // Web Socket is connected, send data using send() ws.send("Message to send"); alert("Message is sent..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("Message is received..."); }; ws.onclose = function() { // websocket is closed. alert("Connection is closed..."); };

Page 17: Webapplication development with HTML5 and GWT

Geolocation és File APIGeolocation API

●Engedély szükséges●A felhasználó pozícióját kérhetjük el

File API●Gyenge támogatottság●fájlolvasás, fájlmentés, szeletelés

Page 18: Webapplication development with HTML5 and GWT

Böngésző támogatottságFő probléma:Még nem egységesek a szabványok, többféle implementációwindow.requestAnimFrame = (function(){ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function( callback ){ window.setTimeout(callback, 1000 / 60); }; })();

Page 19: Webapplication development with HTML5 and GWT

Fejlesztési nehézségek●Nehéz bővíteni a támogatott platformokat●Könnyű bugot csinálni

o régebbi verzióbanomás böngészőbenoeljövendő verziókban

●Workaround-okoNyilvántartás

Melyik böngészőben? Melyik verzióban?

oKell-e még?●Tesztelési nehézségek

oAz előzőek miatt

Page 20: Webapplication development with HTML5 and GWT

TeljesítményNagyobb alkalmazásoknál elengedhetetlen a teljesítmény figyelése

Lehetnek különbségek a böngészők között:●Memóriaszivárgás●Sebességkülönbségek

Page 21: Webapplication development with HTML5 and GWT

KitekintőEgyéb platformok:

●Windows 8 fejlesztésoA HTML5 teljesértékű programozási nyelv...

... - mondott valami hasonlót az MS DE NEM! Metro stílusú appok fejlesztése Nem egyenértékű a többi natív nyelvvel WP8 valószínűleg már nem támogatja natívan

●Mobilalkalmazás-fejlesztésoWebview-koAppok böngészőn keresztül

Page 22: Webapplication development with HTML5 and GWT

GWT (Google Web Toolkit)

●Google fejleszti●Első verzió: 2006●Kliens oldali programfejlesztéshez

oWeb UIoAJAX támogatás

●Java - JavaScript fordító●Kódolás, debuggolás Java-ban

oHosted mode●Jelenleg 2.5-ös verzió

Page 23: Webapplication development with HTML5 and GWT

Miben segít?●Java nyelv

oOOP tervezés (Osztályok, interface-k, öröklődés, típusok)

oEclipse integráció Okos kódkiegészítés Verziókezelő plug-inek Gyors fejlesztés

●Modularitás●Multiplatform●Optimalizálás●Obfuszkálás

Page 24: Webapplication development with HTML5 and GWT

Miben hátráltat?

●Multiplatform nehézségekoÁltalában áthidalható származtatással

●TípusosságoA natív JS-hez képest körülményes

●Lassú fordításoModuláris fejlesztéssel gyorsíthatóoHosted mode

Page 25: Webapplication development with HTML5 and GWT

Itt a vége...

Köszönöm a figyelmet!Kérdés?