SlideShare a Scribd company logo
1 of 34
Building Killer
                 RIAs
          with Flex & Grails
                                          Tomas Lin
                                     tomaslin@gmail.com
                                 http://www.flexongrails.com
                             Groovy Grails Exchange, London 2009
                                           London


Thursday, 10 December 2009
Tomas Lin
         • 2 years experience w/ Flex, Air and Grails
         • Senior Web Developer at fashion search portal
           http://www.empora.com
         • Twitter: tomaslin
         • Email: tomaslin@gmail.com
         • Blog : http://fbflex.wordpress.com




Thursday, 10 December 2009
Tomas Lin
                   • born in Taiwan
                   • grew up in Guatemala
                   • studied in the US
                   • Canadian citizen
                   • living in London




Thursday, 10 December 2009
Some Projects in Flex
                            and Grails




Thursday, 10 December 2009
Blue
      Ember
      Grills

Thursday, 10 December 2009

http://www.blueembergrills.com
Suzuki.ca
Thursday, 10 December 2009

http://www.suzuki.ca
Dan
                                 Aykroyd
                                 Wines




Thursday, 10 December 2009
http://www.danaykroydwines.com
Agenda
                 • What is Flex?
                 • Why use Flex?
                 • Flex and Grails
                 • Fun + Exciting Demo
                 • Questions




Thursday, 10 December 2009
Rich Internet
                              Application
                   • Marketing term by Macromedia
                   • Program that lives on the browser but
                     behaves like a desktop app.
                   • Rich client, web application, etc...




Thursday, 10 December 2009
This is Flex.
                                                             Flex:




Thursday, 10 December 2009
Flex is a product by Adobe. It is based on Flash platform technology.

Originally, it was intended to build Rich Internet Applications ---- programs that live on a web browser but behave like they do on a desktop.

But it has been extended beyond that.
UX / Graphic Designer
                                                                                                                            User Interface Designer




                  Flex / Front-End Developer                                                                               Backend/Grails Developer



                                       Tools & workflow
Thursday, 10 December 2009
Flex provides tools to marry the pretty pictures created by UX / Graphic designers with the services built by back end developers.

It sits between all the server side code and what an end user sees.

Tools it provides are branded under Flash - Flash Catalyst and Flash Builder.

In a typical flow,
   the graphic designer builds a pretty picture,
   the front end designer converts this pretty pictures into components via Flash Catalyst
   the front end developer binds these components to backend data
Flex Components
Thursday, 10 December 2009
At the core, Flex is about developing programs in the form of interrelated components.

Flex core provides tables, layoutmanagers, datagrids and chart similar to what you would find on YUI and jQuery.

These components are data-driven and can be highly interactive and graphic.
Programming Languages
                           MXML                                                                                 HTML
                         ActionScript                                                                         JavaScript
                             CSS                                                                                 CSS
                             FXG                                                                                 SVG
   Flex                                                                                                               Web
 Developer                                                                                                          Developer




Thursday, 10 December 2009
Despite the Flash branding, Flex is a lot closer to JavaScript and HTML than traditional Flash dev.

There is no Flash movie clips or timelines.

MXML / ActionScript are core languages.

FXG is a SVG-like language introduced in Flex 4 that letʼs you use the output of graphic programs as skins.
Runtimes
       Code                                                                        Flash

                                           .swf

                                                          .air
                                                                                                           AIR


       SDK
                                                           .???


                                                                                                               Slider



Thursday, 10 December 2009
The most powerful feature of Flex is that you can take the HTML/Javascript code you wrote and deploy it into multiple runtimes via the Flex SDK.

Flash ( Window Browser )
AIR ( Desktop )
Slider ( iPhone and Mobile - coming next year )
Data Services ( Choices )
                        • BlazeDS
                        • Adobe Livecycle DS
                        • GraniteDS
                        • SOAP, REST, XML, JSON
                        • RubyAMF, PhpAMF

                                                            PROTOCOLS
                        • AMF
                        • RTMP
Thursday, 10 December 2009
Flex provides ways to connect to different web services.

The key here is choice. For some deployments like GAE BlazeDS wonʼt work. Integration / Tooling.

                    • AMF
BlazeDS and LiveCycle are both from Adobe. It allows you to connect a J2EE stack. Remote procedure calls, messaging and now modelling.

GraniteDS is open source alternative. But also does SOAP, REST, etc.

2 Protocols by Adobe:

AMF - messaging and RPC format
RTMP - streaming and peer to peer
Agenda

                   • What is Flex?
                   • Why use Flex?
                   • Flex and Grails
                   • Fun + Exciting Demo.
                   • Questions?




Thursday, 10 December 2009
Hit a lot of screens




Thursday, 10 December 2009
In the corporate world, 50% of users are still on internet explorer 6.

Flex letʼs you build a user experience using similar technologies but runs like the JVM.

Piggibacks the popularity of Flash video streaming.
Thursday, 10 December 2009
Do Cool Stuff ( no ie6 )




                                                                         http://ge.ecomagination.com/smartgrid/

Thursday, 10 December 2009
Also allows access for more sophisticated graphics and device support.

Example is augmented reality -> using microphone and webcam.

More recently added multi-touch support and basic 3D.
Multi-platform
                                                development
                      tweetdeck




                                                                                                                                                            Balsamiq Mockup




                                                                       Ebay Desktop
Thursday, 10 December 2009
As mentioned before, you write your code once and can share these components across desktop, browser and mobile.

Some examples of desktop applications

With Air 2.0 beta, you can call native methods. There is a demo out there embedding tomcat into an air app. Instead of Grails.exe and Grails.app, you can write Grails.air and be done with .
A lot of components




                                                                                             > TOUR DE FLEX



Thursday, 10 December 2009
Because Flash has been around for so long, there is extensive support for itʼs components.

Flex can use and embed Flash components and communicate with it ( AS 2 / AS 3 ).

Somethings easier to do in Flash / Flex -> Google image swirl, Street view.
Many Libraries




                                                                                         pixel bender
                     degrafa

                                                  box2d
Thursday, 10 December 2009
There is a really healthy and big open source community for flex / flash. Itʼs used by the big media companies and digital agencies.

3D engines - papervision / away3d
physics engines - box2d
image - degrafa / pixel bender
mvc frameworks - mate / puremvc
DI - Swiz
flexMonkey
                                                                         UI-testing



                                                                       Selenium-Flex
                                                                          FlexUnit

  fxSpy
 Firebug




                                                       De Monster Debugger
Thursday, 10 December 2009

There are also a large amount of open source tools including IDEs, profilers, Test Automation
tools and things like Selenium-Flex that let you integrate Flex.

Books, user groups, etc. There are 3 user groups in London for Flex, one for Grails.

It’s a very well known, viable technology that can be used to enrich any architecture and help
build high quality products quickly.

Free videos and books from Adobe. Adobe TV. Not a fringe technology. Used by many banks
and financial institutions.
Agenda

                  • What is Flex?
                  • Why use Flex?
                  • Flex and Grails
                  • Fun + Exciting Demo.
                  • Questions?




Thursday, 10 December 2009
Grails + Flex = Voltron.
Gaps in Flex
                   • What do we use for the server?
                   • Horrendous HTML support for Flash.
                     ( Air embeds Webkit - HTML5 )
                   • Not SEO/iphone friendly.
                   • Crippled and complex security model.
                   • Gigantic files




Thursday, 10 December 2009
HTML Integration
                                                                                                                               Flex
                                                                                            HTML /gsp

                                                                                                                               Flex

                                                                                                        Flex

                                                                                            HTML /gsp




Thursday, 10 December 2009
Overcomes some of the limitations of pure flex on the browser -

limited HTML renderer ( AIR has Webkit ) -> Grails and simple layouts / gsps makes it easy to embed and make into templates.

Also helps overcome many security issues via groovy proxy.
Graceful Degradation
       <ak:wineSelector model=”${wineList}”/>




                                                                                                                                    Flex         html


                                                                                                                                         Alt. Content


                                                                                                                                          Data

Thursday, 10 December 2009
Letʼs you take components further.

Flex components can be visually stunning but functionally stunted. Grails can help aggregate web functionality into Flex applications.

Example here is SEO.
The Server Gap

                    • Flex ( BlazeDS )
                    • GraniteDS
                    • Flex Grails Scaffold
                    • Flash Player
                    • OpenLaszlo


                               • Searchable, Selenium RC, Build Test
                                 Data, Datasources, Tomcat, etc...
Thursday, 10 December 2009
Easy plugin integration - Convention over Configuration. BlazeDS is ridiculously difficult to set up properly.

Also provides good server side services not available to Flex -> Search, PDF generation, reports, data export, testing, etc.
Deployment Platform




              • Google App Engine + Google Wave + waveas3
Thursday, 10 December 2009

It’s an awesome deployment platform.

Google App Engine + Wave example. Gadget + Robot.
Agenda

                  • What is Flex?
                  • Why use Flex?
                  • Flex and Grails
                  • Fun + Exciting Demo.
                  • Questions?




Thursday, 10 December 2009
Iʼve talked a bunch about Flex, letʼs look at how the workflow that I talked about before actually works in practice and build a simple application.
Thursday, 10 December 2009
More Neat Stuff
               • BlazeDS, AMF and Channel Pub/Sub
               • Spring-Flex Integration
               • Java Instrospection via BlazeDS
               • Model Driven Development with Adobe
                 Fiber




Thursday, 10 December 2009
Questions?




Thursday, 10 December 2009
Muchas Gracias
                   • twitter: tomaslin
                   • tomaslin@gmail.com
                   • http://www.flexongrails.com




Thursday, 10 December 2009

More Related Content

What's hot

Michael Adobe Flex Java 1 London
Michael Adobe Flex Java 1 LondonMichael Adobe Flex Java 1 London
Michael Adobe Flex Java 1 London
Skills Matter
 
Domino app dev competitive advantage for blug
Domino app dev competitive advantage for blugDomino app dev competitive advantage for blug
Domino app dev competitive advantage for blug
John Head
 
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
John Head
 

What's hot (16)

Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2lHtml5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
 
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...
 
John David Head - Bio
John David Head - BioJohn David Head - Bio
John David Head - Bio
 
Domino app dev competitive advantage final
Domino app dev competitive advantage finalDomino app dev competitive advantage final
Domino app dev competitive advantage final
 
MWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive AdvantageMWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive Advantage
 
Michael Adobe Flex Java 1 London
Michael Adobe Flex Java 1 LondonMichael Adobe Flex Java 1 London
Michael Adobe Flex Java 1 London
 
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
 
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
 
Domino app dev competitive advantage for blug
Domino app dev competitive advantage for blugDomino app dev competitive advantage for blug
Domino app dev competitive advantage for blug
 
Html5
Html5Html5
Html5
 
Google html5 Tutorial
Google html5 TutorialGoogle html5 Tutorial
Google html5 Tutorial
 
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
 
AD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoAD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus Domino
 
IBM Lotus Notes/Domino App. Dev. Competitive Advantage: The Social Business E...
IBM Lotus Notes/Domino App. Dev. Competitive Advantage: The Social Business E...IBM Lotus Notes/Domino App. Dev. Competitive Advantage: The Social Business E...
IBM Lotus Notes/Domino App. Dev. Competitive Advantage: The Social Business E...
 
Social connections - content management for ibm connections
Social connections - content management for ibm connectionsSocial connections - content management for ibm connections
Social connections - content management for ibm connections
 
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them EverywhereAD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
 

Similar to Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy & Grails eXchange 2009

The Evolution of the Flash Platform
The Evolution of the Flash PlatformThe Evolution of the Flash Platform
The Evolution of the Flash Platform
Peter Elst
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client Roundup
Murat Yener
 
Lightning In The Clouds
Lightning In The CloudsLightning In The Clouds
Lightning In The Clouds
george.james
 
Widget Workshop Advanced Development
Widget Workshop Advanced DevelopmentWidget Workshop Advanced Development
Widget Workshop Advanced Development
Dominik Helleberg
 

Similar to Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy & Grails eXchange 2009 (20)

Introduction to Flex
Introduction to FlexIntroduction to Flex
Introduction to Flex
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
 
Adobe's RIA Technologies (non technical)
Adobe's RIA Technologies (non technical)Adobe's RIA Technologies (non technical)
Adobe's RIA Technologies (non technical)
 
Adobe flex an overview
Adobe flex  an overviewAdobe flex  an overview
Adobe flex an overview
 
The Evolution of the Flash Platform
The Evolution of the Flash PlatformThe Evolution of the Flash Platform
The Evolution of the Flash Platform
 
Flex and Java
Flex and JavaFlex and Java
Flex and Java
 
Adobe Flex builder by elmagnif
Adobe Flex builder  by elmagnifAdobe Flex builder  by elmagnif
Adobe Flex builder by elmagnif
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe Flex
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client Roundup
 
Flex in portal
Flex in portalFlex in portal
Flex in portal
 
Adobe Flex: Creating Widgets for the Desktop and Web
Adobe Flex: Creating Widgets for the Desktop and WebAdobe Flex: Creating Widgets for the Desktop and Web
Adobe Flex: Creating Widgets for the Desktop and Web
 
Afik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAfik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex Intro
 
Lightning In The Clouds
Lightning In The CloudsLightning In The Clouds
Lightning In The Clouds
 
Osvrt Na Adobe Max 2009
Osvrt Na Adobe Max 2009Osvrt Na Adobe Max 2009
Osvrt Na Adobe Max 2009
 
Adobe Flex
Adobe FlexAdobe Flex
Adobe Flex
 
AN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEXAN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEX
 
Widget Workshop Advanced Development
Widget Workshop Advanced DevelopmentWidget Workshop Advanced Development
Widget Workshop Advanced Development
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Web
 
Adobe Flex
Adobe FlexAdobe Flex
Adobe Flex
 
Adobe Max 2009 - Learnings
Adobe Max 2009 -  LearningsAdobe Max 2009 -  Learnings
Adobe Max 2009 - Learnings
 

More from Skills Matter

Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
Skills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
Skills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
Skills Matter
 

More from Skills Matter (20)

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
 
Serendipity-neo4j
Serendipity-neo4jSerendipity-neo4j
Serendipity-neo4j
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Plug 20110217
Plug   20110217Plug   20110217
Plug 20110217
 
Lug presentation
Lug presentationLug presentation
Lug presentation
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
 
Plug saiku
Plug   saikuPlug   saiku
Plug saiku
 

Recently uploaded

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
panagenda
 
+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

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
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].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, ...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
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...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
+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...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
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)
 
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 Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy & Grails eXchange 2009

  • 1. Building Killer RIAs with Flex & Grails Tomas Lin tomaslin@gmail.com http://www.flexongrails.com Groovy Grails Exchange, London 2009 London Thursday, 10 December 2009
  • 2. Tomas Lin • 2 years experience w/ Flex, Air and Grails • Senior Web Developer at fashion search portal http://www.empora.com • Twitter: tomaslin • Email: tomaslin@gmail.com • Blog : http://fbflex.wordpress.com Thursday, 10 December 2009
  • 3. Tomas Lin • born in Taiwan • grew up in Guatemala • studied in the US • Canadian citizen • living in London Thursday, 10 December 2009
  • 4. Some Projects in Flex and Grails Thursday, 10 December 2009
  • 5. Blue Ember Grills Thursday, 10 December 2009 http://www.blueembergrills.com
  • 6. Suzuki.ca Thursday, 10 December 2009 http://www.suzuki.ca
  • 7. Dan Aykroyd Wines Thursday, 10 December 2009 http://www.danaykroydwines.com
  • 8. Agenda • What is Flex? • Why use Flex? • Flex and Grails • Fun + Exciting Demo • Questions Thursday, 10 December 2009
  • 9. Rich Internet Application • Marketing term by Macromedia • Program that lives on the browser but behaves like a desktop app. • Rich client, web application, etc... Thursday, 10 December 2009
  • 10. This is Flex. Flex: Thursday, 10 December 2009 Flex is a product by Adobe. It is based on Flash platform technology. Originally, it was intended to build Rich Internet Applications ---- programs that live on a web browser but behave like they do on a desktop. But it has been extended beyond that.
  • 11. UX / Graphic Designer User Interface Designer Flex / Front-End Developer Backend/Grails Developer Tools & workflow Thursday, 10 December 2009 Flex provides tools to marry the pretty pictures created by UX / Graphic designers with the services built by back end developers. It sits between all the server side code and what an end user sees. Tools it provides are branded under Flash - Flash Catalyst and Flash Builder. In a typical flow, the graphic designer builds a pretty picture, the front end designer converts this pretty pictures into components via Flash Catalyst the front end developer binds these components to backend data
  • 12. Flex Components Thursday, 10 December 2009 At the core, Flex is about developing programs in the form of interrelated components. Flex core provides tables, layoutmanagers, datagrids and chart similar to what you would find on YUI and jQuery. These components are data-driven and can be highly interactive and graphic.
  • 13. Programming Languages MXML HTML ActionScript JavaScript CSS CSS FXG SVG Flex Web Developer Developer Thursday, 10 December 2009 Despite the Flash branding, Flex is a lot closer to JavaScript and HTML than traditional Flash dev. There is no Flash movie clips or timelines. MXML / ActionScript are core languages. FXG is a SVG-like language introduced in Flex 4 that letʼs you use the output of graphic programs as skins.
  • 14. Runtimes Code Flash .swf .air AIR SDK .??? Slider Thursday, 10 December 2009 The most powerful feature of Flex is that you can take the HTML/Javascript code you wrote and deploy it into multiple runtimes via the Flex SDK. Flash ( Window Browser ) AIR ( Desktop ) Slider ( iPhone and Mobile - coming next year )
  • 15. Data Services ( Choices ) • BlazeDS • Adobe Livecycle DS • GraniteDS • SOAP, REST, XML, JSON • RubyAMF, PhpAMF PROTOCOLS • AMF • RTMP Thursday, 10 December 2009 Flex provides ways to connect to different web services. The key here is choice. For some deployments like GAE BlazeDS wonʼt work. Integration / Tooling. • AMF BlazeDS and LiveCycle are both from Adobe. It allows you to connect a J2EE stack. Remote procedure calls, messaging and now modelling. GraniteDS is open source alternative. But also does SOAP, REST, etc. 2 Protocols by Adobe: AMF - messaging and RPC format RTMP - streaming and peer to peer
  • 16. Agenda • What is Flex? • Why use Flex? • Flex and Grails • Fun + Exciting Demo. • Questions? Thursday, 10 December 2009
  • 17. Hit a lot of screens Thursday, 10 December 2009 In the corporate world, 50% of users are still on internet explorer 6. Flex letʼs you build a user experience using similar technologies but runs like the JVM. Piggibacks the popularity of Flash video streaming.
  • 19. Do Cool Stuff ( no ie6 ) http://ge.ecomagination.com/smartgrid/ Thursday, 10 December 2009 Also allows access for more sophisticated graphics and device support. Example is augmented reality -> using microphone and webcam. More recently added multi-touch support and basic 3D.
  • 20. Multi-platform development tweetdeck Balsamiq Mockup Ebay Desktop Thursday, 10 December 2009 As mentioned before, you write your code once and can share these components across desktop, browser and mobile. Some examples of desktop applications With Air 2.0 beta, you can call native methods. There is a demo out there embedding tomcat into an air app. Instead of Grails.exe and Grails.app, you can write Grails.air and be done with .
  • 21. A lot of components > TOUR DE FLEX Thursday, 10 December 2009 Because Flash has been around for so long, there is extensive support for itʼs components. Flex can use and embed Flash components and communicate with it ( AS 2 / AS 3 ). Somethings easier to do in Flash / Flex -> Google image swirl, Street view.
  • 22. Many Libraries pixel bender degrafa box2d Thursday, 10 December 2009 There is a really healthy and big open source community for flex / flash. Itʼs used by the big media companies and digital agencies. 3D engines - papervision / away3d physics engines - box2d image - degrafa / pixel bender mvc frameworks - mate / puremvc DI - Swiz
  • 23. flexMonkey UI-testing Selenium-Flex FlexUnit fxSpy Firebug De Monster Debugger Thursday, 10 December 2009 There are also a large amount of open source tools including IDEs, profilers, Test Automation tools and things like Selenium-Flex that let you integrate Flex. Books, user groups, etc. There are 3 user groups in London for Flex, one for Grails. It’s a very well known, viable technology that can be used to enrich any architecture and help build high quality products quickly. Free videos and books from Adobe. Adobe TV. Not a fringe technology. Used by many banks and financial institutions.
  • 24. Agenda • What is Flex? • Why use Flex? • Flex and Grails • Fun + Exciting Demo. • Questions? Thursday, 10 December 2009 Grails + Flex = Voltron.
  • 25. Gaps in Flex • What do we use for the server? • Horrendous HTML support for Flash. ( Air embeds Webkit - HTML5 ) • Not SEO/iphone friendly. • Crippled and complex security model. • Gigantic files Thursday, 10 December 2009
  • 26. HTML Integration Flex HTML /gsp Flex Flex HTML /gsp Thursday, 10 December 2009 Overcomes some of the limitations of pure flex on the browser - limited HTML renderer ( AIR has Webkit ) -> Grails and simple layouts / gsps makes it easy to embed and make into templates. Also helps overcome many security issues via groovy proxy.
  • 27. Graceful Degradation <ak:wineSelector model=”${wineList}”/> Flex html Alt. Content Data Thursday, 10 December 2009 Letʼs you take components further. Flex components can be visually stunning but functionally stunted. Grails can help aggregate web functionality into Flex applications. Example here is SEO.
  • 28. The Server Gap • Flex ( BlazeDS ) • GraniteDS • Flex Grails Scaffold • Flash Player • OpenLaszlo • Searchable, Selenium RC, Build Test Data, Datasources, Tomcat, etc... Thursday, 10 December 2009 Easy plugin integration - Convention over Configuration. BlazeDS is ridiculously difficult to set up properly. Also provides good server side services not available to Flex -> Search, PDF generation, reports, data export, testing, etc.
  • 29. Deployment Platform • Google App Engine + Google Wave + waveas3 Thursday, 10 December 2009 It’s an awesome deployment platform. Google App Engine + Wave example. Gadget + Robot.
  • 30. Agenda • What is Flex? • Why use Flex? • Flex and Grails • Fun + Exciting Demo. • Questions? Thursday, 10 December 2009 Iʼve talked a bunch about Flex, letʼs look at how the workflow that I talked about before actually works in practice and build a simple application.
  • 32. More Neat Stuff • BlazeDS, AMF and Channel Pub/Sub • Spring-Flex Integration • Java Instrospection via BlazeDS • Model Driven Development with Adobe Fiber Thursday, 10 December 2009
  • 34. Muchas Gracias • twitter: tomaslin • tomaslin@gmail.com • http://www.flexongrails.com Thursday, 10 December 2009