SlideShare a Scribd company logo
 
Who Jesse Warden Flex & Flash Consultant Career: Director, Flash, Flex Education: Art, Self-Taught Coder
Robotlegs/Gaia Gaia Robotlegs Using Them Together + = Hot Dog!
Why? Flash Sites: Scaleable Mess Flex Sites: Re-invent the wheel ...Badly.
 
Gaia Framework & Toolset for Building Flash Websites Inspired by Ruby on Rails
Gaia Inventor Steven Sacks Gaia Inventor stevensacks.net Twittah: stevensacks
Industry Tools SWFObject SWFAddress TweenLite Thunderbolt
Example Sites Client Sites Mercedes, Disney, Rolling Rock, Honda, Burn After Reading, Keith Urban, Dermalogica, Absolut, Star Trek Movie, Electronic Arts: Tiberium, NIP/Tuck, 180 Energy Drink
Site XML <site title=&quot;Gaia Scaffold Site&quot;> <page id=&quot;index&quot; src=&quot;index.swf&quot;> <page id=&quot;nav&quot; src=&quot;nav.swf&quot;> <page id=&quot;home&quot; src=&quot;home.swf&quot; title=&quot;Home&quot;> <asset id=”music” src=”rock.mp3”/> </page> </page> </page></site> </page> </page> </page></site>
Scaffolding
Gaia’s API goto();
Transitions transitionIn(); transitionOut(); transitioninComplete(); transitionOutComplete();
Flows Normal Preload Reverse Cross
Depth
Assets
Preloading multiple Files, Byte Accuracy Override Runtime API Pre-loaders for Pages Pre-loaders for Assets
Other Features SEO Scaffolding (yes, it works) DEEPlinking API on top of SWFAddress Bindings support in Site.xml
Gaia Bread and Butter
Robotlegs MVCS Framework ActionScript 3
Robotlegs Pure AS3 = Yes Flex = Yes AIR = Yes Flash = Yes (CS4/CS5)
Robotlegs Shaun Smith Robotlegs Inventor Shaun.boyblack.co.za Twittah: darscan
Robotlegs Comes with a Reference Implementation (MVCS) Robert Penner’s “Signals” Elad Elrom’s “Passive View Example” AsyncCommand
Dependency INjection The New “ New ” All you need to know:  [Inject] SWiftSuspenders SmartyPants  IoC GUICE : A Different  Java Spring
Dependency Injection Solves PureMVC’s Casting Problem var myView: viewObject as MainView; var proxy:MyProxy = facade.retreiveProxy(MyProxy.NAME) as MyProxy; Easier to code to Interfaces
DI Example private var proxy:MyProxy; var proxy:MyProxy = facade.retreiveProxy(MyProxy.NAME) as MyProxy; trace(proxy.myVO); --------------------------- [Inject] public var model:MyModel trace(model.myVO);
 
Events Communications Through Events
Event Gotchas Tons Sub-Systems More Events > More properties
 
View GUI Form Chart Video Player List of Images
Dumb View Dumb 2 things Accept Data Dispatch User Gestures
 
ValueObject HOld “Value” 2nd Most Valuable Class Strongly Typed Can Differ From Server to help GUI
VO Gotchas To Build yerself... ...or have a Factory do it constructor Params foil Serialization Use Optional Values if you must It changes, affects Entire App
Robotlegs Context Mediator Services Model Command Actor (Base Class)
 
Context Initialize Framework Event Bus Multiple Contexts for Modular Development
Actor Base Class for Model and Service Has Context Injected Base Class to communicate to the Framework
 
Mediator Mediator Pattern View Communicate w/ Framework 1 View per Mediator Keeps Framework out Not all views need Mediators
 
Service Retrieve and/or Send Data Remote and/or Local Services Parse Data to VO’s Dispatch Success or Failure Don’t Listen to Framework Events Great Unit Test Candidates
Service Practices Doesn’t Store Data Dispatch Event, has Data in It Extend Actor Store’s Data Dispatch Event, NO Data in It Extend EventDispatcher
Service Gotcha’s Foreign Data FActories : #1 Source of Bugs Compiler Doesn’t Help you Manual Timeouts Explode Early
 
Model(s) Observer Pattern Stores Global Data Usually Wraps a VO Doesn’t Listen for Framework Events Dispatches Data Changes Persists Extends Actor
Model(s) Re-Factor to: Data needs to persist 1> Mediator/Command Use Data
 
Command Command Pattern Controller Work DRY Re-Factor To Doesn’t Listen to Framework Events
Command Example Login Form Update Profile Edit Server Data
User Gestures Command’s are Usually User Gestures Login, Logout, SaveUser AddTag Save
Command Pro’s DRY Centralized Logic Data Problem = 2 places to look Service Command Not Hunting Through Mediators RAD (Rapid Application Development)
COmmand Con’s Code Bloat Early in Project Handling Context Sensitive Data? ...2 Commands 20 User Gestures = 40 Commands Commands for Everything
 
AsyncCommand Asynchronous Command Why? Java/C/C++ Devs Invented Command Pattern Blocking Language Executes Server Request and Code pauses
AsyncCommand ActionScript is not Blocking It is Asynchronous Sometimes things need to wait To wait, they need context To have context, they need to exist Commands die immediately
AsyncCommand AsyncCommand’s do not Block You Control when they die You can handle Server responses with Context React & Respond w/ Less code fork to call other Commands
Gaia + Robotlegs Gaia builds yer Site Robotlegs Handles: Business Logic Application Logic +
Why? Agency Shields from Ever Changing client Visuals View Changes, App/Biz Logic Doesn’t Dev Don’t Break Gaia’s modules RAD & Scaleable
How? Export SWC “Magic Checkbox”
Step by Step Setup Gaia Project Register Context in Main.as Page or child View implement Interface Register Interface for Mediator
Rules n’ Gotchas Interface for Bridge Pattern Gaia Pages use Bridge Pattern Not all Gaia Pages need a Mediator
Conclusions Gaia is the Foundation for Site Robotlegs Handles Biz & App Logic Together, they Build a Scaleable & Flexible Site
Questions? Jesse Warden Twittah: jesterxl jessewarden.com

More Related Content

PPTX
An introduction to PhantomJS: A headless browser for automation test.
PDF
Philip Shurpik "Architecting React Native app"
PDF
Building your next big thing on Liferay DXP
PDF
Usability in the GeoWeb
PDF
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
PDF
Angular 2 : learn TypeScript already with Angular 1
PDF
Huge web apps web expo 2013
PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
An introduction to PhantomJS: A headless browser for automation test.
Philip Shurpik "Architecting React Native app"
Building your next big thing on Liferay DXP
Usability in the GeoWeb
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Angular 2 : learn TypeScript already with Angular 1
Huge web apps web expo 2013
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016

What's hot (20)

PDF
Multi modularized project setup with gulp, typescript and angular.js
PDF
Angularjs practical project experiences with javascript development in a bank
PPT
GWT
PDF
Building Mobile Friendly APIs in Rails
PDF
How to make Ajax work for you
PDF
Григорий Шехет "Treasure hunt in the land of Reactive frameworks"
PDF
ForwardJS 2017 - Fullstack end-to-end Test Automation with node.js
PDF
Роман Лютиков "Web Apps Performance & JavaScript Compilers"
KEY
Introduction to ASP.NET MVC
PDF
Chrome enchanted 2015
PDF
Testing Web Applications
PDF
The Road to Native Web Components
PDF
Vaadin & Web Components
PDF
A Story about AngularJS modularization development
PPT
Future ASP.NET features for UID / HTML developers
PDF
Have You Seen Spring Lately?
PPSX
Building fast and performant apps
PDF
Jsfandsecurity
PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
PDF
Myfacesplanet
Multi modularized project setup with gulp, typescript and angular.js
Angularjs practical project experiences with javascript development in a bank
GWT
Building Mobile Friendly APIs in Rails
How to make Ajax work for you
Григорий Шехет "Treasure hunt in the land of Reactive frameworks"
ForwardJS 2017 - Fullstack end-to-end Test Automation with node.js
Роман Лютиков "Web Apps Performance & JavaScript Compilers"
Introduction to ASP.NET MVC
Chrome enchanted 2015
Testing Web Applications
The Road to Native Web Components
Vaadin & Web Components
A Story about AngularJS modularization development
Future ASP.NET features for UID / HTML developers
Have You Seen Spring Lately?
Building fast and performant apps
Jsfandsecurity
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Myfacesplanet
Ad

Similar to Robotlegs on Top of Gaia (20)

PPT
Silverlight 2 for Developers - TechEd New Zealand 2008
PDF
Google App Engine for Java v0.0.2
PPTX
HTML5 for Rich User Experience
ODP
Apache Deltacloud (Linuxcon 2010)
PPTX
Mike Taulty MIX10 Silverlight Frameworks and Patterns
PDF
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
PPT
MTaulty_DevWeek_Silverlight
PDF
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
PDF
LA RubyConf 2009 Waves And Resource-Oriented Architecture
ODP
Moving from Web 1.0 to Web 2.0
PDF
Analyzing the Performance of Mobile Web
PDF
IPhone Web Development With Grails from CodeMash 2009
PPT
.NET Debugging Tips and Techniques
PPT
.Net Debugging Techniques
PPTX
DODN2009 - Jump Start Silverlight
PDF
qooxdoo - Open Source Ajax Framework
PPT
Rhodes Overview
PPTX
Windows Phone 7 and Silverlight
PPTX
Architecture in Ajax Applications
PPT
Cloud State of the Union for Java Developers
Silverlight 2 for Developers - TechEd New Zealand 2008
Google App Engine for Java v0.0.2
HTML5 for Rich User Experience
Apache Deltacloud (Linuxcon 2010)
Mike Taulty MIX10 Silverlight Frameworks and Patterns
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
MTaulty_DevWeek_Silverlight
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
LA RubyConf 2009 Waves And Resource-Oriented Architecture
Moving from Web 1.0 to Web 2.0
Analyzing the Performance of Mobile Web
IPhone Web Development With Grails from CodeMash 2009
.NET Debugging Tips and Techniques
.Net Debugging Techniques
DODN2009 - Jump Start Silverlight
qooxdoo - Open Source Ajax Framework
Rhodes Overview
Windows Phone 7 and Silverlight
Architecture in Ajax Applications
Cloud State of the Union for Java Developers
Ad

More from Jesse Warden (7)

PDF
System webpack-jspm
PDF
Angular 2 overview
PDF
Technical debt in space jesse warden - 100yss 2015
KEY
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
KEY
Refactoring RIA Unleashed 2011
KEY
Getting Complex Designs into Flex - FITC 2011
PDF
How to Launch a Small Software Product
System webpack-jspm
Angular 2 overview
Technical debt in space jesse warden - 100yss 2015
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Refactoring RIA Unleashed 2011
Getting Complex Designs into Flex - FITC 2011
How to Launch a Small Software Product

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Cloud computing and distributed systems.
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
A Presentation on Artificial Intelligence
PDF
Encapsulation theory and applications.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
Teaching material agriculture food technology
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
cuic standard and advanced reporting.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Cloud computing and distributed systems.
Review of recent advances in non-invasive hemoglobin estimation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
A Presentation on Artificial Intelligence
Encapsulation theory and applications.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Approach and Philosophy of On baking technology
Unlocking AI with Model Context Protocol (MCP)
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation_ Review paper, used for researhc scholars
Building Integrated photovoltaic BIPV_UPV.pdf
Teaching material agriculture food technology
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

Robotlegs on Top of Gaia