Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
getting started with YUI3 and AlloyUI Mainz, 2013.
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
how some back-end devs see themselves
Slide 5
Slide 5 text
how some back-end devs see front-end devs
Slide 6
Slide 6 text
“CSS is very easy”
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
“javascript is ugly and full of bugs”
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
EcmaScript 6 is coming
Slide 13
Slide 13 text
front-end is changing
Slide 14
Slide 14 text
extremejs.com
Slide 15
Slide 15 text
github.com/languages
Slide 16
Slide 16 text
there are three types of people
Slide 17
Slide 17 text
1. those who compile javascript
Slide 18
Slide 18 text
developers.google.com/web-toolkit
Slide 19
Slide 19 text
2. those who doesn’t compile
Slide 20
Slide 20 text
developers.google.com/closure/library
Slide 21
Slide 21 text
3. java == javascript
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
twitter.com/joelambert/status/327047616326152193
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
today we’re going to talk about server-agnostic JS frameworks
Slide 27
Slide 27 text
Events, Selection, DOM Manipulation, Animation, Ajax requests jquery.com
Slide 28
Slide 28 text
mootools.net
Slide 29
Slide 29 text
UI components twitter.github.io/bootstrap
Slide 30
Slide 30 text
jqueryui.com
Slide 31
Slide 31 text
Templates mustache.github.io
Slide 32
Slide 32 text
handlebarsjs.com
Slide 33
Slide 33 text
Module loader requirejs.org
Slide 34
Slide 34 text
headjs.com
Slide 35
Slide 35 text
MV* backbonejs.org
Slide 36
Slide 36 text
knockoutjs.com
Slide 37
Slide 37 text
angularjs.org
Slide 38
Slide 38 text
emberjs.com
Slide 39
Slide 39 text
Tests BDD TDD pivotal.github.io/jasmine
Slide 40
Slide 40 text
qunitjs.com
Slide 41
Slide 41 text
No content
Slide 42
Slide 42 text
yuilibrary.com
Slide 43
Slide 43 text
yuilibrary.com/projects/yuitest
Slide 44
Slide 44 text
yui.github.io/yuicompressor
Slide 45
Slide 45 text
yui.github.io/yuidoc
Slide 46
Slide 46 text
yui.github.io/yogi
Slide 47
Slide 47 text
YUI3 modules
Slide 48
Slide 48 text
YUI = effects DOM ajax events ... MVC
Slide 49
Slide 49 text
YUI = effects DOM ajax events ... MVC
Slide 50
Slide 50 text
YUI = effects DOM ajax events ... MVC
Slide 51
Slide 51 text
YUI = effects DOM ajax events ... MVC
Slide 52
Slide 52 text
YUI = effects DOM ajax events ... MVC
Slide 53
Slide 53 text
YUI = effects DOM ajax events ... MVC
Slide 54
Slide 54 text
YUI = effects DOM ajax events ... MVC
Slide 55
Slide 55 text
yuilibrary.com/yui/docs/guides
Slide 56
Slide 56 text
yuilibrary.com/yui/docs/dial/dial-interactive.html
Slide 57
Slide 57 text
yuilibrary.com/yui/docs/app/app-todo.html
Slide 58
Slide 58 text
yuilibrary.com/yui/docs/graphics/graphics-violin.html
Slide 59
Slide 59 text
YUI3 basics
Slide 60
Slide 60 text
$('.foo'); DOM traversal Y.all('.foo'); YUI3 jQuery
Slide 61
Slide 61 text
$('#foo').html('bar'); DOM manipulation Y.one('#foo').setHTML('bar'); YUI3 jQuery
Slide 62
Slide 62 text
$('#close-btn').on('click', function() { // do something }); events Y.one('#close-btn').on('click', function() { // do something }); YUI3 jQuery
Slide 63
Slide 63 text
$('#fade').animate({ opacity: 0, }, 5000); effects Y.one('#fade').transition({ duration: 1, opacity : 0 }); YUI3 jQuery
Slide 64
Slide 64 text
$.ajax({ url: "api.json", success: function(data) { // do something } }); ajax Y.io('api.json', { on: { success: function(data) { // do something } } }); YUI3 jQuery
Slide 65
Slide 65 text
alloyui.com/rosetta-stone
Slide 66
Slide 66 text
YUI3 loading
Slide 67
Slide 67 text
No content
Slide 68
Slide 68 text
“Optimize the front-end performance first, because 80/90% of the user response time is spent there.” - Steve Souders, Engineer at Google
Slide 69
Slide 69 text
without YUI...
Slide 70
Slide 70 text
... ...
Slide 71
Slide 71 text
performance-- maintainability--
Slide 72
Slide 72 text
blocks render
Slide 73
Slide 73 text
with YUI...
Slide 74
Slide 74 text
one
Slide 75
Slide 75 text
seed file
Slide 76
Slide 76 text
everything else asynchronous combo-loaded from CDN
Slide 77
Slide 77 text
sandbox YUI().use('module-name', function (Y) { // code goes here });
Slide 78
Slide 78 text
why asynchronous?
Slide 79
Slide 79 text
non-blocking http requests
Slide 80
Slide 80 text
why combo-loaded?
Slide 81
Slide 81 text
yuilibrary.com/yui/configurator
Slide 82
Slide 82 text
why load from a CDN?
Slide 83
Slide 83 text
geographically closer
Slide 84
Slide 84 text
YUI gallery
Slide 85
Slide 85 text
yuilibrary.com/gallery
Slide 86
Slide 86 text
your code on Yahoo’s CDN
Slide 87
Slide 87 text
github.com/yui/yui3-gallery
Slide 88
Slide 88 text
available to anyone
Slide 89
Slide 89 text
just use() YUI().use('gallery-audio', function (Y) { // code goes here });
Slide 90
Slide 90 text
mzl.la/OEbuQH
Slide 91
Slide 91 text
AlloyUI
Slide 92
Slide 92 text
@natecavanaugh
Slide 93
Slide 93 text
@eduardolundgren
Slide 94
Slide 94 text
created on 2009
Slide 95
Slide 95 text
alloyui.com
Slide 96
Slide 96 text
built on top of YUI3
Slide 97
Slide 97 text
AlloyUI = calendar tabs buttons carousel ... audio
Slide 98
Slide 98 text
AlloyUI = calendar tabs buttons carousel ... audio
Slide 99
Slide 99 text
AlloyUI = calendar tabs buttons carousel ... audio
Slide 100
Slide 100 text
AlloyUI = calendar tabs buttons carousel ... audio
Slide 101
Slide 101 text
AlloyUI = calendar tabs buttons carousel ... audio
Slide 102
Slide 102 text
AlloyUI = calendar tabs buttons carousel ... audio
Slide 103
Slide 103 text
AlloyUI = calendar tabs buttons carousel ... audio
Slide 104
Slide 104 text
what we wanted: char counter
Slide 105
Slide 105 text
#twitter-box #myTextarea #myCounter
Slide 106
Slide 106 text
#twitter-box #myTextarea #myCounter
Slide 107
Slide 107 text
#twitter-box #myTextarea #myCounter
Slide 108
Slide 108 text
#twitter-box #myTextarea #myCounter
Slide 109
Slide 109 text
alloyui.com/examples/char-counter/real-world
Slide 110
Slide 110 text
what we wanted: schedule
Slide 111
Slide 111 text
No content
Slide 112
Slide 112 text
alloyui.com/examples/scheduler
Slide 113
Slide 113 text
what we wanted: a better way to express ideas
Slide 114
Slide 114 text
* drag and drop UI * flexible API * support all browsers * no flash (HTML5)
Slide 115
Slide 115 text
alloyui.com/examples/diagram-builder
Slide 116
Slide 116 text
alloyui.com/api
Slide 117
Slide 117 text
but I’m a java guy!
Slide 118
Slide 118 text
\o/
Slide 119
Slide 119 text
taglibs Button
Slide 120
Slide 120 text
taglibs [8,50] Form Validation
Slide 121
Slide 121 text
the success of an application doesn’t depends on the technology itself... ...but how it is applied.
Slide 122
Slide 122 text
No content
Slide 123
Slide 123 text
No content
Slide 124
Slide 124 text
dank :)