SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
OpenFlux and Flex 4
                            By Ryan Campbell




Friday, May 15, 2009
About This Session
                       •   OpenFlux vs. Flex 4
                       •   Component / Model
                       •   Views
                       •   Controllers
                       •   Metadata
                       •   Layouts
                       •   Virtualization
                       •   Extending Components vs Adding Controllers
                       •   DataGrid Component
                       •   OpenFlux Independent of Flex

Friday, May 15, 2009
What is OpenFlux?



Friday, May 15, 2009
OpenFlux is:


                       • Lightweight MVC Component Framework
                       • Makes Custom Components Easier
                       • Works with Flex 3, Flex 4 and AS3
                       • Open source, licensed under MIT
                       • Currently at version Beta 3

Friday, May 15, 2009
OpenFlux vs. Flex 4



Friday, May 15, 2009
Major Flex 4 Similarities


                 • Component logic is separate from view logic
                 • Supports custom layouts
                 • Less code duplication / monkey patching
                       compared to Flex 3
                 • Both run on computers?

Friday, May 15, 2009
Major Flex 4 Differences


                       • OpenFlux separates logic into controllers
                       • Flex 4, keeps logic in the component and
                         base classes (same as Flex 3)


                       • OpenFlux focuses on being lightweight
                       • Flex 4 is actually pretty huge

Friday, May 15, 2009
Component / Model



Friday, May 15, 2009
Component / Model


                       • Contains no logic
                       • Only contains public properties
                       • Extends FluxComponent
                       • FluxComponent handles attaching
                         controllers and views



Friday, May 15, 2009
Component / Model



                       EXAMPLE:




Friday, May 15, 2009
Views



Friday, May 15, 2009
Views


                       • OpenFlux views implement IFluxView
                       • Flex 4 views extend Skin (which extends
                         Group)
                       • OpenFlux uses Degrafa
                       • Flex 4 uses FXG

Friday, May 15, 2009
Views



                       EXAMPLE:




Friday, May 15, 2009
Controllers



Friday, May 15, 2009
Controllers


                       • OpenFlux separates component logic in to
                         multiple controllers
                       • Flex 4 doesn’t have controllers
                       • Listen for events and modify the model
                       • Don’t need drag’n drop? Don’t include it!
                       • Add / remove controllers even at runtime
Friday, May 15, 2009
Controllers



                       EXAMPLE:




Friday, May 15, 2009
Metadata



Friday, May 15, 2009
Metadata


           • OpenFlux has 7 different [Metadata] tags
           • Uses custom metadata to reduce code
                  duplication
           • Dependency Injection
           • Handles adding/removing event listeners

Friday, May 15, 2009
Metadata
                                    Component
               [Capacitor]
               [DefaultSetting(property=quot;valuequot;]

                                     Controller
               [ViewHandler(event=quot;clickquot;, handler=quot;clickHandlerquot;)]
               [EventHandler(event=quot;clickquot;, handler=quot;clickHandlerquot;)]
               [ViewContract]
               [ModelAlias]
                                     Common
               [StyleBinding]
Friday, May 15, 2009
Metadata



                       EXAMPLE:




Friday, May 15, 2009
Layouts



Friday, May 15, 2009
OpenFlux Layouts


                       • Implement ILayout (4 methods)
                       • Optionally implement IDragLayout (2 more
                         methods)
                       • Optionally extend LayoutBase (handles 2
                         ILayout methods for you)
                       • HorizontalLayout is 132 lines of code

Friday, May 15, 2009
Flex 4 Layouts



                       • Don’t implement an interface
                       • Must extend LayoutBase
                       • Also handle virtualization (with
                         DataGroup)
                       • HorizontalLayout is 1,720 lines of code

Friday, May 15, 2009
Layouts




                       EXAMPLE:




Friday, May 15, 2009
Virtualization



Friday, May 15, 2009
Virtualization

        • Flex 4 virtualization is handled by DataGroup and
               Layouts
        • OpenFlux components know nothing about
               virtualization
        • Handled by VirtualCollection
        • Looks like a regular array collection to the
               component



Friday, May 15, 2009
Virtualization

         <VirtualCollection id=quot;virtualquot;
           data=quot;{ someHugeDataSet }quot;
           position=quot;{ scrollBar.position }quot;
           size=quot;30quot; />

         <List id=”list” data=quot;{ virtual }quot; />

         <ScrollBar id=quot;scrollBar“
           max=quot;{ someHugeDataSet.length - virtual.size }quot; />




Friday, May 15, 2009
Virtualization




                       EXAMPLE:




Friday, May 15, 2009
Extending, extending,
                            extending


Friday, May 15, 2009
Extending a Component

       <AutoCompletePromptTextInput id=”input”
            prompt=”First Name”
            items=”{ names }” />

                         Adding Controllers

        <TextInput id=”input”>
           <PromptController prompt=”First Name” />
           <AutoCompleteController items=”{ names }” />
        </TextInput>

Friday, May 15, 2009
DataGrid & Tree



Friday, May 15, 2009
DataGrid & Tree


                       • Built over a weekend (including Tree and
                         TreeDataGrid)
                       • Extends from List. Header is even
                         horizontal List.
                       • One new controller for DataGrid, One for
                         Tree



Friday, May 15, 2009
DataGrid & Tree




                       EXAMPLE:




Friday, May 15, 2009
OpenFlux Independence



Friday, May 15, 2009
What’s that mean?


               • Use OpenFlux components with or without
                       Flex.
               • Lighter weight implementations of Flex
                       interfaces
               • Still supports MXML, CSS, Data Binding and
                       Resource Bundles
               • Compiled SWFs as small as 75KB without RSL
Friday, May 15, 2009
What was replaced?



           • UIComponent, SystemManager, LayoutManager
           • Application, Label and Image
           • Holy crap that was a lot of work...


Friday, May 15, 2009
What was kept?



           • StyleManager, BindingManager, ResourceManager
                   we’re keeping (because we have to)
           • Events and interfaces
           • Any other classes that don’t reference
                   UIComponent



Friday, May 15, 2009
OpenFlux App




                       EXAMPLE:




Friday, May 15, 2009
www.openflux.org
                        Blog, Examples, Docs, Source
                          Code and Google Group




Friday, May 15, 2009

Más contenido relacionado

Similar a Ryan Campbell - OpenFlux and Flex 4

#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?Charlie Gracie
 
Loggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesLoggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesSolarWinds Loggly
 
Frontend Engineer Toolbox
Frontend Engineer ToolboxFrontend Engineer Toolbox
Frontend Engineer ToolboxYnon Perek
 
Server Independent Programming
Server Independent ProgrammingServer Independent Programming
Server Independent ProgrammingZendCon
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Fabrice Bernhard
 
What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)Chris Aniszczyk
 
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Go Iwai
 
Operations and Monitoring with Spring
Operations and Monitoring with SpringOperations and Monitoring with Spring
Operations and Monitoring with SpringEberhard Wolff
 
JS awesomeness or how will ES6 help me build better apps ?
JS awesomeness or how will ES6 help me build better apps ?JS awesomeness or how will ES6 help me build better apps ?
JS awesomeness or how will ES6 help me build better apps ?Пламен Стоев
 
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie..."How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...Fwdays
 
Making your first contribution to Foreman
Making your first contribution to ForemanMaking your first contribution to Foreman
Making your first contribution to ForemanDominic Cleal
 
Launchpad: Lessons Learnt
Launchpad: Lessons LearntLaunchpad: Lessons Learnt
Launchpad: Lessons LearntTim Penhey
 
Magento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewMagento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewTom Erskine
 
Portlets
PortletsPortlets
Portletsssetem
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisAgileSparks
 
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...360|Conferences
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsJoseph Lust
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in DepthOPNFV
 

Similar a Ryan Campbell - OpenFlux and Flex 4 (20)

#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
 
Loggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesLoggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging Libraries
 
Frontend Engineer Toolbox
Frontend Engineer ToolboxFrontend Engineer Toolbox
Frontend Engineer Toolbox
 
Server Independent Programming
Server Independent ProgrammingServer Independent Programming
Server Independent Programming
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
 
What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)
 
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
 
FuzzyDebugger.pdf
FuzzyDebugger.pdfFuzzyDebugger.pdf
FuzzyDebugger.pdf
 
Operations and Monitoring with Spring
Operations and Monitoring with SpringOperations and Monitoring with Spring
Operations and Monitoring with Spring
 
JS awesomeness or how will ES6 help me build better apps ?
JS awesomeness or how will ES6 help me build better apps ?JS awesomeness or how will ES6 help me build better apps ?
JS awesomeness or how will ES6 help me build better apps ?
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie..."How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
 
Making your first contribution to Foreman
Making your first contribution to ForemanMaking your first contribution to Foreman
Making your first contribution to Foreman
 
Launchpad: Lessons Learnt
Launchpad: Lessons LearntLaunchpad: Lessons Learnt
Launchpad: Lessons Learnt
 
Magento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewMagento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and Overview
 
Portlets
PortletsPortlets
Portlets
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
 
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in Depth
 

Más de 360|Conferences

Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality360|Conferences
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager360|Conferences
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps360|Conferences
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish360|Conferences
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck360|Conferences
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...360|Conferences
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight360|Conferences
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus360|Conferences
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!360|Conferences
 
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo360|Conferences
 
Ryan Phelan - Bending and Flexing
Ryan Phelan - Bending and FlexingRyan Phelan - Bending and Flexing
Ryan Phelan - Bending and Flexing360|Conferences
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework360|Conferences
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up360|Conferences
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application360|Conferences
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1360|Conferences
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications360|Conferences
 

Más de 360|Conferences (20)

InsideMobile Keynote
InsideMobile KeynoteInsideMobile Keynote
InsideMobile Keynote
 
Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality
 
Web Os Hands On
Web Os Hands OnWeb Os Hands On
Web Os Hands On
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps
 
Unlocking Android
Unlocking AndroidUnlocking Android
Unlocking Android
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish
 
You Know WebOS
You Know WebOSYou Know WebOS
You Know WebOS
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
 
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
 
Ryan Phelan - Bending and Flexing
Ryan Phelan - Bending and FlexingRyan Phelan - Bending and Flexing
Ryan Phelan - Bending and Flexing
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
 

Último

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Último (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Ryan Campbell - OpenFlux and Flex 4

  • 1. OpenFlux and Flex 4 By Ryan Campbell Friday, May 15, 2009
  • 2. About This Session • OpenFlux vs. Flex 4 • Component / Model • Views • Controllers • Metadata • Layouts • Virtualization • Extending Components vs Adding Controllers • DataGrid Component • OpenFlux Independent of Flex Friday, May 15, 2009
  • 4. OpenFlux is: • Lightweight MVC Component Framework • Makes Custom Components Easier • Works with Flex 3, Flex 4 and AS3 • Open source, licensed under MIT • Currently at version Beta 3 Friday, May 15, 2009
  • 5. OpenFlux vs. Flex 4 Friday, May 15, 2009
  • 6. Major Flex 4 Similarities • Component logic is separate from view logic • Supports custom layouts • Less code duplication / monkey patching compared to Flex 3 • Both run on computers? Friday, May 15, 2009
  • 7. Major Flex 4 Differences • OpenFlux separates logic into controllers • Flex 4, keeps logic in the component and base classes (same as Flex 3) • OpenFlux focuses on being lightweight • Flex 4 is actually pretty huge Friday, May 15, 2009
  • 9. Component / Model • Contains no logic • Only contains public properties • Extends FluxComponent • FluxComponent handles attaching controllers and views Friday, May 15, 2009
  • 10. Component / Model EXAMPLE: Friday, May 15, 2009
  • 12. Views • OpenFlux views implement IFluxView • Flex 4 views extend Skin (which extends Group) • OpenFlux uses Degrafa • Flex 4 uses FXG Friday, May 15, 2009
  • 13. Views EXAMPLE: Friday, May 15, 2009
  • 15. Controllers • OpenFlux separates component logic in to multiple controllers • Flex 4 doesn’t have controllers • Listen for events and modify the model • Don’t need drag’n drop? Don’t include it! • Add / remove controllers even at runtime Friday, May 15, 2009
  • 16. Controllers EXAMPLE: Friday, May 15, 2009
  • 18. Metadata • OpenFlux has 7 different [Metadata] tags • Uses custom metadata to reduce code duplication • Dependency Injection • Handles adding/removing event listeners Friday, May 15, 2009
  • 19. Metadata Component [Capacitor] [DefaultSetting(property=quot;valuequot;] Controller [ViewHandler(event=quot;clickquot;, handler=quot;clickHandlerquot;)] [EventHandler(event=quot;clickquot;, handler=quot;clickHandlerquot;)] [ViewContract] [ModelAlias] Common [StyleBinding] Friday, May 15, 2009
  • 20. Metadata EXAMPLE: Friday, May 15, 2009
  • 22. OpenFlux Layouts • Implement ILayout (4 methods) • Optionally implement IDragLayout (2 more methods) • Optionally extend LayoutBase (handles 2 ILayout methods for you) • HorizontalLayout is 132 lines of code Friday, May 15, 2009
  • 23. Flex 4 Layouts • Don’t implement an interface • Must extend LayoutBase • Also handle virtualization (with DataGroup) • HorizontalLayout is 1,720 lines of code Friday, May 15, 2009
  • 24. Layouts EXAMPLE: Friday, May 15, 2009
  • 26. Virtualization • Flex 4 virtualization is handled by DataGroup and Layouts • OpenFlux components know nothing about virtualization • Handled by VirtualCollection • Looks like a regular array collection to the component Friday, May 15, 2009
  • 27. Virtualization <VirtualCollection id=quot;virtualquot; data=quot;{ someHugeDataSet }quot; position=quot;{ scrollBar.position }quot; size=quot;30quot; /> <List id=”list” data=quot;{ virtual }quot; /> <ScrollBar id=quot;scrollBar“ max=quot;{ someHugeDataSet.length - virtual.size }quot; /> Friday, May 15, 2009
  • 28. Virtualization EXAMPLE: Friday, May 15, 2009
  • 29. Extending, extending, extending Friday, May 15, 2009
  • 30. Extending a Component <AutoCompletePromptTextInput id=”input” prompt=”First Name” items=”{ names }” /> Adding Controllers <TextInput id=”input”> <PromptController prompt=”First Name” /> <AutoCompleteController items=”{ names }” /> </TextInput> Friday, May 15, 2009
  • 31. DataGrid & Tree Friday, May 15, 2009
  • 32. DataGrid & Tree • Built over a weekend (including Tree and TreeDataGrid) • Extends from List. Header is even horizontal List. • One new controller for DataGrid, One for Tree Friday, May 15, 2009
  • 33. DataGrid & Tree EXAMPLE: Friday, May 15, 2009
  • 35. What’s that mean? • Use OpenFlux components with or without Flex. • Lighter weight implementations of Flex interfaces • Still supports MXML, CSS, Data Binding and Resource Bundles • Compiled SWFs as small as 75KB without RSL Friday, May 15, 2009
  • 36. What was replaced? • UIComponent, SystemManager, LayoutManager • Application, Label and Image • Holy crap that was a lot of work... Friday, May 15, 2009
  • 37. What was kept? • StyleManager, BindingManager, ResourceManager we’re keeping (because we have to) • Events and interfaces • Any other classes that don’t reference UIComponent Friday, May 15, 2009
  • 38. OpenFlux App EXAMPLE: Friday, May 15, 2009
  • 39. www.openflux.org Blog, Examples, Docs, Source Code and Google Group Friday, May 15, 2009