SlideShare a Scribd company logo
About	Me
• Technical	Leader	and	Agile	Coach
• Front-end	Developer	(test	first!)
• Mobile	Developer	(Hybrid	with	Cordova,	iOS,	Android)
• Technology	Enthusiast
• Mentor	@	Airpair.com
• GSD	guy
McGraw	Hill
Education
is	Hiring
http://www.mheducation.com/careers
What's	Next?
Scotch	Streaming
and	Scaling
11	Feb	2015
www.meetup.com/mobiletea
Agenda
• Using	ECMA	6	today
• ECMA	6	modules
• Variables	scoping	with	ECMA	6
• ECMA	6	new	core	features	(Array,	String,	Numbers,	etc.)
• Handling	data	with	Maps	and	Sets
• Destructuring	Arrays	and	Objects
• Handlign	external	data	using	Promises	and	Deferred
I	speak	Ecma	Script!
https://github.com/GiorgioNatili/es6
Sharpen	the
Weapons
Where	is	JavaScript?
Modular	JavaScript
• Self	contained	
• Avoid	global	scope	pollution	(global	scope	is	not	evil!)
• Keep	the	project	organized
• Improve	code	reusability
• Highly	testable	and	well	defined	API
Which	Options?
AMD
	
CommonJS
AMD	Module	(1/3)
Simple	return	object	as	a	collection	of	name/value	pairs
define({
				color:	"black",
				size:	"unisize"
});
AMD	(2/3)
Return	object	with	"privacy"	implementation
define(function	()	{
				
				//	Do	setup	work	here
				return	{
								color:	"black",
								size:	"unisize"
				}
});
AMD	(3/3)
Return	object	with	"privacy"	implementation	and	dependencies
management
define(["./inventory",	"./currencies"],	function(inventory,	currencies)	{
				
				var	code	=	"ye76hg";
				var	getPrice	=	function(){
						
						return	currencies.getPrice(code);		
								
				};
CommonJS	Module
(1/2)
Simple	plain	file	that	"exports"	features	using	the	"module"	variable
(client.js)
var	rest,	mime,	client;
rest	=	require('rest');
mime	=	require('rest/interceptor/mime');
CommonJS	Module
(1/2)
Simple	plain	file	that	"imports"	features
import	client	from	collections;
client.doStuff();
Who	wins?
idgaf	animated	GIF
AMD	to	CommonJS
define(function(require,	exports,	module)	{				
				
				//	Put	traditional	CommonJS	module	content	here
				exports.randomize	=	function(	input	){
								return	shuffler.shuffle(input);
				}
});
CommonJS	to	AMD
Convert	the	commonJS	format	to	a	browser	compatible	one	using
browserify
$	npm	install	-g	browserify
$	browserify	main.js	-o	bundle.js
ECMA6	Modules
• export,	functions	and	variables
export	function	area(radius)	{
		return	Math.PI	*	radius	*	radius;
}
	
export	PI	=	Math.PI;
• import,	modules
Advantages
• Compact,	synchronous	syntax
• Asynchronous	loading
• Conditional	module	inclusion
• Promote	code	modularization	
• API	style	development
Can	I	use	them
today?
Kinda	of...
wow	animated	GIF
Experimental
Environments
Local	Environment
• Install	NodeJS	using	brew
$	ruby	-e	"$(curl	-fsSL	https://raw.github.com/Homebrew/homebrew/go/install)"
$	brew	install	node
• Verify	that	npm	in	installed
$	npm
Dev
Environment	(opt	1)
• Install	yeoman	globally
$	npm	install	yo	-g
• Install	the	es6next	yeoman	generator
Dev	Environment
(opt	2)	
• Install	6to5	a	transpiler	able	to	produce	readable	ECMA5	code
ECMA6
$	npm	install	-g	6to5
Dev	Environment
(opt	3)
• Clone	a	boilerplate
$	git	clone	https://github.com/davidjnelson/es6-boilerplate.git
• Install	the	dependencies	
$	npm	install
Run	Your	First
Transpilation
excited	animated	GIF
Browsers	Support
Guess	IE?
internet	animated	GIF
New	Core	Features
The	Future	of
JavaScript
fight	animated	GIF
Object.assing
Copy	the	behavior	of	an	object	to	another	object	without	using
classes	or	prototypes	inheritance.	
var	worker	=	{};
var	canEat	=	{
		food:	'nothing',
		eat:	function()	{
				console.log(`eats	$this.food`);	//	template	string	(part	of	ES6)
		}
};
Object.is
Object	method	to	determine	whether	two	values	are	the	same	value
like	the	strict	equality	operator.	
Object.is("foo",	"foo");					//	true
Object.is(window,	window);			//	true
Object.is("foo",	"bar");					//	false
Object.is([],	[]);											//	false
var	test	=	{a:	1};
Object.is(test,	test);							//	true
__proto__	in	object
literals
Change	the	prototype	of	an	object	literal	
var	obj	=	{
			
				__proto__:	Array.prototype
				
};
String.prototype.cont
Search	for	a	string	contained	in	a	string	from	a	specific	position
(optional)	
var	str	=	"To	be	in	Boston	with	the	snow	is	cool.";
console.log(str.contains("To	be"));							//	true
console.log(str.contains("question"));				//	false
console.log(str.contains("Chicago"));					//	false
console.log(str.contains("To	be",	1));				//	false
String.prototype.start
Check	from	a	specific	index	(optional)	if	a	string	starts	with	a	specific
string	
var	str	=	"To	be	in	Miami	when	there	is	the	snow	in	Boston	is	better.";
console.log(str.startsWith("To	be"));					//	true
console.log(str.startsWith("To	be",	2));		//	false
String.prototype.repe
Repeat	and	concatenate	a	string	a	specific	amount	of	times.	
var	str	=	"ECMA	6	is	pretty	cool.";
console.log(str.repeat(2));					
//	ECMA	6	is	pretty	cool.ECMA	6	is	pretty	cool.
Array.prototype.from
Create	an	Array	from	an	array-like	object	or	an	iterable	object.		
var	test	=	(function	()	{
				var	args	=	Array.from(arguments);
				return	args;
}(1,	2,	3));																													
console.log(test);												//	[1,	2,	3]
Array.prototype.find
Return	the	first	occurrence	in	an	Array	that	satisfies	the	conditions
described	by	the	callback	argument.		
function	isPrime(element,	index,	array)	{
				
				var	start	=	2;
				while	(start	<=	Math.sqrt(element))	{
								if	(element	%	start++	<	1)	return	false;
				}
				
				return	(element	>	1);
}
Iterators
An	iterator	has	a	method	called	next,	this	method	returns	an	object
with	two	properties:	value	and	done.
var	it	=	['yo',	'ya',	'yes',	'now',	'then'].keys();
console.log(it.next().value,	it.next().done);
console.log(it.next().value,	it.next().done);
console.log(it.next().value,	it.next().done);
console.log(it.next().value,	it.next().done);	//	???
Array.prototype.keys
Returns	an	iterable	object	from	an	Array.		
var	sequence	=	[1,	4,	5,	8,	2,	6];
console.log(sequence.keys());					//	Iterator	{		}
An	iterable	object	has	a	next()	method	that	return	an	object	with	the
the	value	and	done	properties.
Array.prototype.entrie
Returns	a	new	Array	Iterator	object	that	contains	the	key/value	pairs
for	each	index	in	the	array		
var	arr	=	['a',	'b',	'c'];
var	eArr	=	arr.entries();
var	obj	=	eArr.next();
while(!obj.done){
		
		console.log(obj.value);
		obj	=	eArr.next();
Number	Constants
Useful	constants	to	determine	the	smallest	interval	between	two
numbers	and	the	minimum	and	maximum	safe	integers.
console.log(Number.EPSILON);	
console.log(Number.MAX_SAFE_INTEGER);	
console.log(Number.MIN_SAFE_INTEGER);
Number	(static)
Methods
Check	if	a	number	is	NaN,	infinite,	integer,	etc.		
var	num	=	456;
console.log(Number.isFinite(num));					//	true
console.log(Number.isInteger(num));				//	true
console.log(Number.isNaN(num));								//	false
for...of
Iterates	over	iterable	objects	(including	Array,	Map,	Set,	arguments
object	and	so	on)	ignoring	instance	and	prototype	properties
	
let	arr	=	[	3,	5,	7	];
arr.foo	=	"hello";
for	(var	i	in	arr)	{
			console.log(i);	
			//	"0",	"1",	"2",	"foo"
}
for	(var	i	of	arr)	{
Set	+	Map
A	Set	is	a	set	of	arbitrary	values,	a	Map	is	a	key/value	pairs	based
object;	a	Set	doesn’t	allow	duplicates		
//	Sets
var	s	=	new	Set();
s.add("hello").add("goodbye").add("hello");
console.log(s.size);													//	2
console.log(s.has("hello"));					//	true
console.dir(s);	//	add(),	clear(),	delete(),	entries(),	values(),	forEach(),	etc.
//	Maps
Proxy
Proxies	enable	creation	of	objects	with	the	full	range	of	behaviors
available	to	host	objects	
var	target	=	{age:	1};
var	handler	=	{
		get:	function	(receiver,	name)	{
				console.log(receiver)
				return	`Hello,	${name}!`;
		}
};
var	p	=	new	Proxy(target,	handler);
Template	Strings
Template	strings	are	defined	using	backticks	`,	inside,	you	can	use	a
dollar	sign	with	brackets	to	insert	executable	code	or	variables.
	
var	name	=	'Giorgio',	surname	=	'Natili';
var	template	=	`Hello!	My	name	is	${name}	${surname}!`;
	
console.log(template);	
//	Hello!	My	name	is	Giorgio	Natili!
Generators
Generators	are	functions	that	can	be	exited	and	then	re-entered,
each	call	to	the	next()	method	will	run	the	body	of	the	function.		
function*	idGenerator(){
				var	index	=	0,
								val	=	'';
				while(true){
									index++;
									yield	val	=	'UID'	+	index;
				}	
}
Variables	Scoping
Finally	the	let	keyword	allow	us	to	create	scopes	variable.
for(let	i	=	0;	i	<	10;	i++){
		console.log(i);
}
console.log(i);					//	i	is	not	defined
if(true){
		(function(){
				var	scoped	=	'test';
		})();
		console.log(scoped);				//	scoped	is	not	defined
Destructuring
It	refers	to	a	kind	of	assignment	that	allows	you	to	assign	the
properties	of	an	array	or	object	to	variables		to	effectively
match	values	to	variables	or	properties.
var	[x,	y,	z]	=	[1,	2,	3];
//	is	equivalent	to...
var	x	=	1,	y	=	2,	z	=	3;
let	[x,	y]	=	[1,	2];
console.log(x,	y);	//	1,	2
[x,	y]	=	[y,	x];	//	Swap	the	values	of	x	and	y
Spreads	Operators
Rest	parameters	allow	to	clearly	define	functions	that	accept	a
variable	number	of	arguments,	the	...	constructor	is	used	to	provide
spreads	to	arrays.
function	logEach(...things)	{
				things.forEach(function	(thing)	{
								console.log(thing);	//	"a"	"b"	"c"
				});
}
logEach("a",	"b",	"c");
function	example(a,	b,	c)	{
Loading	External
Data
Promises
the	simpsons	animated	GIF
What	is	a	Promise
• I	want	you	to	burn	this	phrase	in	your	mind:	A	promise	is	an
asynchronous	value
• The	Promise	object	is	used	for	deferred	and	asynchronous
computations
• A	Promise	is	a	placeholder	for	a	future	possible	value
Promises	in	Action
At	their	most	basic,	promises	are	a	bit	like	event	listeners	except:
var	promise	=	new	Promise(function(resolve,	reject)	{
		//	do	a	thing,	possibly	async,	then…
		if	(/*	everything	turned	out	fine	*/)	{
• A	promise	can	only	succeed	or	fail	once
• If	a	promise	has	succeeded	or	failed	and	you	later	add	a
success/failure	callback,	the	correct	callback	will	be	called,	even
though	the	event	took	place	earlier
Using	a	Promise
A	promise	can	be	used	by	invoking	the	then()	method,	it	accepts	a
success	and	a	failure	handler	as	arguments.
var	promise	=	Promise.resolve($.ajax('/whatever.json'));
promise.then(function(result)	{
		console.log(result);	//	"Stuff	worked!"
},	function(err)	{
		console.log(err);	//	Error:	"It	broke"
});
Promises
Implementations
• Q	https://github.com/kriskowal/q
• YUI	http://yuilibrary.com/yui/docs/promise/
• es6-promise	https://github.com/jakearchibald/es6-promise
• JQuery	http://api.jquery.com/promise/
• Angular	https://docs.angularjs.org/api/ng/service/$q
• RSVP	(ember)	https://github.com/tildeio/rsvp.js/
Resources
Links
• https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Language_Resources
• https://developer.mozilla.org/en-
US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla
• https://github.com/google/traceur-compiler
• https://github.com/jmcriffey/grunt-traceur-compiler
• http://pointedears.de/scripts/test/es-matrix/
• http://kangax.github.io/compat-table/es6
• https://people.mozilla.org/~jorendorff/es6-draft.html
@giorgionatili
#mobiletea	#javascript	#swift	#wearable	#agile	#android	#tdd
Thanks!
Grazie!	Graçias!	Danke!	Merci!	 !	
sky	animated	GIF

More Related Content

Similar to Ecma6 in 30 minutes

Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
IT Arena
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
Tugdual Grall
 
CISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecurityCISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development Security
Sam Bowne
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
Sam Bowne
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
Sam Bowne
 
Best practices for structuring Machine Learning code
Best practices for structuring Machine Learning codeBest practices for structuring Machine Learning code
Best practices for structuring Machine Learning code
Erlangen Artificial Intelligence & Machine Learning Meetup
 
01 introduction to oop and java
01 introduction to oop and java01 introduction to oop and java
01 introduction to oop and java
রাকিন রাকিন
 
Student Industrial Training Presentation Slide
Student Industrial Training Presentation SlideStudent Industrial Training Presentation Slide
Student Industrial Training Presentation Slide
Khairul Filhan
 
Clojure in real life 17.10.2014
Clojure in real life 17.10.2014Clojure in real life 17.10.2014
Clojure in real life 17.10.2014
Metosin Oy
 
mitra_resume-2
mitra_resume-2mitra_resume-2
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfAstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
FarHanWasif1
 
Why clojure(script) matters
Why clojure(script) mattersWhy clojure(script) matters
Why clojure(script) matters
Claudiu Apetrei
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
Antonio García-Domínguez
 
Getting Started with Java (TCF 2014)
Getting Started with Java (TCF 2014)Getting Started with Java (TCF 2014)
Getting Started with Java (TCF 2014)
Michael Redlich
 
Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019
PhuocNT (Fresher.VN)
 
What would Jesus Developer do?
What would Jesus Developer do?What would Jesus Developer do?
What would Jesus Developer do?
Lukáš Čech
 
DemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionDemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - Introdcution
Ákos Horváth
 
JS - The Unknown Basics.pptx
JS - The Unknown Basics.pptxJS - The Unknown Basics.pptx
JS - The Unknown Basics.pptx
ParveenSoni21
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN StackBuilding Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN Stack
Suresh Patidar
 
Skillshare - From Noob to Tech CEO - nov 7th, 2011
Skillshare - From Noob to Tech CEO - nov 7th, 2011Skillshare - From Noob to Tech CEO - nov 7th, 2011
Skillshare - From Noob to Tech CEO - nov 7th, 2011
Kareem Amin
 

Similar to Ecma6 in 30 minutes (20)

Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
 
CISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecurityCISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development Security
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
 
Best practices for structuring Machine Learning code
Best practices for structuring Machine Learning codeBest practices for structuring Machine Learning code
Best practices for structuring Machine Learning code
 
01 introduction to oop and java
01 introduction to oop and java01 introduction to oop and java
01 introduction to oop and java
 
Student Industrial Training Presentation Slide
Student Industrial Training Presentation SlideStudent Industrial Training Presentation Slide
Student Industrial Training Presentation Slide
 
Clojure in real life 17.10.2014
Clojure in real life 17.10.2014Clojure in real life 17.10.2014
Clojure in real life 17.10.2014
 
mitra_resume-2
mitra_resume-2mitra_resume-2
mitra_resume-2
 
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfAstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
 
Why clojure(script) matters
Why clojure(script) mattersWhy clojure(script) matters
Why clojure(script) matters
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
Getting Started with Java (TCF 2014)
Getting Started with Java (TCF 2014)Getting Started with Java (TCF 2014)
Getting Started with Java (TCF 2014)
 
Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019
 
What would Jesus Developer do?
What would Jesus Developer do?What would Jesus Developer do?
What would Jesus Developer do?
 
DemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionDemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - Introdcution
 
JS - The Unknown Basics.pptx
JS - The Unknown Basics.pptxJS - The Unknown Basics.pptx
JS - The Unknown Basics.pptx
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN StackBuilding Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN Stack
 
Skillshare - From Noob to Tech CEO - nov 7th, 2011
Skillshare - From Noob to Tech CEO - nov 7th, 2011Skillshare - From Noob to Tech CEO - nov 7th, 2011
Skillshare - From Noob to Tech CEO - nov 7th, 2011
 

More from Giorgio Natili

Driving Assistant Solutions with Android
Driving Assistant Solutions with AndroidDriving Assistant Solutions with Android
Driving Assistant Solutions with Android
Giorgio Natili
 
Isomorphic Reactive Programming
Isomorphic Reactive ProgrammingIsomorphic Reactive Programming
Isomorphic Reactive Programming
Giorgio Natili
 
The Little Shop of TDD Horrors
The Little Shop of TDD HorrorsThe Little Shop of TDD Horrors
The Little Shop of TDD Horrors
Giorgio Natili
 
I beacon mobile_tea
I beacon mobile_teaI beacon mobile_tea
I beacon mobile_tea
Giorgio Natili
 
Android, getting started
Android, getting startedAndroid, getting started
Android, getting started
Giorgio Natili
 
Clear the UIViewController Mess
Clear the UIViewController MessClear the UIViewController Mess
Clear the UIViewController Mess
Giorgio Natili
 
Big data and mobile
Big data and mobileBig data and mobile
Big data and mobile
Giorgio Natili
 
Jasmine 2.0
Jasmine 2.0Jasmine 2.0
Jasmine 2.0
Giorgio Natili
 
Harmonik
HarmonikHarmonik
Harmonik
Giorgio Natili
 
WebRTC communication and wearable devices
WebRTC communication and wearable devicesWebRTC communication and wearable devices
WebRTC communication and wearable devices
Giorgio Natili
 
Multithreading development with workers
Multithreading development with workersMultithreading development with workers
Multithreading development with workers
Giorgio Natili
 
TDD and PhoneGap
TDD and PhoneGapTDD and PhoneGap
TDD and PhoneGap
Giorgio Natili
 
Test first!
Test first!Test first!
Test first!
Giorgio Natili
 
WebRTC and Mobile Integration
WebRTC and Mobile IntegrationWebRTC and Mobile Integration
WebRTC and Mobile Integration
Giorgio Natili
 
Develop, test and debug cross platforms apps with PhoneGap
Develop, test and debug cross platforms apps with PhoneGapDevelop, test and debug cross platforms apps with PhoneGap
Develop, test and debug cross platforms apps with PhoneGap
Giorgio Natili
 
Test first
Test firstTest first
Test first
Giorgio Natili
 
Mobile benchmarking-and-profiling
Mobile benchmarking-and-profilingMobile benchmarking-and-profiling
Mobile benchmarking-and-profiling
Giorgio Natili
 

More from Giorgio Natili (18)

Driving Assistant Solutions with Android
Driving Assistant Solutions with AndroidDriving Assistant Solutions with Android
Driving Assistant Solutions with Android
 
Isomorphic Reactive Programming
Isomorphic Reactive ProgrammingIsomorphic Reactive Programming
Isomorphic Reactive Programming
 
The Little Shop of TDD Horrors
The Little Shop of TDD HorrorsThe Little Shop of TDD Horrors
The Little Shop of TDD Horrors
 
I beacon mobile_tea
I beacon mobile_teaI beacon mobile_tea
I beacon mobile_tea
 
Android, getting started
Android, getting startedAndroid, getting started
Android, getting started
 
Clear the UIViewController Mess
Clear the UIViewController MessClear the UIViewController Mess
Clear the UIViewController Mess
 
Big data and mobile
Big data and mobileBig data and mobile
Big data and mobile
 
Jasmine 2.0
Jasmine 2.0Jasmine 2.0
Jasmine 2.0
 
Harmonik
HarmonikHarmonik
Harmonik
 
Mobile raspberry pi
Mobile raspberry piMobile raspberry pi
Mobile raspberry pi
 
WebRTC communication and wearable devices
WebRTC communication and wearable devicesWebRTC communication and wearable devices
WebRTC communication and wearable devices
 
Multithreading development with workers
Multithreading development with workersMultithreading development with workers
Multithreading development with workers
 
TDD and PhoneGap
TDD and PhoneGapTDD and PhoneGap
TDD and PhoneGap
 
Test first!
Test first!Test first!
Test first!
 
WebRTC and Mobile Integration
WebRTC and Mobile IntegrationWebRTC and Mobile Integration
WebRTC and Mobile Integration
 
Develop, test and debug cross platforms apps with PhoneGap
Develop, test and debug cross platforms apps with PhoneGapDevelop, test and debug cross platforms apps with PhoneGap
Develop, test and debug cross platforms apps with PhoneGap
 
Test first
Test firstTest first
Test first
 
Mobile benchmarking-and-profiling
Mobile benchmarking-and-profilingMobile benchmarking-and-profiling
Mobile benchmarking-and-profiling
 

Recently uploaded

GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 

Recently uploaded (20)

GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 

Ecma6 in 30 minutes