Archive for Flash CS3

Flex Challenges for Flash IDE Devleopers

A post recalled myslef got frustrated last September, after several weeks honeymoon turning into Flex from Flash.

No doubt some developers from Flex community not easy to understand what’s the meaning when a Flash developer complaining (AS3 === AS3) = false, as the majority of Flex developers do not know too much about development in Flash IDE. The feeling of ’second class citizens’ for Flash developers in Flex development also could not make sense to some of them.

I would like to say, there’s no different AS3 language itself whatever Flash IDE or Flex, but the way of coding is wholly different and big changes for Flash developers when try to work with Flex.

Rapid application development

My favorite Flex blogger Yakov Fain had a Flex and Java book in 2006, Flex Builder was a ‘RAD tool’ in that book, but some months later, a new post said ‘Flex 2 is not a RAD tool‘ telling the real truth. He also questioned the usage of dominated Cairngorm framework for Flex applications. Despite of some questions like these, however, Flex development is target to RAD. Although even today, the question asked by bosses ‘how to make a complex Flex application fast, extendable, fast UI change, great usabilities for every components and views, largely reusable classes to fit for different structures, tested fully with agile methods fast and easily, less developers and hours’ still no one-fit-all answer, Flex teams are working the way into RAD at some percents.

The RAD nature of Flex making the big difference between Flash IDE applications and Flex applications, as Flash applications are more focus on Creative and User Experiences. Flash IDE projects are mostly like to be design-driven, with smooth workflow between designers and Flash IDE developers. While Flex application must largely adopt design patterns, restricted by components-base structure, agreement such as framework, patterns, coding style, between developers now and future.

Developing Flex applications, Flash IDE Developers have to learn more design patterns and structure frameworks, reading Flex SDK source code, get familiar with Flex components functions/events/behaviors, struggle with SDK bugs.

Design challenges

Early months before, I got impression from Adobe’s seminars/articles that, Flex framework is to give you a fast, powerful, extendable component-container collections, easy to change with CSS and bitmaps. And you can easily extend design with Flash IDE even. That’s not the truth in real world. That’s what talent Flash/Flex developer Jesse Warden talking about design challenges.

I used to have a former Flash IDE version of my Flex projects, everything could be replaced with Flex components except a creation task with script-based animations. I found it’s not too hard to move the code base from Flash project into new Flex application, and feel happy in the beginning. But later when my bosses asked me to change something from time to time, I got some pains the needs of strong-typed communication functions between Flex framework and that low-level UIComponent-extended Flash component, split my brain into two parts, one thinking in Flash another thinking in Flex.

Satisfaction

Most of workers working not only for money, but also for some sort of self-fulfillment, coming from satisfactions of his works. Flash IDE developers can get more or less satisfactions from Flash projects, where working with designers, whatever some sort of creatives and some sort of happiness.

Flash developers join into Flex projects will have less satisfactions. Each time when Adobe evangelist talking about how great a new Flex application is, someone will notice that ‘the best Flash applications in the industry still made with Flash IDE, not Flex’. Design challenges are limitations to make Flex to be satisfied like Flash applications, especially when designers have very limited experience working with Flex, even worse definitely no designer at all. Each time when the feeling comes, you ‘do not have the ability to make that happen which can be made with Flash easily’, can you feel it good?

Flex developers coming from Java or other languages getting satisfactions from Flex, as Flex applications he can build much beautiful than Java GUIs, HTML interfaces, and much easier. They’ve already have good experiences with enterprise design patterns, Flex is easy for them to dive into, and the results for them are amazing.

Flash or Flex or Both?

Last year lots of Flash developers wouldn’t think Flex 2 is suitable for web applications - longer loading time because of the size of Flex framework. Things changing at least recently, some big companies began to use Flex applications on their website officially, Yahoo!, Philips. I guess it partly because Adobe promised them before announcing the Flex caching solution inside Flash player. So here comes a question, Flash or Flex, or both?

Creative Flash CS3 is sitting inside creative products list of Adobe, while Flex focus on enterprise solutions. It’s clear when you design/develop with Flash CS3, you have the most creative and freedom to do everything. A simple reason is, Flex actually a house of Flash, a framework with a big collection of Flash classes. In the meaning of creative, you can do everything with Flash CS3 what Flex 2 can do. In Flex 2 you could also change components style, use bitmap images and Flash swfs to change skins and make them much friendly and beautiful. Though you have to do these with cautions in Flex - Flex has its own structures, listeners, display layers, rules.

Development Speed Last year when Adobe announced Flex 2, it was said ‘Flex is Fast’. Yes, make a Flex application within 5 minutes, make something magic with several classes, and you could change style and skins easily. In real productive projects, it’s true for talent Java developers, while not true for Flash developers. Why? For Java developers, with Flex they don’t have to learn Flash drawing/timeline techniques, they can easily move Java code into Flex projects, and soon a nice business application, better then user interface with Java, styling and skinning, transitions and effects, and get benefits of high acceptance of Flash player, how cool and how fast it is! But for Flash developers, why not the same? Simply, it depends. Flash developers will compare Flex applications to Flash web applications that talent designers made, will think about how to make better and perfect user experiences, how to make a beautiful transition that designers hope, will think this is not perfect enough I want to change, will have a favor to work with Flash player API classes, will like to customize Flex components here and there. And how to? If lucky you find a solution by searching google and Flexcoders mail list, or you have to find dig functions/events that you couldn’t find from examples of documents or books, worse you call some mx_internal properties, or push additional listeners for something because of ‘private’ properties you have no right to change and dig their values, the worst, stop and wait somebody do that. A question is: why life is so hard in Flex? It SHOULD be several lines only to change in Flash AS3 classes but in Flex it have to go over more steps and more hours? Honestly, if not so curious the way of Flash designers/developers, Flex applications could be faster than code in Flash(still depends, customers/managers may not satisfied, you have to make those hard parts happen). Be sure to walk on the road of Flex, you can be faster than walking on wild land, and, stop before the red sign.

Performance Although Flex was optimized quite much with Adobe’s own techniques, Flex will at least use more memory, extra listeners, extra resources that might useless for current project. When I opened more than 5 tabs of Flex applications in Firefox, in some case performance became a problem. Maybe they could be changed to ’silent’ - close listeners, clear garbages when browser window is changed to inactive. Testing Flex is a Flash framework - tested. So you can get benefits from Flex, and save testing time and testers. If you want to make components in Flash the same Flex framework doing - I tried to do some of them before - wasting time. You have no much dedicated time and testers that Adobe engineers had.

So, Flash or Flex? I think these are for Flash only projects:

  • Simple, clear structure, more creative.
  • Games.
  • No much standard forms, controls.
More likely Flex:
  • Bunch of forms, standard controls.
  • Stable and functions more important than eyes candy.
How about Both? Flex of course has limitations of creative. Surely some projects need them work together, and get benefits from both side. There could be several methods to use them:
  • Flash application to load Flex application on runtime, better user experience with Flash power and flexible.
  • Flex application to load Flash application, some sort of.
  • Flash UIMovieClip to be used inside Flex, works as a component.
  • Flash CS AS3 classes extends UIComponents inside Flex, load symbols from Flash SWF file. I thought it’s hard before I tried this the first time, but find not so much.

Install Flash 9 player together with debugger in Ubuntu

I reinstalled my old D600 laptop with Ubuntu for server side coding/testing at home. Also I want to install Flash 9 player/debugger together. Firefox is supported very well from Adobe, it could install Flash 9 player the same way as Windows. I downloaded Flash 9 debugger player and installed it as plugin for Firefox without any problem. (Flash 9 debugger player together with Alessandro Crugnola’s Flash tracer extension of Firefox is a perfect runtime testing environment for Flash/Flex applications)

I need another browser with the regular Flash 9 player. This time I installed Opera. I opened Opera it said Flash player was not installed. Good. I downloaded Flash 9 player for Linux package and tried to install it manually this time. But my surprise, the Flash player installer only try to install on .mozilla folder, it say ‘do you want to install another folder’, but no option for you to install to other folder, for me, I want to push them into Opera folder /usr/lib/opera. How can I do that so? (I don’t have time to change that shell installer.)

I checked opera/plugins/ folder. I guess maybe I could copy libflashplayer.so file directly over there. Ok let me try. I copy it (sudo required). Then open Opera. It works, cool!