SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Un Approccio Frameworkless
per Sviluppare la tua Single
Page Application
Antonio Dell’Ava
frontend developer
background in interaction design
loves cycling
OUR
ideato e extrategy ora sono Flowing:
una community inclusiva di persone
che condividono passione per
l’innovazione e bisogno costante di
evoluzione. Abbiamo cocreato
insieme questa nuova realtà, e
insieme a chi condivide i nostri valori
continuiamo a farla crescere giorno
per giorno.
PEOPLE
https://github.com/frameworkless-movement/
Peace & Love...
non odiamo i
framework
Prendere decisioni
tecniche ≠ Usare il
framework più di
moda
Non Functional
Requirements
Sviluppo del
Progetto
UX Business
Needs
Non Functional Requirements
quanto durerà il software?
in quanto tempo deve essere appreso?
qual è il “ritmo” dell’interazione?
da chi deve essere utilizzato?
Come legarli al progetto?
Design System
Errate aspettative
“Per fare il design system devo
avere una pattern library”
“Il design system è UX”
The true story
“ho una letteratura di interfacce che
rispecchia i n.f.r., abbiamo lavorato per
avere un linguaggio comune, quindi un
vocabolario dei componenti mi sarà
utile”
13
Design System
Pattern Percettivi → Style Guide
margini
tipografia
palette di colori
navigazione
iconografia
form
layout
CTA
principi di design
governance
parametri e regole
d’uso comuni
linguaggio
condiviso
Pattern Funzionali → Componenti
1. Principi
2. Parametri e regole d’uso comuni
3. Governance
4. Pattern
5. Pattern Library
Processo
Design System: Principi
➔ 3..5 frasi
➔ tutto il team coinvolto
➔ Esempio errato:“completezza e piacevolezza”
➔ Esempio corretto:“Seguire le seguenti priorità: prima completezza delle
informazioni di contesto poi piacevolezza estetica”
➔ la “prova del 9” è chiedersi “il contrario del mio principio potrebbe essere
valido per un altro design system?”
Design System: Parametri e regole
d’uso comuni
Integrato
Restrittivo
Modulare
Flessibile
Design System: Governance
➔ Quale è il team? Livello di delega?
➔ Quali sono gli strumenti?
➔ Come si rendono visibili i risultati? Canali?
➔ Quali sono i riti?
Design System: Design Pattern
➔ [def] una soluzione progettuale
riusabile per un problema ricorrente
➔ Come? Processo induttivo da
UI+User journey a Design Pattern
http://bradfrost.com/blog/post/interface-inventory/
Interface inventory
http://bradfrost.com/blog/post/interface-inventory/
➔ fa emergere quanto un pattern è centrale nella consegna
di valore
Pattern Library?
Framework
==
una pattern library
pronta
22
Design System
Pattern Percettivi → Style Guide
Variabili
(custom?)
principi di design
governance
parametri e regole
d’uso comuni
linguaggio
condiviso
Pattern Funzionali → Componenti
Framework
(esteso?)
IntegrabiliCSS only Integrati
Alcuni Esempi
https://github.com/troxler/awesome-css-frameworks
perché li usiamo?
È per forza un male
usarli?
Pitfalls
1. Tradeoff
PRO CONTRO
Framework UI
Velocity Specificità
Debito Tecnico
https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
Avventato Prudente
Scelta
Involontario
“Non abbiamo
tempo per
progettare”
“Cosa è la UX?”
“Ora sappiamo come
avremmo dovuto
farlo”
“Preferiamo
accelerare e siamo
consapevoli delle
conseguenze”
2. Il Software soddisfa i
bisogni nel tempo
Tempo
Ciclo di Vita del Software
Tempo
Ciclo di Vita del Software
MVP FEATURE 1 FEATURE N
Tempo
Conoscenza
Tempo
Ciclo di Vita del Software
MVP FEATURE 1 FEATURE N
Scelta Framework
4. Il framework
non toglie il costo di
allineamento
Tempo
Ciclo di Vita del Software
MVP FEATURE 1 FEATURE N
Disallineamento
Alternative
Possibili approcci
1. “Classico”: framework frontend
react/angular/vue + SCSS
2. WebComponents
Esempio di Web Component
https://github.com/adellava/simple-web-components-with-manipulation
1
2
3
4
5
6
7
Esempio Web Component
<html>
[...]
<body>
<mydesignsystem-input-currency
name="valore-bonifico" num="889271"
label="valore
bonifico"></mydesignsystem-input-curr
ency>
</body>
</html>
import InputCurrency from
"./InputCurrency/InputCurrency";
window.customElements.define(
"mydesignsystem-input-currency",
InputCurrency
);
Esempio Web Component
class InputCurrency extends HTMLElement {
static get observedAttributes () { [ // attributi osserbabili ] }
connectedCallback () {
// render
// bind events
}
attributeChangedCallback (name) { //... sync my template }
}
Esempio Web Component
const emitChangeValue = (element) => {
const event = new window.CustomEvent("value-change", {
detail: () => Number.parseFloat(element.value),
bubbles: true
});
element.dispatchEvent(event);
};
Caratteristiche
1. Costosa
2. Compatibilità
3. Prestazioni
4. Web Standard
Scelta Consapevole,
come si fa?
quanto deve durare il software?
specificitàdeldesignsystem
web components
+ scss
react/vue/angular
+ css only framework (es.
bulma)
react/vue/angular
+ scss
framework UI end to end
=> es. material UI
framework UI end to end => es.
material UI estesa con
+ react/vue/angular
componenti SCSS
quanto deve durare il software?
specificitàdeldesignsystem
web components
+ scss
react/vue/angular
+ css only framework (es.
bulma)
react/vue/angular
+ scss
framework UI end to end
=> es. material UI
framework UI end to end => es.
material UI
+ react/vue/angular
componenti SCSS
Mia App
quanto il componente è centrale nella consegna del valore?
specificitàdelcomponente
web components
+ scss
react/angular/vue
+
scss
framework UI end to end
=> es. material UI
react/vue/angular
+
css only framework (es. bulma)
UX da rivedere?
UX da rivedere?
Conclusioni
Antonio Dell’Ava
@creativecaos
antonio.dellava@flowing.it
https://joind.in/talk/6fdf6
Antonio Dell’Ava
@creativecaos
antonio.dellava@flowing.it

Weitere ähnliche Inhalte

Ähnlich wie Un approccio Frameworkless per sviluppare la tua Single Page Application

Laboratorio Web Journalism | 17 dicembre 2010
Laboratorio Web Journalism | 17 dicembre 2010Laboratorio Web Journalism | 17 dicembre 2010
Laboratorio Web Journalism | 17 dicembre 2010Macsis
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSGiovanni Buffa
 
Framework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostackFramework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostackStefano Spagnolo
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScriptRoberto Messora
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utenteUX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utenteMarco Pesani
 
Il modello collaborativo dell'open source per lo sviluppo software
Il modello collaborativo dell'open source per lo sviluppo softwareIl modello collaborativo dell'open source per lo sviluppo software
Il modello collaborativo dell'open source per lo sviluppo softwareFederico Gobbo
 
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023AndreaStagi3
 
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaTecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaMarco Parenzan
 
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...DrupalDay
 
Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19Giuseppe Vizzari
 
5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)Giuseppe Vizzari
 
Studio e sviluppo di un sito web responsive attraverso Bootstrap
Studio e sviluppo di un sito web responsive attraverso BootstrapStudio e sviluppo di un sito web responsive attraverso Bootstrap
Studio e sviluppo di un sito web responsive attraverso BootstrapDavide Polotto
 
II modulo – come gestire
II modulo – come gestireII modulo – come gestire
II modulo – come gestireBeesolution
 
Workshop metodi e tecniche agili
Workshop metodi e tecniche agiliWorkshop metodi e tecniche agili
Workshop metodi e tecniche agiliFederico Gobbo
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 

Ähnlich wie Un approccio Frameworkless per sviluppare la tua Single Page Application (20)

Laboratorio Web Journalism | 17 dicembre 2010
Laboratorio Web Journalism | 17 dicembre 2010Laboratorio Web Journalism | 17 dicembre 2010
Laboratorio Web Journalism | 17 dicembre 2010
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
 
Framework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostackFramework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostack
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utenteUX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
 
Il modello collaborativo dell'open source per lo sviluppo software
Il modello collaborativo dell'open source per lo sviluppo softwareIl modello collaborativo dell'open source per lo sviluppo software
Il modello collaborativo dell'open source per lo sviluppo software
 
Introduzione a .Net Core
Introduzione a .Net CoreIntroduzione a .Net Core
Introduzione a .Net Core
 
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
 
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaTecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che Cambia
 
Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
 
Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19
 
5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)
 
Studio e sviluppo di un sito web responsive attraverso Bootstrap
Studio e sviluppo di un sito web responsive attraverso BootstrapStudio e sviluppo di un sito web responsive attraverso Bootstrap
Studio e sviluppo di un sito web responsive attraverso Bootstrap
 
Conoscenza e PA
Conoscenza e PAConoscenza e PA
Conoscenza e PA
 
II modulo – come gestire
II modulo – come gestireII modulo – come gestire
II modulo – come gestire
 
Workshop metodi e tecniche agili
Workshop metodi e tecniche agiliWorkshop metodi e tecniche agili
Workshop metodi e tecniche agili
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Tesi8
Tesi8Tesi8
Tesi8
 

Mehr von extrategy

L'arte di massimizzare la quantità di lavoro non svolto
L'arte di massimizzare la quantità di lavoro non svoltoL'arte di massimizzare la quantità di lavoro non svolto
L'arte di massimizzare la quantità di lavoro non svoltoextrategy
 
Adaptive planning
Adaptive planningAdaptive planning
Adaptive planningextrategy
 
Il Pair Coaching come evoluzione professionale e personale
Il Pair Coaching come evoluzione professionale e personaleIl Pair Coaching come evoluzione professionale e personale
Il Pair Coaching come evoluzione professionale e personaleextrategy
 
L’arte di massimizzare la quantità di lavoro non svolto
L’arte di massimizzare la quantità di lavoro non svoltoL’arte di massimizzare la quantità di lavoro non svolto
L’arte di massimizzare la quantità di lavoro non svoltoextrategy
 
CSS day 2018 - Layout Saga in the web application era
CSS day 2018 - Layout Saga in the web application eraCSS day 2018 - Layout Saga in the web application era
CSS day 2018 - Layout Saga in the web application eraextrategy
 
Learning over Delivery: il business e l'innovazione ai tempi della complessità
Learning over Delivery: il business e l'innovazione ai tempi della complessitàLearning over Delivery: il business e l'innovazione ai tempi della complessità
Learning over Delivery: il business e l'innovazione ai tempi della complessitàextrategy
 
Mini IAD Torino: Il collante strategico durante lo sviluppo: Continuous Disco...
Mini IAD Torino: Il collante strategico durante lo sviluppo: Continuous Disco...Mini IAD Torino: Il collante strategico durante lo sviluppo: Continuous Disco...
Mini IAD Torino: Il collante strategico durante lo sviluppo: Continuous Disco...extrategy
 
IAD17 Il collante strategico durante lo sviluppo: Continuous Discovery
IAD17 Il collante strategico durante lo sviluppo: Continuous DiscoveryIAD17 Il collante strategico durante lo sviluppo: Continuous Discovery
IAD17 Il collante strategico durante lo sviluppo: Continuous Discoveryextrategy
 
Real time project portfolio management
Real time project portfolio managementReal time project portfolio management
Real time project portfolio managementextrategy
 
Dalle Styleguide alla Pattern Libraries: cosa serve e quando
Dalle Styleguide alla Pattern Libraries: cosa serve e quandoDalle Styleguide alla Pattern Libraries: cosa serve e quando
Dalle Styleguide alla Pattern Libraries: cosa serve e quandoextrategy
 
Web design patterns nell'era della digital transformation
Web design patterns nell'era della digital transformationWeb design patterns nell'era della digital transformation
Web design patterns nell'era della digital transformationextrategy
 
visione e immaginazione: dove vogliamo portare le nostre aziende domani?
visione e immaginazione: dove vogliamo portare le nostre aziende domani?visione e immaginazione: dove vogliamo portare le nostre aziende domani?
visione e immaginazione: dove vogliamo portare le nostre aziende domani?extrategy
 
Real time strategy for you
Real time strategy for youReal time strategy for you
Real time strategy for youextrategy
 
come il front-end automation aiuta tutto il team
come il front-end automation aiuta tutto il teamcome il front-end automation aiuta tutto il team
come il front-end automation aiuta tutto il teamextrategy
 
Inclusiveness, openness, leanness: dove voglio portare l’azienda?
Inclusiveness, openness, leanness: dove voglio portare l’azienda? Inclusiveness, openness, leanness: dove voglio portare l’azienda?
Inclusiveness, openness, leanness: dove voglio portare l’azienda? extrategy
 
Innovazione. ovvero, le imprese non sono più quelle di una volta.
Innovazione. ovvero, le imprese non sono più quelle di una volta.Innovazione. ovvero, le imprese non sono più quelle di una volta.
Innovazione. ovvero, le imprese non sono più quelle di una volta.extrategy
 
ModulAngular
ModulAngularModulAngular
ModulAngularextrategy
 
Co-creare una strategia con Lego Serious Play
Co-creare una strategia con Lego Serious PlayCo-creare una strategia con Lego Serious Play
Co-creare una strategia con Lego Serious Playextrategy
 
Condividere obiettivi e prendere decisioni con Lego Serious Play
Condividere obiettivi e prendere decisioni con Lego Serious PlayCondividere obiettivi e prendere decisioni con Lego Serious Play
Condividere obiettivi e prendere decisioni con Lego Serious Playextrategy
 
Quale sviluppo per le Marche?
Quale sviluppo per le Marche?Quale sviluppo per le Marche?
Quale sviluppo per le Marche?extrategy
 

Mehr von extrategy (20)

L'arte di massimizzare la quantità di lavoro non svolto
L'arte di massimizzare la quantità di lavoro non svoltoL'arte di massimizzare la quantità di lavoro non svolto
L'arte di massimizzare la quantità di lavoro non svolto
 
Adaptive planning
Adaptive planningAdaptive planning
Adaptive planning
 
Il Pair Coaching come evoluzione professionale e personale
Il Pair Coaching come evoluzione professionale e personaleIl Pair Coaching come evoluzione professionale e personale
Il Pair Coaching come evoluzione professionale e personale
 
L’arte di massimizzare la quantità di lavoro non svolto
L’arte di massimizzare la quantità di lavoro non svoltoL’arte di massimizzare la quantità di lavoro non svolto
L’arte di massimizzare la quantità di lavoro non svolto
 
CSS day 2018 - Layout Saga in the web application era
CSS day 2018 - Layout Saga in the web application eraCSS day 2018 - Layout Saga in the web application era
CSS day 2018 - Layout Saga in the web application era
 
Learning over Delivery: il business e l'innovazione ai tempi della complessità
Learning over Delivery: il business e l'innovazione ai tempi della complessitàLearning over Delivery: il business e l'innovazione ai tempi della complessità
Learning over Delivery: il business e l'innovazione ai tempi della complessità
 
Mini IAD Torino: Il collante strategico durante lo sviluppo: Continuous Disco...
Mini IAD Torino: Il collante strategico durante lo sviluppo: Continuous Disco...Mini IAD Torino: Il collante strategico durante lo sviluppo: Continuous Disco...
Mini IAD Torino: Il collante strategico durante lo sviluppo: Continuous Disco...
 
IAD17 Il collante strategico durante lo sviluppo: Continuous Discovery
IAD17 Il collante strategico durante lo sviluppo: Continuous DiscoveryIAD17 Il collante strategico durante lo sviluppo: Continuous Discovery
IAD17 Il collante strategico durante lo sviluppo: Continuous Discovery
 
Real time project portfolio management
Real time project portfolio managementReal time project portfolio management
Real time project portfolio management
 
Dalle Styleguide alla Pattern Libraries: cosa serve e quando
Dalle Styleguide alla Pattern Libraries: cosa serve e quandoDalle Styleguide alla Pattern Libraries: cosa serve e quando
Dalle Styleguide alla Pattern Libraries: cosa serve e quando
 
Web design patterns nell'era della digital transformation
Web design patterns nell'era della digital transformationWeb design patterns nell'era della digital transformation
Web design patterns nell'era della digital transformation
 
visione e immaginazione: dove vogliamo portare le nostre aziende domani?
visione e immaginazione: dove vogliamo portare le nostre aziende domani?visione e immaginazione: dove vogliamo portare le nostre aziende domani?
visione e immaginazione: dove vogliamo portare le nostre aziende domani?
 
Real time strategy for you
Real time strategy for youReal time strategy for you
Real time strategy for you
 
come il front-end automation aiuta tutto il team
come il front-end automation aiuta tutto il teamcome il front-end automation aiuta tutto il team
come il front-end automation aiuta tutto il team
 
Inclusiveness, openness, leanness: dove voglio portare l’azienda?
Inclusiveness, openness, leanness: dove voglio portare l’azienda? Inclusiveness, openness, leanness: dove voglio portare l’azienda?
Inclusiveness, openness, leanness: dove voglio portare l’azienda?
 
Innovazione. ovvero, le imprese non sono più quelle di una volta.
Innovazione. ovvero, le imprese non sono più quelle di una volta.Innovazione. ovvero, le imprese non sono più quelle di una volta.
Innovazione. ovvero, le imprese non sono più quelle di una volta.
 
ModulAngular
ModulAngularModulAngular
ModulAngular
 
Co-creare una strategia con Lego Serious Play
Co-creare una strategia con Lego Serious PlayCo-creare una strategia con Lego Serious Play
Co-creare una strategia con Lego Serious Play
 
Condividere obiettivi e prendere decisioni con Lego Serious Play
Condividere obiettivi e prendere decisioni con Lego Serious PlayCondividere obiettivi e prendere decisioni con Lego Serious Play
Condividere obiettivi e prendere decisioni con Lego Serious Play
 
Quale sviluppo per le Marche?
Quale sviluppo per le Marche?Quale sviluppo per le Marche?
Quale sviluppo per le Marche?
 

Un approccio Frameworkless per sviluppare la tua Single Page Application