Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
1. Corso WebApp iOS
“Web Dev for iOS Devices”
Lezione 06/10
”..you’ve got everything you need if you know
how to write apps using.. ..web standards..”
Steve Jobs
Apple Inc. Co-Founder.
2. Chapter 03
Web Development for iOS Devices
Chapter 07
Web Standards for WebKit
http://www.apress.com/9781430232469
3. Diario Lezioni
LEZIONE 06
Mobile Touch Development
HTML5
CSS3
Javascript
26. HTML5
tag canvas: <canvas>
permette di ottenere effetti grafici avanzati
uso di immagini dinamiche
ridurre latenze di caricamento
downside: GPU overhead
27. HTML5
tag canvas: <canvas>
e’ un API Javascript che permette allo sviluppatore
di codificare delle operazioni di disegno basate sul singolo pixel
(contrapposti ai vettori SVG)
possono inoltre essere usati tutti gli assets grafici
compatibili con un browser (png, jpg, …)
28. HTML5
tag canvas: <canvas>
l’elemento <canvas> delimita dove Javascript
andrà a disegnare on-the-fly
quello che viene disegnato diviene parte del DOM
e viene “dimenticato” dal Javascript Engine
29. HTML5
tag canvas: <canvas>
Canvas Javascript API comprendono:
2D API
3D API
32. HTML5
tag canvas: <canvas>
disegnare usando <canvas> richiede:
recuperare un riferimento al canvas
ricevere il “drawing context” dall’elemento canvas
se si riceve il “drawing context”: disegnare
33. HTML5
tag canvas: <canvas>
function drawOnCanvas() {
var ctxElement = document.getElementById(“canvasTest”);
var ctx = ctxElement.getContext(“2d”);
if (ctx != null) {
// we can draw using Canvas 2D API
}
}
34. HTML5
tag canvas: <canvas>
function drawOnCanvas() {
var ctxElement = document.getElementById(“canvasTest”);
var ctx = ctxElement.getContext(“2d”);
if (ctx != null) {
// we can draw using Canvas 2D API
}
}
35. HTML5
tag canvas: <canvas>
function drawOnCanvas() {
var ctxElement = document.getElementById(“canvasTest”);
var ctx = ctxElement.getContext(“2d”);
if (ctx != null) {
// we can draw using Canvas 2D API
}
}
44. CSS3
Work in Progress
http://www.w3.org/Style/CSS/current-work
45. CSS3
Divisione in più moduli
alcuni sono:
The Box Model
Multi-Column Layout
Background and Borders
Lists Module
Text Effects
………
46. CSS3
Prefissi Vendor
fino a quando CSS3 non raggiungerà il “recommended status”
ogni browser vendor può implementare le sue proprietà
border-radius: 3px;
-webkit-border-radius: 3px; (WebKit-based Browser)
-moz-border-radius: 3px; (Gecko-based Browser)
47. CSS3
Snelliscono il Design
es: bordi arrotondati senza immagini aggiuntive
alcune delle proprietà più utili sono
68. Javascript
No General-Purpose Language
nato per interagire e manipolare pagine web
intenzionalmente limitato
es: no accesso a filesystem, database o hardware
69. Javascript
Client-Side Scripting Language
al contrario di altri linguaggi di scripting
Javascript lavora all’interno di un altra applicazione
Browser: Mobile Safari
73. Javascript
Client-Side Scripting Language
esiste concetto di oggetto
non esiste concetto di classe
debolmente tipizzato
(es: no necessario definire tipo di una variabile)
74. Javascript
Linguaggio Interpretato
motore dell’interprete Javascript ha un ruolo dominante
ottimizzare l’interprete migliora di molto le prestazioni
75. Javascript
Struttura Linguaggio
implementa concetti tra cui:
tipo di dato (primitivo e non-primitivo)
variabile
statement condizionali/loop
operatori
funzione
oggetto
77. Javascript
Come Interagisce con la Pagina Web?
interagendo con l’oggetto window
messo a disposizione (creati) dal browser
“window object”
BOM (Browser Object Model)
78. Javascript
window object
location object history object document object navigator object screen object
forms object images object links object
79. Javascript
window object
location object history object document object navigator object screen object
forms object images object links object
84. Esercitazione
Utilizzare Guida* di Riferimento
del Framework e Javascript
1. Implementare le Funzioni Specifiche
2. Implementare la Logica della Dinamica
* versione online e/o formato elettronico