Flex

Introduction

Are you getting tired of Javascript cross browser testing? Are you having headache of evaluating so many of UI frameworks that claims to do the work but not? Are you interested in AJAX? Yes, AJAX is a great step forward in the RIA world. However, it has many issues stemmed from the stateless HTTP request and response model and browser capability. In fact, AJAX is more a get around than true RIA solution as it simulates the rich client interactivity via background server calls. I am looking for a solution that I can write once, deploy everywhere and work. Here I found Flex that is promising solution in the RIA world.

  1. Bruce Eckel – Thinking in Flex (video)
  2. Jon Rose – Top 10 misconceptions on Flex, Flex is clear way to go
  3. Christopher Coenraet  – http://www.adobe.com/devnet/flex/articles/architecture_print.html
  4. http://www.artima.com/weblogs/viewpost.jsp?thread=193593 (Bruce Eckel – hybridizing flex)
  5. http://www.adobe.com/devnet/flex/articles/flexjava.html (good video to get a taste of Flex)
  6. Flex vs AJAX  (Use case in Yahoo from Kelvin Cheng – Yahoo Map)
  7. Why I like Flex more than AJAX – http://www.solutionhacker.com/2007/08/26/why-flex-for-ria/ 

This is a nice video that shows you the power of Flex and Apollo. The demo was done in Google around 2 months ago. After that, lets wait and see how Google will move this new baby to next level like what it did on AJAX.      

 

Flex Frameworks

Choose the following frameworks to develop your enterprise Flex application.

  1. Cairngorm (article about MVCS) or Mate (dependency of injection)
  2. PureMVC – This video gives you an idea favoring PureMVC. I definitely will take a look.
  3. BlazeDS dev guide

Blogs

Below are some of the good blogs related to Flex

  1. Ely Greenfield – http://www.quietlyscheming.com/blog/ (Guru in Flex animation and skinning)
  2. Ted Patrick – http://onflex.org/
  3. Christopher Coenraet – http://coenraets.org/
  4. Ryan Steward – http://blog.digitalbackcountry.com/
  5. Alex Harui – http://blogs.adobe.com/aharui/
  6. Eric Feminella – http://www.ericfeminella.com/blog/
  7. Frantisek Kormanak – http://www.franto.com/
  8. Doug Mccune – http://dougmccune.com/blog/ (Author of Flex for Dummies)
  9. Peter deHaan – http://blog.flexexamples.com/ (Tester)
  10. James Ward – http://www.jamesward.com/wordpress/ (Compare various way of Flex Remoting)
  11. Christoph Room – http://christophrooms.com/
  12. Mike Downey – http://madowney.com/blog/
  13. Charlton Barreto – http://charltonb.typepad.com/weblog/
  14. Parleys.com – http://www.parleys.com/display/PARLEYS/Home#page=Home
  15. Philter Blog – http://www.philterdesign.com/blog/This is a blog written by Phil Chung. His blog is dedicated for Flash/Flex development. One of his masterpiece that caught my attention was the one he built for well-known photographers “Dave & Quin”. I wish I can learn from his flex work.
  16. Grant Skinner Blog – http://www.gskinner.com/blog/ - Grant is a guru in this field. From his gBlog, I have found out a list of great slides from 360Flex conference that cover some advanced topics in Flex.
  17. Alex Harui Blog – http://blogs.adobe.com/aharui/
  18. Flex Authority Magazine
  19. Kuwamoto’s Flex Blog – http://kuwamoto.org/about-2/
  20. Drunk on Software – Nice video blog for Flex talk

Showcase or Examples

Read more codes!! Below are some examples and showcases that demonstrate you the power of Flex:

  1. Flex Showcase – http://flex.org/showcase/
  2. Adobe Showcase – http://www.adobe.com/cfusion/showcase/index.cfm?event=finder&productid=26724&loc=en_us
  3. Adobe Lab – http://labs.adobe.com/wiki/index.php/Showcase:Flex_Developer_Derby
  4. ScaleNine – http://www.scalenine.com/showcase/ 
  5. Charting demos, Widget demos, Flex 1.5 Charting Demo
  6. Flex Web Analytics
  7. CMX Community
  8. Flex demos, Amazing examples
  9. http://preview.comcast.net/fan4/
  10. Brightwork examples
  11. RRD Graphing
  12. Cover Flow (nice for multimedia navigation)
  13. Coolest Flex Website
  14.  

Great Topics

Scalability (from Flex Best Practice)

  1. Edge cache server for the swf (article)
    • Free CDN network – Coral
  2. NIO based messaging (tomcat 6)
    • Thread per client doesn’t scale
  3. AMF – binary and compressed RPC protocol

Threading Model

  1. Flex is currently single-threaded. However, you can use setTimeout(closure, delay, args…) or asyncrhonous I/O w/ closure to simulate multi-threading. Check out this article related to building a JPEGEncoder with this approach.

Graphics

  1. Style Explorer – http://www.maclema.com/content/sek/
  2. Filter Explorer – http://www.merhl.com/flex2_samples/filterExplorer/
  3. Primitive Explorer – http://www.flexibleexperiments.com/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html

AMF & BlazeDS

  1. Can we use BlazeDS for push messaging? The term “push messaging” is vague and usually misused but in general, it is the type of messaging where the client does not have to ask to the server for updates in regular intervals (i.e. polling) but rather server sends the updates to the client when available without client asking for them. If we take this definition, then BlazeDS certainly supports “push messaging” via long-polling and streaming channels. It’s true that RTMP (Real Time Messaging Protocol) is still better than long-polling and streaming in terms of latency and client notifications because RTMP provides a duplex socket connection between the client and the server. Long-polling and streaming are also limited by the number of threads the app server can provide. So far, only LCDS provides RTMP.
  2. BlazeDS lives in a Servlet container and hence constrained by one-thread-per-connection limit whereas LCDS has NIO-based channels that can scale up to 1000s of requests.
  3. Get started with BlazeDS
  4. Set up BlazeDS in EC2
  5. http://www.amfphp.org/
  6. http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf
  7. http://opensource.adobe.com/wiki/display/blazeds/BlazeDS (BlazeDS is open-sourced)

Deep Linking

  1. Advanced Flex Deep Linking in UrlKit (sample)

Internationalization

BlazeDS transfers all Date Objects in UTC time zone and Flash player converts the Date object in UTC time zone to local time zone. When you return a object of java.util.Date type from your Java method, BlazeDS/LCDS wil convert the date to UTC timezone (actually this conversion is at AMF level). This object is transferred in UTC timezone to Flash Player. Flash Player will convert the object in UTC timezone to local timezone. So, you will receive an object of Date type in timezone local to the client in which the Flash Player is running. This might not be desired behavior always. You might not want this conversion to happen and want to have same time to be displayed irrespective of client timezone.To do this all you have to do is a simple calculation on the client side and nothing on the server side.Anatole Tartakovsky from Farata Systems has a excellent post explaining how to achieve this with a code sample. Please find more details at this URL (Timezone headache).

Testing

  1. Unit test –FlexUnit
  2. Functional Test
  3. Flex acceptance testing and continuous integration
  4. Flex unit testing and continuous integration: Part 1 of 2
  5. Code Coverage for Flex – Flex Cover
  6. Nice article talks about testing in Flex


Exception Handling – This article shows you how to capture Throwable object from Java to display it in Flex

Logginglog it to console in FireBug and this

Security

  1. FlashSec presentation
  2. Great presentation about Flex decompiler and protection
    • It talks about swf decompiler, code obfuscation and encryption
  3. Decompiler

Collaborative (lets work together to achieve one task – Leverage BlazeDS messaging)

  1. Example1: Data Entry (form filling)
  2. Example2: Yahoo Map
  3. Example3: Call Center 

Interesting open source projects

Below are something that you may find them useful

  1. AlivePDF - a swc library that you can use to create your pdf programmatically. Once you are done, you can post it back to server for download purpose. If you are in AIR environment, you can save the file locally.
  2. WiiFlash - a swc library that you can make your wii remote control to control your flex application. Very interesting for entertaining project.
  3. ASZip - let you generate the zip file from the flex
  4. More interesting projects from ByteArray.org
  5. Degrafa - Declarative Graphics Framework
  6. BarCode Generator Demo

Reference

This section provides you programming references

  1. Metadata reference – http://www.solutionhacker.com/2007/06/03/flex-looking-into-metatag/
  2. Adobe has done a good job of documenting the framework (reference).
  3. Offline application with naive drag-and-drop to MS Office
  4. Flex interactivity – add voice to your app via Rabbit
  5. Data Synchronization
  6. Performance and High Availability
  7. Deep linking
  8. Session Management
  9. Air your application
  10. File bugs to Adobe JIRA

 

Leave a comment

0 Comments.

Leave a Reply

You must be logged in to post a comment.