90
Let me introduce you to the YUI App Framework Alain Horner, 02. 06. 2012

YUI App Framework

Embed Size (px)

DESCRIPTION

This talk was given at SwissJeese. Content:Front-end heavy applications grow more and more complex. As frontend developers we need strategies to overcome those complexities.In this talk we'll see, how the YUI3 App Framework assists us in doing so: It helps us writing structured and thus maintainable code. Of course we will also have a look at the drawbacks of the framework and when you should not use it.

Citation preview

Page 1: YUI App Framework

Let me introduce you to the

YUI App Framework

Alain Horner, 02. 06. 2012

Page 2: YUI App Framework

A few words about myself...

● Alain Horner● Alain, web developer at Liip● Alain, student at ZHAW● Alain, who?

● Github: https://github.com/elHornair● Twitter: https://twitter.com/#!/elHornair

Page 3: YUI App Framework

Intro

Page 4: YUI App Framework

YUI3

● Fast● Modular Architecture / Dependency Management● Component Infrastructure● Event System● DOM Interaction, Ajax, Many Widgets● Great Documentation

Page 5: YUI App Framework

The YUI App Framework...

... is based on YUI3

... is Open Source

... is developed by Yahoo! and the YUI community

... is inspired by Backbone.js

Page 6: YUI App Framework

The YUI App Framework...

... is based on YUI3

... is Open Source

... is developed by Yahoo! and the YUI community

... is inspired by Backbone.js

... is a framework

Page 7: YUI App Framework
Page 8: YUI App Framework

Frameworkvs. Library

Page 9: YUI App Framework

What is a framework?

● „A basic conceptional structure“● „Used to implement the standard structure of an

application for a specific environment“● „A structural plan or basis of a project“

Page 10: YUI App Framework

What is a library?

● „A collection of routines that a program can use“● „Available for common use within a certain

environment“

Page 11: YUI App Framework

Definition by Alain who?

● A library does stuff for you● Stuff: Select a DOM node

● A framework tells you how to do stuff● Stuff: Build a web application

Page 12: YUI App Framework

The YUI App Framework...

... is open sourced

... is developed by Yahoo! and the YUI community

... is based on YUI3

... is inspired by Backbone.js

... is a framework

... gives you a basic structure for frontend heavy web applications

Page 13: YUI App Framework

MVC

Page 14: YUI App Framework

MVC

● Separation of Concerns● YUI App Framework is „MVC'ish“

Page 15: YUI App Framework

Demo Project

Page 16: YUI App Framework
Page 17: YUI App Framework

Model

Page 18: YUI App Framework

Model

● Data● Attributes / Observation● Business logic● Data syncing

● load() / save()● Custom sync layer

Page 19: YUI App Framework
Page 20: YUI App Framework
Page 21: YUI App Framework
Page 22: YUI App Framework
Page 23: YUI App Framework
Page 24: YUI App Framework

Creating a Model Instance

Page 25: YUI App Framework
Page 26: YUI App Framework
Page 27: YUI App Framework

Model List

● Collection of Model Instances● n:n● Assistant● Event Bubbling● Data Syncing

Page 28: YUI App Framework
Page 29: YUI App Framework
Page 30: YUI App Framework
Page 31: YUI App Framework
Page 32: YUI App Framework
Page 33: YUI App Framework
Page 34: YUI App Framework
Page 35: YUI App Framework
Page 36: YUI App Framework
Page 37: YUI App Framework
Page 38: YUI App Framework
Page 39: YUI App Framework
Page 40: YUI App Framework

Creating a Model List Instance

Page 41: YUI App Framework
Page 42: YUI App Framework
Page 43: YUI App Framework
Page 44: YUI App Framework

View

Page 45: YUI App Framework

What is a View?

Page 46: YUI App Framework
Page 47: YUI App Framework
Page 48: YUI App Framework
Page 49: YUI App Framework
Page 50: YUI App Framework
Page 51: YUI App Framework

View

● Visible piece of application● Renderable

● Do it yourself● Just provides container

● Templating● Events● Models / Model Lists

Page 52: YUI App Framework
Page 53: YUI App Framework
Page 54: YUI App Framework
Page 55: YUI App Framework
Page 56: YUI App Framework
Page 57: YUI App Framework
Page 58: YUI App Framework
Page 59: YUI App Framework
Page 60: YUI App Framework

Controller

Page 61: YUI App Framework

Controller

Router

Page 62: YUI App Framework

Router

● Not only controlling● URL & Callback => View● Manages history

● HTML5 pushState / popState● Graceful degradation

Page 63: YUI App Framework
Page 64: YUI App Framework
Page 65: YUI App Framework
Page 66: YUI App Framework
Page 67: YUI App Framework
Page 68: YUI App Framework

Y.App

Page 69: YUI App Framework

Y.App

● Puts it all together● Routes● Views as pages

● Relationships● Transitions● Pjax!

● pushState & Ajax

Page 70: YUI App Framework
Page 71: YUI App Framework
Page 72: YUI App Framework
Page 73: YUI App Framework
Page 74: YUI App Framework
Page 75: YUI App Framework
Page 76: YUI App Framework
Page 77: YUI App Framework
Page 78: YUI App Framework
Page 79: YUI App Framework
Page 80: YUI App Framework
Page 81: YUI App Framework
Page 82: YUI App Framework
Page 83: YUI App Framework

Ups & Downs

Page 84: YUI App Framework

Up

● Solid foundation● Quick start● Extendable● Standard stuff is done for you● GREAT documentation

Page 85: YUI App Framework

Down

● Learning Curve (YUI3)● Defines Structure

Page 86: YUI App Framework

Outro

Page 87: YUI App Framework

Summary

● Basic structure for frontend heavy web applications● MVC'ish● Configurable but reasonable defaults● Few lines of code

Page 88: YUI App Framework

Where to go from here...

● http://github.com/elHornair/CheeseApp● http://yuilibrary.com/yui/docs/app● https://github.com/ericf/photosnear.me

Page 89: YUI App Framework
Page 90: YUI App Framework

So Long, and Thanks for All the Cheese