A Short Tour of Infusion

A Short Tour of Infusion

You Can't Bottle Design

  • Context is everything!

  • Our designs should invite new designs

  • We can't get away with shipping one specific design and assume we're done

  • How can we support people in making the right choices for their particular context?

  • The technology needs to help us...

Infusion the Product

Infusion At The High Level

  • It's functional

  • Declarative: less code

  • No black boxes: open for extension

  • Markup is free

Low-level Technical Goals

  • Promote web standards (HTML, CSS, etc) as a commodity for building UIs

  • DOM agnosticism

  • Encapsulate better JavaScript practices

  • Streamline use of productive techniques & minimise the effect of destructive techniques

  • Promote the use of transparent models

Components in Action

Components

Component Families

Infusion's Framework

  • A life cycle for components

  • A way to configure & wire up components

  • Separation of presentation from logic

  • A way to change markup and appearance

Value of the Framework

  • Helps you write UIs faster and more flexibly

  • Allows you to rework designs for each new context

  • The framework is a design enabler

Where does Infusion Fit?

  • We recognize that we're not the only one in the browser: we play nice with other toolkits.

  • We don't want to force adopters down a one-way technology street

Goals and Features

Change markup without breaking code

DOM Binder

Customize components

Declarative options

Inject custom behaviour into components

Events, Subcomponents

Decouple presentation from model logic

Views

Easily testable

Events, Views, Subcomponents

Make accessibility easier

jquery.keyboard-a11y, ui.core

Stable and secure JavaScript objects

that-ism

Open, transparent, extensible architecture

ChangeApplier, Events

that-ism

JavaScript Pitfalls

  • Lack of namespacing and privacy

  • Confusing variability of this

  • Security and stability issues: prototype

  • No ability to link against multiple versions