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
Includes:
Great, reusable components
A framework to help you build your own UIs
Usability and accessibility baked in from the start
Unprecedented level of customizability
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
Components provide many variations on an activity: flavours of Inline Editing, Reorderering, etc.
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 | |
Customize components | |
Inject custom behaviour into components | |
Decouple presentation from model logic | |
Easily testable | |
Make accessibility easier | |
Stable and secure JavaScript objects | |
Open, transparent, extensible architecture |
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