SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Web	Framework

AngularJS
How	to	code	today	with	tomorrow	tools
Carlo	Bonamico	-	@carlobonamico
NIS	s.r.l.
carlo.bonamico@gmail.com
carlo.bonamico@nispro.it
Yes	but	you	can't	do	that	in	a	web	app
Sure?	people	used	to	think	it	was	impossible	to	get
interactive	email	clients	(GMail)
word	processors	and	spreadsheets	(GDocs)
file	share	(Dropbox)
real-time	monitoring	(Kibana)
offline	apps	(Nozbe)
The	web	is	(and	will	always	be)	more	powerful	than	people	think!
the	same	now	applies	to	mobile	web
which	will	overcome	the	"desktop"	web	in	terms	of	traffic
next	year
OK,	wo	I	will	go	for	HTML5
to	implement	my	next	great	service/project
																										...	a	few	months	go	by...

WTF!!	I	did	not	think	web	development	was	could	be	that	messy!
Spaghetti	code	tastes	better	in	a	dynamic	language	such	as	JS
I	spent	most	of	my	time	juggling	the	DOM
I	cannot	integrate	the	Form	widgets	I	love	with	the	charts	library	I
love
Where	is	modularization?	and	encapsulation?
"everything"	can	fiddle	with	"everything"...
Then	the	problems	begin
Initially,	it	"feels"	more	productive,	but...
When	the	app	grows,
debugging	gets	harder
refactoring	gets	harder
effective	testing	gets	impossible
When	the	team	grows,	collaboration	becomes	harder!
every	time	a	designer	makes	a	beautiful	look,	we	spend
days	implementing	it	and	regression	testing
It's	becoming	impossible	to	evolve!
HELP	ME!

Please,	before	I	go	back	to	Desktop	development,
can	you	tell	me	if	there	is	a	better	way?
If	I	were	to	answer	this	question	in	2008...
Almost	a	no	brainer:	go	for	Adobe	Flex!
It	has
encapsulation,	interfaces
event	driven	GUI
modular	and	reusable	comoponents
great	tooling

The	web	platform	was	just	not	there	yet...
Fast-forward	to	2015...
Definitely	a	no-brainer:
go	for	Web	Components	+	event-driven	MVC
http://mozilla.github.io/brick/docs.html
http://www.polymer-project.org/
And	now?	on	end	of	2013
Blurry	situation...
Adobe	Flex	is	Open	Source	(but	maybe	too	late...)	and	lost	support
HTML5	is	booming,	but	large-scale	JS	dev	is	hard	

But	please,	I	HAVE	to	deliver	a	great	Web	App	in	a	few	months!
Well..
The	future	is	already	here	—	it's	just	not	very	evenly	distributed.
William	Gibson

If	the	hundred	year	language	(from	2113)	were	available	today,
would	we	want	to	program	in	it?
Paul	Graham	-	http://paulgraham.com/hundred.html
Enter	AngularJS
Use	tomorrow	web	technologies	today

http://www.angularjs.org
And	almost	transparently	upgrade	as	soon	as	they	are	available

http://www.2ality.com/2013/05/web-components-angular-ember.html
Robust,	productive	(&	fun!)	Web	dev
Open	Source	toolset
backed	by	Google
great,	active	and	open	community

used	from	startups	to	Microsoft,	Oracle	&	Google	itself

Extremely	productive,	robust,	testable,	and	scalable
from	mockups	to	small	apps	to	large	enterprise	apps
Strong	points
Angular	follows	and	ehnances	the	HTML	way	of	doing	things
declarative
interoperable
Event-driven	Model-View-Controller
plain	JS	models
Data	binding

View	is	as	decoupled	as	possibile	from	logic
Great	for	effective	Designer-Developer	workflows!
OK,	you	are	getting	me	interested

but	I	want	proof!
Well...

OK!	THIS	presentation	is	not	PowerPoint
nor	OpenOffice	nor	Keynote
It's	an	AngularJS	app	I	wrote	in	a	few	hours

Press	F12	to	be	sure!

Thanks	http://plnkr.co	!
#
What's	inside
A	View:	index.html
a	style.css
peppered-up	with	AngularJS	'ng-something'	directives
A	model
data:	slides.md
code:	array	of	slide	object
A	controller
script.js
The	model
			var	slide	=	{
																				number:	i	+	1,
																				title:	"Title	"	+	i,
																				content:	"#Title	n	markdown	sample",
																				html:	"",
																				background:	"backgroundSlide"
				};
A	service	to	load	the	model	from	markdown
				ngSlides.service('slidesMarkdownService',	function	($http)	{
				var	converter	=	new	Showdown.converter();
				return	{
								getFromMarkdown:	function	(path)	{
												var	slides	=	[];
												$http({method:	'GET',	url:	path}).
																success(function	(data,	status,	headers,	config)	{
																				var	slidesToLoad	=	data.split(separator);	//two	dashes
																				for	(i	=	0;	i	<	slidesToLoad.length;	i++)	{
																								var	slide	=	{
																												content:	slidesToLoad[i],
																												//..	init	other	slide	fields
																								};
																								slide.html	=	converter.makeHtml(slide.content);
																								slides.push(slide);
																				}
																});
												return	slides;
								}
				}
})
A	simple	declarative	view
binding	the	model	to	the	html
<body	ng-app="ngSlides"	ng-class="slides[currentSlide].background"
						ng-controller="presentationCtrl">
<div	id="slidesContainer"	class="slidesContainer"	>
				<div	class="slide"	ng-repeat="slide	in	slides"
																							ng-show="slide.number	==	currentSlide"	>
								<div	ng-bind-html="slide.html"></div>
								<h4	class="number">{{slide.number}}</h4>
				</div>
</div>
</body>

and	a	very	simple	css	for	positioning	elements	in	the	page
A	controller	focused	on	interaction
				ngSlides.controller("presentationCtrl",	function	($scope,	$http,
																																						$rootScope,	slidesMarkdownService)	{
				$scope.slides	=	slidesMarkdownService.getFromMarkdown('slides.md');
				$scope.currentSlide	=	0;
				$scope.next	=	function	()	{
								$scope.currentSlide	=	$scope.currentSlide	+	1;
				};
				$scope.previous	=	function	()	{
								$scope.currentSlide	=	$scope.currentSlide	-	1;
				};

});
Integration	with	non-angular	code
$apply	utility	function	to	notify	angular	of	changes
angular.element(	...).scope()
to	access	controller	methods	and	scope	outside	angular
document.onkeyup	=	KeyPressed;
function	KeyPressed(e)	{
				var	key	=	(	window.event	)	?	event.keyCode	:	e.keyCode;
				var	controllerElement	=	angular.element(document.getElementById("slidesContainer"))
;
				var	scope	=	controllerElement.scope()
				scope.$apply(function	()	{
								switch	(key)	{
												case	39:
												{
																scope.next();
																break;
												}
				//...
Slide	sources	in	markdown	format
slides.md
#It's	an	AngularJS	app	I	wrote	in	a	few	hours
<br/>
##	Press	F12	to	be	sure!
What's	inside	-	details
A	custom	directive
A	few	filters
AngularJS	magic
Any	sufficiently	advanced	technology	is	indistinguishable	from	magic.
Arthur	C.	Clarcke
<li	ng-repeat="slide	in	slides	|	filter:q">...</li>
AngularJS	magic	is	made	of
Dependency	Injection
makes	for	decoupling,	testability,	and	enriching	of	your
code	and	tags
		function	SlidesCtrl($scope,	SlidesService)
		{
				SlidesService.loadFromMarkdown('slides.md');
		}
AngularJS	magic	is	made	of
Transparent	navigation	and	history	with	 ng-view 	and	 ng-route
Databinding
a	few	little	tricks	(Dirty	checking)
which	will	disappear	when	the	future	(ECMAScript6
object.observe)	arrives
The	power	of	composition
Microkernel	architecture
core:	HTML	compiler,	Dependency	Injection,	module
system
everything	else	is	a	directive,	service	or	module
Composition	of
modules
module('slides',['slides.markdown'])

directives
<h1	ng-show='enableTitle'	ng-class='titleClass'>..</h1>

filters
slide	in	slides	|	filter:q	|	orderBy:title	|	limit:3

...

Do	you	know	of	other	microkernel-based	technologies
with	a	strong	focus	on	composition?
they	tend	to	be	strong	and	long	lived	:-),	right	Linux,	Maven,	Jenkins?
Take	advantage	of	AngularJS	capabilities
Integration	with	other	frameworks
Showdon	Markdown	converter
https://github.com/coreyti/showdown
Highlight.js	for	syntax	highlighting
plain	JS	for	keyboard	handling
AngularJS	is	opinionated
but	it	will	let	you	follow	a	different	way	in	case	you	really
really	need	it
Testing
Unit	Testing
mocking
http	mocking
End-To-End	testing
scenarios
Jasmine
Weak	points
Even	angular	is	not	perfect...	yet!
Dynamic	page	rendering,	so	SEO	is	hard
temporary	solutions	with	PhantomJS	on	the	server	side
a	few	cloud-based	services
personally	think	Google	is	working	on	fixing	that
Tooling	is	good	but	can	improve
Support	for	lesser	browser
Lessons	learnt
angularJS	docs	are	great!	but	beware	of	 <ANY	ng-show="{expression}">
If	you	write	 <div	ng-show="{divEnableFlag}">
It	won't	work!	Write	 <div	ng-show="divEnableFlag">
Lessons	learnt
Getting	started	is	very	easy
But	to	go	further	you	need	to	learn	the	key	concepts
promises
dependency	injection
directives
scopes
Lessons	learnt
Like	all	the	magic	wands,	you	could	end	up	like	Mikey	Mouse	as	the
apprentice	sorcerer
So	get	your	training!
Online
Codemotion	training	(4-5	february	and	4-5	march	2014)
http://training.codemotion.it/
Lessons	learnt
AngularJS	makes	for	great	mockups
interactivity	in	plain	HTML	views
AngularJS	changes	your	way	of	working	(for	the	better!)
let	you	free	of	concentrating	on	your	ideas
makes	for	a	way	faster	development	cycle
makes	for	a	way	faster	interaction	with	customer	cycle
essential	for	Continuous	Delivery!
To	learn	more
Online	tutorials	and	video	trainings:
http://www.yearofmoo.com/
http://egghead.io
All	links	and	reference	from	my	Codemotion	Workshop
https://github.com/carlobonamico/angularjs-quickstart
https://github.com/carlobonamico/angularjsquickstart/blob/master/references.md
Full	lab	from	my	Codemotion	Workshop
https://github.com/carlobonamico/angularjs-quickstart
Web	Components
http://www.w3.org/TR/components-intro/
Youtube	video	"Web	Components	in	Action"
http://css-tricks.com/modular-future-web-components/
Books
http://www.ng-book.com/
AngularJS	and	.NET	http://henriquat.re
My	current	plans
writing	about	AngularJS	and	security
attend	Marcello	Teodori	talk	on	JS	Power	Tools
integrate	AngularJS	with	my	favourite	Open	Source	server-side	dev
platform
http://www.manydesigns.com/en/portofino
preparing	the	'Advanced	AngularJS'	workshop
contact	us	if	interested
Thank	you!
Explore	these	slides
https://github.com/carlobonamico/angularjs-future-webdevelopment-slides
My	presentations
http://slideshare.net/carlo.bonamico
Follow	me	at	@carlobonamico	/	@nis_srl
will	publish	these	slides	in	a	few	days
Attend	my	Codemotion	trainings
http://training.codemotion.it/
Write	me	if	you	are	interested	in	the	upcoming	AngularJS	Italy	online
community	

and	thanks	to	Elena	Venni	for	the	many	ideas	about	Angular	in	our
last	project	together
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013

Más contenido relacionado

La actualidad más candente

MEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN Stack
MEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN StackMEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN Stack
MEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN StackMariya James
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)Alex Ross
 
Full Stack Vs Mean Stack Vs MERN Stack Comparison & Benefits
Full Stack Vs Mean Stack Vs MERN Stack Comparison & BenefitsFull Stack Vs Mean Stack Vs MERN Stack Comparison & Benefits
Full Stack Vs Mean Stack Vs MERN Stack Comparison & BenefitsAvya Technology Pvt. Ltd.
 
Top Web Development Frameworks Comparison: All You Need To Know
Top Web Development Frameworks Comparison: All You Need To KnowTop Web Development Frameworks Comparison: All You Need To Know
Top Web Development Frameworks Comparison: All You Need To KnowPixel Crayons
 
Aeternity Blockchain - Ecosystem & Devtools [2019]
Aeternity Blockchain - Ecosystem & Devtools [2019]Aeternity Blockchain - Ecosystem & Devtools [2019]
Aeternity Blockchain - Ecosystem & Devtools [2019]Przemysław Thomann
 
AdamVisserResume
AdamVisserResumeAdamVisserResume
AdamVisserResumeAdam Visser
 
Mobile devices and SharePoint
Mobile devices and SharePointMobile devices and SharePoint
Mobile devices and SharePointmaliksahil
 
Developing Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile ApplicationsDeveloping Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile ApplicationsSimon Guest
 
PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSRyan Stewart
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsTroy Miles
 
The Future Of Web Frameworks
The Future Of Web FrameworksThe Future Of Web Frameworks
The Future Of Web FrameworksMatt Raible
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Christian Heindel
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRfunkatron
 

La actualidad más candente (20)

MEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN Stack
MEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN StackMEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN Stack
MEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN Stack
 
Uses of java
Uses of javaUses of java
Uses of java
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)
 
Full Stack Vs Mean Stack Vs MERN Stack Comparison & Benefits
Full Stack Vs Mean Stack Vs MERN Stack Comparison & BenefitsFull Stack Vs Mean Stack Vs MERN Stack Comparison & Benefits
Full Stack Vs Mean Stack Vs MERN Stack Comparison & Benefits
 
Top Web Development Frameworks Comparison: All You Need To Know
Top Web Development Frameworks Comparison: All You Need To KnowTop Web Development Frameworks Comparison: All You Need To Know
Top Web Development Frameworks Comparison: All You Need To Know
 
Aeternity Blockchain - Ecosystem & Devtools [2019]
Aeternity Blockchain - Ecosystem & Devtools [2019]Aeternity Blockchain - Ecosystem & Devtools [2019]
Aeternity Blockchain - Ecosystem & Devtools [2019]
 
Hai_Bui
Hai_BuiHai_Bui
Hai_Bui
 
AdamVisserResume
AdamVisserResumeAdamVisserResume
AdamVisserResume
 
Mobile devices and SharePoint
Mobile devices and SharePointMobile devices and SharePoint
Mobile devices and SharePoint
 
Developing Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile ApplicationsDeveloping Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile Applications
 
MikePlatsidakisResume
MikePlatsidakisResumeMikePlatsidakisResume
MikePlatsidakisResume
 
CV
CVCV
CV
 
My CV
My CVMy CV
My CV
 
CVMaxSpoFormatIng
CVMaxSpoFormatIngCVMaxSpoFormatIng
CVMaxSpoFormatIng
 
PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JS
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
 
The Future Of Web Frameworks
The Future Of Web FrameworksThe Future Of Web Frameworks
The Future Of Web Frameworks
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
 
NetTantra Web Development Brochure
NetTantra Web Development BrochureNetTantra Web Development Brochure
NetTantra Web Development Brochure
 

Destacado

CommitUniversity AngularJSAdvanced Andrea Vallotti
CommitUniversity  AngularJSAdvanced Andrea VallottiCommitUniversity  AngularJSAdvanced Andrea Vallotti
CommitUniversity AngularJSAdvanced Andrea VallottiCommit University
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
Sviluppare applicazioni android
Sviluppare applicazioni androidSviluppare applicazioni android
Sviluppare applicazioni androidPaolo Montalto
 
Playing with parse.com
Playing with parse.comPlaying with parse.com
Playing with parse.comJUG Genova
 
Java 9 by Alessio Stalla
Java 9 by Alessio StallaJava 9 by Alessio Stalla
Java 9 by Alessio StallaJUG Genova
 
AngularJS Introduction
AngularJS IntroductionAngularJS Introduction
AngularJS IntroductionCarlos Morales
 
Understanding angular js
Understanding angular jsUnderstanding angular js
Understanding angular jsAayush Shrestha
 

Destacado (13)

CommitUniversity AngularJSAdvanced Andrea Vallotti
CommitUniversity  AngularJSAdvanced Andrea VallottiCommitUniversity  AngularJSAdvanced Andrea Vallotti
CommitUniversity AngularJSAdvanced Andrea Vallotti
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
REST con Jersey
REST con JerseyREST con Jersey
REST con Jersey
 
Sviluppare applicazioni android
Sviluppare applicazioni androidSviluppare applicazioni android
Sviluppare applicazioni android
 
Playing with parse.com
Playing with parse.comPlaying with parse.com
Playing with parse.com
 
JMeter
JMeterJMeter
JMeter
 
Java 9 by Alessio Stalla
Java 9 by Alessio StallaJava 9 by Alessio Stalla
Java 9 by Alessio Stalla
 
AngularJS Introduction
AngularJS IntroductionAngularJS Introduction
AngularJS Introduction
 
EIP with Apache Camel
EIP with Apache CamelEIP with Apache Camel
EIP with Apache Camel
 
Understanding angular js
Understanding angular jsUnderstanding angular js
Understanding angular js
 
Java 8
Java 8Java 8
Java 8
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
Angularjs
AngularjsAngularjs
Angularjs
 

Similar a AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013

Mobile HTML5 websites and hybrid Apps with AngularJS - Bonamico
Mobile HTML5 websites and hybrid Apps with AngularJS - BonamicoMobile HTML5 websites and hybrid Apps with AngularJS - Bonamico
Mobile HTML5 websites and hybrid Apps with AngularJS - BonamicoCodemotion
 
Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Christian Heilmann
 
Designing better user interfaces
Designing better user interfacesDesigning better user interfaces
Designing better user interfacesJohan Ronsse
 
ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DRobin Hawkes
 
Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015Gregory Starr
 
HTML5 - Moving from hacks to solutions
HTML5 - Moving from hacks to solutionsHTML5 - Moving from hacks to solutions
HTML5 - Moving from hacks to solutionsChristian Heilmann
 
The Browser is Dead, Long Live the Web!
The Browser is Dead, Long Live the Web!The Browser is Dead, Long Live the Web!
The Browser is Dead, Long Live the Web!Jonathan Stark
 
The Browser is Dead, Long Live the Web! (Jonathan Stark)
 The Browser is Dead, Long Live the Web! (Jonathan Stark) The Browser is Dead, Long Live the Web! (Jonathan Stark)
The Browser is Dead, Long Live the Web! (Jonathan Stark)Future Insights
 
2020 Top Web Development Trends
2020 Top Web Development Trends2020 Top Web Development Trends
2020 Top Web Development TrendsPencil Agency
 
Extending the web: Maps, the commons, and pie
Extending the web: Maps, the commons, and pieExtending the web: Maps, the commons, and pie
Extending the web: Maps, the commons, and pieIgalia
 
Web design and development trends
Web design and development  trendsWeb design and development  trends
Web design and development trendsCool Sky
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptChristian Heilmann
 
The Road To Openness.Odt
The Road To Openness.OdtThe Road To Openness.Odt
The Road To Openness.OdtKaniska Mandal
 
Web 2.0 for IA's
Web 2.0 for IA'sWeb 2.0 for IA's
Web 2.0 for IA'sDave Malouf
 
7 crazy tips that will help you
7 crazy tips that will help you7 crazy tips that will help you
7 crazy tips that will help youJessica Wilson
 
Tomáš Strejček - Velikost týmu vs. monolith a mikroservicy (11. sraz přátel ...
Tomáš Strejček - Velikost týmu vs. monolith a mikroservicy  (11. sraz přátel ...Tomáš Strejček - Velikost týmu vs. monolith a mikroservicy  (11. sraz přátel ...
Tomáš Strejček - Velikost týmu vs. monolith a mikroservicy (11. sraz přátel ...Péhápkaři
 
Monolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsMonolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsTomáš Strejček
 
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...Christian Heilmann
 
Real World Lessons in jQuery Mobile
Real World Lessons in jQuery MobileReal World Lessons in jQuery Mobile
Real World Lessons in jQuery MobileKai Koenig
 
Presentazione web design
Presentazione web designPresentazione web design
Presentazione web designMarco Santo
 

Similar a AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013 (20)

Mobile HTML5 websites and hybrid Apps with AngularJS - Bonamico
Mobile HTML5 websites and hybrid Apps with AngularJS - BonamicoMobile HTML5 websites and hybrid Apps with AngularJS - Bonamico
Mobile HTML5 websites and hybrid Apps with AngularJS - Bonamico
 
Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016
 
Designing better user interfaces
Designing better user interfacesDesigning better user interfaces
Designing better user interfaces
 
ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
 
Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015
 
HTML5 - Moving from hacks to solutions
HTML5 - Moving from hacks to solutionsHTML5 - Moving from hacks to solutions
HTML5 - Moving from hacks to solutions
 
The Browser is Dead, Long Live the Web!
The Browser is Dead, Long Live the Web!The Browser is Dead, Long Live the Web!
The Browser is Dead, Long Live the Web!
 
The Browser is Dead, Long Live the Web! (Jonathan Stark)
 The Browser is Dead, Long Live the Web! (Jonathan Stark) The Browser is Dead, Long Live the Web! (Jonathan Stark)
The Browser is Dead, Long Live the Web! (Jonathan Stark)
 
2020 Top Web Development Trends
2020 Top Web Development Trends2020 Top Web Development Trends
2020 Top Web Development Trends
 
Extending the web: Maps, the commons, and pie
Extending the web: Maps, the commons, and pieExtending the web: Maps, the commons, and pie
Extending the web: Maps, the commons, and pie
 
Web design and development trends
Web design and development  trendsWeb design and development  trends
Web design and development trends
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScript
 
The Road To Openness.Odt
The Road To Openness.OdtThe Road To Openness.Odt
The Road To Openness.Odt
 
Web 2.0 for IA's
Web 2.0 for IA'sWeb 2.0 for IA's
Web 2.0 for IA's
 
7 crazy tips that will help you
7 crazy tips that will help you7 crazy tips that will help you
7 crazy tips that will help you
 
Tomáš Strejček - Velikost týmu vs. monolith a mikroservicy (11. sraz přátel ...
Tomáš Strejček - Velikost týmu vs. monolith a mikroservicy  (11. sraz přátel ...Tomáš Strejček - Velikost týmu vs. monolith a mikroservicy  (11. sraz přátel ...
Tomáš Strejček - Velikost týmu vs. monolith a mikroservicy (11. sraz přátel ...
 
Monolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsMonolith vs Microservices vs Teams
Monolith vs Microservices vs Teams
 
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
 
Real World Lessons in jQuery Mobile
Real World Lessons in jQuery MobileReal World Lessons in jQuery Mobile
Real World Lessons in jQuery Mobile
 
Presentazione web design
Presentazione web designPresentazione web design
Presentazione web design
 

Más de Carlo Bonamico

Build Your Own Angular Component Library
Build Your Own Angular Component LibraryBuild Your Own Angular Component Library
Build Your Own Angular Component LibraryCarlo Bonamico
 
Angular Rebooted: Components Everywhere
Angular Rebooted: Components EverywhereAngular Rebooted: Components Everywhere
Angular Rebooted: Components EverywhereCarlo Bonamico
 
Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCCarlo Bonamico
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Infrastructure as Data with Ansible for easier Continuous Delivery
Infrastructure as Data with Ansible for easier Continuous DeliveryInfrastructure as Data with Ansible for easier Continuous Delivery
Infrastructure as Data with Ansible for easier Continuous DeliveryCarlo Bonamico
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with AnsibleCarlo Bonamico
 
Is my Web Application secure? OWASP Top Ten Security Risks and Beyond...
Is my Web Application secure? OWASP Top Ten Security Risks and Beyond...Is my Web Application secure? OWASP Top Ten Security Risks and Beyond...
Is my Web Application secure? OWASP Top Ten Security Risks and Beyond...Carlo Bonamico
 
Maven 2 in the real world
Maven 2 in the real worldMaven 2 in the real world
Maven 2 in the real worldCarlo Bonamico
 
Nasa World Wind For Java (by Fabrizio Giudici)
Nasa World Wind For Java (by Fabrizio Giudici)Nasa World Wind For Java (by Fabrizio Giudici)
Nasa World Wind For Java (by Fabrizio Giudici)Carlo Bonamico
 
Continuous Integration With Hudson (and Jenkins)
Continuous Integration With Hudson (and Jenkins)Continuous Integration With Hudson (and Jenkins)
Continuous Integration With Hudson (and Jenkins)Carlo Bonamico
 

Más de Carlo Bonamico (11)

Build Your Own Angular Component Library
Build Your Own Angular Component LibraryBuild Your Own Angular Component Library
Build Your Own Angular Component Library
 
Angular Rebooted: Components Everywhere
Angular Rebooted: Components EverywhereAngular Rebooted: Components Everywhere
Angular Rebooted: Components Everywhere
 
Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVC
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Infrastructure as Data with Ansible for easier Continuous Delivery
Infrastructure as Data with Ansible for easier Continuous DeliveryInfrastructure as Data with Ansible for easier Continuous Delivery
Infrastructure as Data with Ansible for easier Continuous Delivery
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with Ansible
 
Is my Web Application secure? OWASP Top Ten Security Risks and Beyond...
Is my Web Application secure? OWASP Top Ten Security Risks and Beyond...Is my Web Application secure? OWASP Top Ten Security Risks and Beyond...
Is my Web Application secure? OWASP Top Ten Security Risks and Beyond...
 
Maven 2 in the real world
Maven 2 in the real worldMaven 2 in the real world
Maven 2 in the real world
 
Nasa World Wind For Java (by Fabrizio Giudici)
Nasa World Wind For Java (by Fabrizio Giudici)Nasa World Wind For Java (by Fabrizio Giudici)
Nasa World Wind For Java (by Fabrizio Giudici)
 
Continuous Integration With Hudson (and Jenkins)
Continuous Integration With Hudson (and Jenkins)Continuous Integration With Hudson (and Jenkins)
Continuous Integration With Hudson (and Jenkins)
 
Build Automation Tips
Build Automation TipsBuild Automation Tips
Build Automation Tips
 

Último

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Último (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013