Introducing….Hero!

It is with great pleasure that we introduce to you the next release of the Flex SDK, code-named Hero. The Hero release has three main themes:

  • Multi-Screen Development: Allow developers to build applications that target the web, desktop or mobile devices using a single unified framework.
  • Spark Maturation: Polish and grow the Spark architecture by adding new Spark components and capabilities.
  • Large-Application Development: Support developers building large applications by improving fundamental Flex infrastructure pieces.

What’s even more exciting is that these three themes are being satisfied by taking advantage of new features in the next generation Flash Player and AIR runtimes. As those runtimes become publicly available, you will be able to download Hero builds and exercise in-development Hero features in order to learn and provide feedback.

Let’s dive into more detail for each of these themes.

Multi-Screen Development

We are currently building new mobile development capabilities into the Flex framework. The Hero release of Flex will enable developers to continue to create application experiences that translate well across platforms, in addition to making it easy to build applications that work well on a wide variety of mobile devices. Hero will augment a number of existing Flex components with mobile- and touch-optimized skins and functionality and will also add new components that support mobile-specific UI patterns. Developers already familiar with core Flex concepts like data binding, MXML and dynamic layout will be able to quickly leverage that knowledge into building applications that can target numerous mobile devices.

Previously, we had investigated splitting off mobile development into a separate, new branch of the Flex framework, code-named Slider. However, the rapid increases in performance on smartphone-class devices over the past year, combined with the highly optimized performance of Adobe runtimes on these devices, now make it feasible to support mobile use cases directly with the core Flex framework. This unification of both mobile- and desktop-targeted features into a single framework is one of the cornerstones of the Hero release.

You can learn much more about the mobile features targeted for the Hero release by reading the Flex and Mobile Whitepaper and the Flex and Mobile FAQ, as well as perusing Hero Mobile feature specifications on the new Hero open source site.

Spark Maturation

With the Flex 4 release, we introduced a new component and skinning architecture called Spark which allows for designers and developers to separate component logic from behavior and declaratively customize the visuals of a component. Spark has proven to be a key addition to the Flex framework, and the Hero release focuses on building more Spark-based components as well as providing new Spark capabilities to existing Flex features. Some of the new Spark components being offered in the Hero release include Spark Form, Spark Image and Spark DataGrid controls. These new Spark components not only provide parity with the previous MX versions, but also expose capabilities that allow for more modern component designs.


Large-Application Development

As people use Flex to build much more complex and mature applications, core pieces of the Flex framework must be retrofitted in order to support these efforts. The Hero release aims to improve the compilation experience (with regards to full and incremental compilation times as well as memory consumed during compilation) for large applications that make heavy use of modules or themes. Additionally, the support for linking runtime shared libraries has been enhanced to allow for smaller download size and faster startup time. You can read more information about the changes to RSL linkage by reading the Hero feature specification here.

Changes to Build Availability

More so then ever before, the Flex SDK is tied directly to the evolution of Flash Player and AIR. The Hero release is being built atop the latest, in-development (and as of yet un-released) Flash Player and AIR runtimes. Because of this tight coupling, we are unable to provide nightly builds that showcase in-development Flash Player and AIR features. Once the current in-development Flash Player and AIR runtimes are showcased in a public release, Hero nightly builds will resume. In the interim, we will release semi-regular builds that showcase Hero features not dependent on features under development in the latest Flash Player and AIR runtimes. We will be posting the first of such builds over the next coming days. These special builds will feature several of the items mentioned in the Spark Maturation and Large-Application Development themes above. Builds showcasing Hero mobile capabilities will follow in later months. Watch the Hero open source site for more information.

More Information

This is just the start of many documents outlining new features in the Hero release. Keep an eye on the Hero open source site for the sharing of whitepapers, special Hero builds, feature specifications and design documents. Additionally, we will soon be announcing our first Hero Open Iteration Meeting, where work completed in past iterations is reviewed and upcoming feature work is previewed. Also, you can find out more about AIR for Android and participate in the pre-release program by going here. We hope you are just as excited as we are with all of the new applications and workflows Hero will enable you to build!

Sincerely,
Flex SDK Product Team

Introducing….Hero!

It is with great pleasure that we introduce to you the next release of the Flex SDK, code-named Hero. The Hero release has three main themes:

  • Multi-Screen Development: Allow developers to build applications that target the web, desktop or mobile devices using a single unified framework.
  • Spark Maturation: Polish and grow the Spark architecture by adding new Spark components and capabilities.
  • Large-Application Development: Support developers building large applications by improving fundamental Flex infrastructure pieces.

What’s even more exciting is that these three themes are being satisfied by taking advantage of new features in the next generation Flash Player and AIR runtimes. As those runtimes become publicly available, you will be able to download Hero builds and exercise in-development Hero features in order to learn and provide feedback.

Let’s dive into more detail for each of these themes.

Multi-Screen Development

We are currently building new mobile development capabilities into the Flex framework. The Hero release of Flex will enable developers to continue to create application experiences that translate well across platforms, in addition to making it easy to build applications that work well on a wide variety of mobile devices. Hero will augment a number of existing Flex components with mobile- and touch-optimized skins and functionality and will also add new components that support mobile-specific UI patterns. Developers already familiar with core Flex concepts like data binding, MXML and dynamic layout will be able to quickly leverage that knowledge into building applications that can target numerous mobile devices.

Previously, we had investigated splitting off mobile development into a separate, new branch of the Flex framework, code-named Slider. However, the rapid increases in performance on smartphone-class devices over the past year, combined with the highly optimized performance of Adobe runtimes on these devices, now make it feasible to support mobile use cases directly with the core Flex framework. This unification of both mobile- and desktop-targeted features into a single framework is one of the cornerstones of the Hero release.

You can learn much more about the mobile features targeted for the Hero release by reading the Flex and Mobile Whitepaper and the Flex and Mobile FAQ, as well as perusing Hero Mobile feature specifications on the new Hero open source site.

Spark Maturation

With the Flex 4 release, we introduced a new component and skinning architecture called Spark which allows for designers and developers to separate component logic from behavior and declaratively customize the visuals of a component. Spark has proven to be a key addition to the Flex framework, and the Hero release focuses on building more Spark-based components as well as providing new Spark capabilities to existing Flex features. Some of the new Spark components being offered in the Hero release include Spark Form, Spark Image and Spark DataGrid controls. These new Spark components not only provide parity with the previous MX versions, but also expose capabilities that allow for more modern component designs.


Large-Application Development

As people use Flex to build much more complex and mature applications, core pieces of the Flex framework must be retrofitted in order to support these efforts. The Hero release aims to improve the compilation experience (with regards to full and incremental compilation times as well as memory consumed during compilation) for large applications that make heavy use of modules or themes. Additionally, the support for linking runtime shared libraries has been enhanced to allow for smaller download size and faster startup time. You can read more information about the changes to RSL linkage by reading the Hero feature specification here.

Changes to Build Availability

More so then ever before, the Flex SDK is tied directly to the evolution of Flash Player and AIR. The Hero release is being built atop the latest, in-development (and as of yet un-released) Flash Player and AIR runtimes. Because of this tight coupling, we are unable to provide nightly builds that showcase in-development Flash Player and AIR features. Once the current in-development Flash Player and AIR runtimes are showcased in a public release, Hero nightly builds will resume. In the interim, we will release semi-regular builds that showcase Hero features not dependent on features under development in the latest Flash Player and AIR runtimes. We will be posting the first of such builds over the next coming days. These special builds will feature several of the items mentioned in the Spark Maturation and Large-Application Development themes above. Builds showcasing Hero mobile capabilities will follow in later months. Watch the Hero open source site for more information.

More Information

This is just the start of many documents outlining new features in the Hero release. Keep an eye on the Hero open source site for the sharing of whitepapers, special Hero builds, feature specifications and design documents. Additionally, we will soon be announcing our first Hero Open Iteration Meeting, where work completed in past iterations is reviewed and upcoming feature work is previewed. Also, you can find out more about AIR for Android and participate in the pre-release program by going here. We hope you are just as excited as we are with all of the new applications and workflows Hero will enable you to build!

Sincerely,
Flex SDK Product Team

Mirroring Layouts in Flex

Now that Flex 4 is out the door, don’t be fooled into thinking the Flex SDK team is resting on their laurels! We are planning a followup release to Flex 4 which should come out in the first half of 2010. This release will include support for Flash Player 10.1 and AIR 2 as well as contain some new feature work and critical bugfixes.

The feature I’m most excited about is the new “layout mirroring” feature. This feature allows developers to mirror their layouts for right-to-left locales. The intent of this feature is to trivialize repurposing a Flex UI designed for a left-to-right language (like English or French) for a right-to-left language (like Hebrew or Arabic).

To support layout mirroring, some new APIs have been added. The two most important are layoutDirection (defined by the new interface mx.core.ILayoutDirectionElement) that is settable on any UIComponent, GraphicElement, SpriteVisualElement or UIMovieClip. [Note: on UIComponent, layoutDirection is a style and for GraphicElement, SpriteVisualElement and UIMovieClip, layoutDirection is implemented as a property].

The new layoutDirection property can be set to “ltr”, “rtl”, or null. When set to “rtl”, a mirroring transform is applied to mirror the layout. This mirroring transform is implemented atop the advanced layout features that was introduced in Flex 4.

What about text? First off, applications that depend on layout mirroring need to use FTE text which supports bi-directionality. If you have a Spark based application or component, FTE is used by default. If you intend to mirror a Flex 3 application, you need to enable FTE text in order to have bi-directional text. Once the text in your application is FTE-based, all you need to do is turn “on” bi-directionality by setting direction=”rtl” on the text components (this style inherits, so you can simply set it at the top-level and it will percolate down). This will ensure the default embedding level of all text blocks in your application is right-to-left.

There are definitely some parts of your application you will want to hand-tweak as the UI gets mirrored. However, in order to get your feet wet, I’d suggest taking the application you want to mirror and setting layoutDirection=”rtl” and direction=”rtl” on the top-level container of your application. This will percolate down through the display list and mirror according to the default Flex implementation.

So, what does this all mean? Well, on Tuesday, 3/31/10 the layout mirroring feature signed off! This is a huge accomplishment for the SDK Dev and QA teams as this feature required a lot of coordination across multiple engineers on the team (as well as input from our globalization teams and external customers). I encourage people to use the multi-SDK feature in Flash Builder 4 to download a build containing the newly landed layout mirroring feature, and give it a try. The best build to download would be 4.1.0.15132 or any build posted after that changelist. To learn more about the layout mirroring feature, please read the specification and if you find issues, file them in JIRA.

Mirroring Layouts in Flex

Now that Flex 4 is out the door, don’t be fooled into thinking the Flex SDK team is resting on their laurels! We are planning a followup release to Flex 4 which should come out in the first half of 2010. This release will include support for Flash Player 10.1 and AIR 2 as well as contain some new feature work and critical bugfixes.

The feature I’m most excited about is the new “layout mirroring” feature. This feature allows developers to mirror their layouts for right-to-left locales. The intent of this feature is to trivialize repurposing a Flex UI designed for a left-to-right language (like English or French) for a right-to-left language (like Hebrew or Arabic).

To support layout mirroring, some new APIs have been added. The two most important are layoutDirection (defined by the new interface mx.core.ILayoutDirectionElement) that is settable on any UIComponent, GraphicElement, SpriteVisualElement or UIMovieClip. [Note: on UIComponent, layoutDirection is a style and for GraphicElement, SpriteVisualElement and UIMovieClip, layoutDirection is implemented as a property].

The new layoutDirection property can be set to “ltr”, “rtl”, or null. When set to “rtl”, a mirroring transform is applied to mirror the layout. This mirroring transform is implemented atop the advanced layout features that was introduced in Flex 4.

What about text? First off, applications that depend on layout mirroring need to use FTE text which supports bi-directionality. If you have a Spark based application or component, FTE is used by default. If you intend to mirror a Flex 3 application, you need to enable FTE text in order to have bi-directional text. Once the text in your application is FTE-based, all you need to do is turn “on” bi-directionality by setting direction=”rtl” on the text components (this style inherits, so you can simply set it at the top-level and it will percolate down). This will ensure the default embedding level of all text blocks in your application is right-to-left.

There are definitely some parts of your application you will want to hand-tweak as the UI gets mirrored. However, in order to get your feet wet, I’d suggest taking the application you want to mirror and setting layoutDirection=”rtl” and direction=”rtl” on the top-level container of your application. This will percolate down through the display list and mirror according to the default Flex implementation.

So, what does this all mean? Well, on Tuesday, 3/31/10 the layout mirroring feature signed off! This is a huge accomplishment for the SDK Dev and QA teams as this feature required a lot of coordination across multiple engineers on the team (as well as input from our globalization teams and external customers). I encourage people to use the multi-SDK feature in Flash Builder 4 to download a build containing the newly landed layout mirroring feature, and give it a try. The best build to download would be 4.1.0.15132 or any build posted after that changelist. To learn more about the layout mirroring feature, please read the specification and if you find issues, file them in JIRA.

Status of Flex Data Visualization Components

There have been some questions over the last few days on the status of the Flex data visualization components and I wanted to make sure everyone knows our intentions.

First of all, you may notice that the 3.4 downloads page has an updated copy of the data visualization components (charts and the Advanced DataGrid and OLAPDataGrid). While we have made it easier to view the source (you don’t have to run the DMV-source.jar anymore), we still consider these components to be under the Flex Builder license, and the source to be considered “Professional Component Source Files” as described in the Flex 3 SDK EULA. So I hope that clears up the licensing question.

The other concern I’ve heard raised is that Flex 4 is not seeing many changes to the data visualization components, and therefore folks are worried that Adobe is not investing in them. Data visualization remains a “core competency” of Flex, and we absolutely plan on further development of these components along with supporting partners who have expanded upon them like the ILOG team at IBM. In the Flex 4 time frame we plan on making some improvements to the GroupingCollection, a fundamental piece of the ADG in the hopes of addressing one of the larger performance bottlenecks. However, we chose to take on 2 significant agendas that preempted doing significant work in the data visualization components.

The first is the data connectivity features in Flash Builder; the way we’re making it even easier to connect your data from the back end into the data visualization components in the front. We hope that this will make the data visualization components even more accessible for developers, making it simple to get up and running and build powerful data-driven applications.

The other agenda is the introduction of the Spark architecture. As everyone knows, this is a significant improvement to the fundamental component architecture in Flex, but it is too much to bring every component forward into the new model in a single release. While the charting components do not need to be modified significantly to fit well with Spark, the DataGrid (and therefore the AdvancedDataGrid) will take significant effort, and that is work we intend to do in the following release. Knowing that a fundamental re-architecture of the DataGrid is coming, we decided not to make significant investment in the current one for this release other than addressing the most important bugs.

So that’s the status and we hope you’ll understand and agree with our prioritization. If you’ve got any questions, feel free to comment here or post to the forums!

Flex 4 Beta Update

The Flex 4 and Flash Builder 4 betas have now been out for a few weeks and we’re very excited to see so many folks playing with them, asking questions on the forums, and posting examples of what they’ve done. From the time we first started showing Gumbo we’ve been monitoring feedback, especially around the experience of using the Spark and Halo components together. While we know that in general using both models together is possible, we’ve decided that there are a number of smaller things that we can do (many suggested by you) to make the experience that much better for both new and existing users.

We’ve therefore decided that we need some more time to take your feedback into account, and are going to release a second public beta this fall. This will give us an opportunity to make the enhancements required, and get additional feedback from the community. Given the second beta, we anticipate the release of Flex 4 and Flash Builder 4 to move from late 2009 to early 2010.

On the Open Source Flex SDK side, we’re planning to host another open iteration meeting in the next few weeks to discuss all of the changes that we’re considering. We’ll also be looking for feedback on things we can do in our docs and messaging to make sure that users from all backgrounds are successful in adopting Flex 4. Stay tuned here for the announcement of that meeting. And keep using the beta, filing bugs, and communicating with us via the forums!