|Developer(s)||Apache Software Foundation and Adobe Systems|
|Initial release||June 20, 2004|
|Stable release||4.9.1 / February 28, 2013|
|Operating system||Windows, Mac OS X, Linux, Android, IOS, BlackBerry Tablet OS|
|Available in||Various between websites|
|Type||Software development kit application|
|License||Apache License version 2.0|
|Website||Apache Flex and Adobe Flex|
Apache Flex, formerly Adobe Flex, is a software development kit (SDK) for the development and deployment of cross-platform rich Internet applications based on the Adobe Flash platform. Initially developed by Macromedia and then acquired by Adobe Systems, Flex was donated by Adobe to the Apache Software Foundation in 2011 and promoted to a top-level project in December 2012.
The Flex 3 SDK was released under the open source Mozilla Public License in 2008. Consequently, Flex applications can be developed using standard IDEs, for example Eclipse, as well as the proprietary Adobe Flash Builder. The latest version of the SDK is version 4.9. It is released under version 2 of the Apache License.
Flex uses MXML to define UI layout and other non-visual static aspects, ActionScript to address dynamic aspects and as code-behind, and targets Adobe AIR or Flash Player as runtime of the resultant application. 
Macromedia Flex 1.0 and 1.5
Macromedia targeted the enterprise application development market with its initial releases of Flex 1.0 and 1.5. The company offered the technology at a price around US$15000 per CPU. Required for deployment, the Java EE application server compiled MXML and ActionScript on-the-fly into Flash applications (binary SWF files). Each server license included 5 licenses for the Flex Builder IDE.
Adobe Flex 2
Adobe significantly changed the licensing model for the Flex product line with the release of Flex 2. The core Flex 2 SDK, consisting of the command-line compilers and the complete class library of user interface components and utilities, was made available as a free download. Complete Flex applications can be built and deployed with only the Flex 2 SDK, which contains no limitations or restrictions compared to the same SDK included with the Flex Builder IDE.
Adobe based the new version of Flex Builder on the open source Eclipse platform. The company released two versions of Flex Builder 2, Standard and Professional. The Professional version includes the Flex Charting Components library.
Enterprise-oriented services remain available through Flex Data Services 2. This server component provides data synchronization, data push, publish-subscribe and automated testing. Unlike Flex 1.0 and 1.5, Flex Data Services is not required for the deployment of Flex applications.
Coinciding with the release of Flex 2, Adobe introduced a new version of the ActionScript programming language, known as Actionscript 3, reflecting the latest ECMAScript specification. The use of ActionScript 3 and Flex 2 requires version 9 or later of the Flash Player runtime. Flash Player 9 incorporated a new and more robust virtual machine for running the new ActionScript 3.
Flex was the first Macromedia product to be re-branded under the Adobe name.
Adobe Flex 3
On April 26, 2007 Adobe announced their intent to release the Flex 3 SDK (which excludes the Flex Builder IDE and the LiveCycle Data Services) under the terms of the Mozilla Public License. Adobe released the first beta of Flex 3, codenamed Moxie, in June 2007. Major enhancements include integration with the new versions of Adobe's Creative Suite products, support for AIR (Adobe's new desktop application runtime), and the addition of profiling and refactoring tools to the Flex Builder IDE.
Adobe Flash Builder and Flex 4
Some themes that have been mentioned by Adobe and have been incorporated into Flex 4 are as follows:
- Design in Mind: The framework has been designed for continuous collaboration between designers and developers.
- Accelerated Development: Be able to take application development from conception to reality quickly.
- Horizontal Platform Improvements: Compiler performance, language enhancements, BiDirectional components, enhanced text (Flex 4 includes the new Text Layout Framework).
- Full Support for Adobe Flash Player 10 and above.
- Broadening Horizons: Finding ways to make a framework lighter, supporting more deployment runtimes, runtime MXML.
- Simpler skinning than the previous versions.
- Integration with Adobe Flash Catalyst.
- Custom templates
Flash Builder is available in two versions: Standard and Premium, the premium adds the following features;
- Testing tools
- Memory and performance profilers
- An automated testing harness to connect to all the leading testing tools
- FlexUnit support
- command-line build capability
Adobe Flash Builder 4.5 and Flex 4.5
May 3, 2011, Adobe shipped Flash Builder 4.5 copying Flex 4.5 (SDK Only) which delivers full support for building Flex and ActionScript applications for Google Android, as well as support for building ActionScript applications for BlackBerry Tablet OS and Apple iOS. An update to Flash Builder 4.5 and Flex 4.5 adds support for building Flex applications for BlackBerry Tablet OS and Apple iOS.
Flex 4.5 SDK delivers many new components and capabilities, along with integrated support in Flash Builder 4.5 and Flash Catalyst CS 5.5. With the Adobe Flex 4.5 SDK which is governed by three main goals:
- Allow developers to use Flex for multiscreen application development
- Further mature the Spark (skinning) architecture and component set which was introduced in Flex 4
Apache Flex 4.8.0 - incubating
Jul 25, 2012, Apache Flex community releases Flex 4.8.0-incubating and it as a parity release with Adobe Flex 4.6.0. This is the first release under the incubator of the Apache Software Foundation and represents the initial donation of Adobe Flex 4.6 by Adobe System Inc.
Differences and highlights include:
- Flex trademark issues are largely cleared up
- Bug-tracking / issue-tracking system (JIRA) transferred from the Adobe bug tracker to Apache bug tracker
- Mustela test suite is donated to Apache
- New components added to a new namespace
Apache Flex 4.9.0
Jan 11, 2013, Apache Flex community releases Flex 4.9.0. This is the first release since Apache Flex became a top level project of the Apache Software Foundation.
Differences and highlights include:
- New locales for Apache Flex including Australian, British, Canadian, Greek, Switzerland (German) and Portuguese
- Apache Flex SDK can be compiled for any version of the Flash Player from 10.2 to 11.5
- New PostCodeFormatter and PostCodeValidator classes for international postcode formatting and validation
- New VectorList and VectorCollection classes for lists and collections of vectors
- New version of the TLF (Text Layout Framework), the TLF 3.0.33 source code is now included as it is now part of the Apache Flex donation
- Can use Java 7 to compile SDK (see README for instructions)
- Many improvements and updates to Mustella tests
- An SDK installer has also been created and is the recommended way of installing the Apache Flex SDK in an IDE
- Various important bug fixes
Apache Flex 4.9.1
Feb 28, 2013, Apache Flex community releases Flex 4.9.1. This was a minor update to 4.9.0.
Adobe Flash Catalyst
On April 23, 2012, Adobe announced to discontinue the production of Flash Catalyst in order to streamline the product line.
LiveCycle Data Services
LiveCycle Data Services (previously called Flex Data Services) is a server-side complement to the main Flex SDK and Flash Builder IDE and is part of a family of server-based products available from Adobe. Deployed as a Java EE application, LiveCycle Data Services adds the following capabilities to Flex applications:
- Remoting, which allows Flex client applications to invoke methods on Java server objects directly. Similar to Java remote method invocation (RMI), remoting handles data marshalling automatically and uses a binary data transfer format.
- Messaging, which provides the "publish" end of the "publish/subscribe" design pattern. The Flash client can publish events to a topic defined on the server, subscribe to events broadcast from the message service. One of the common use cases for this is real-time streaming of data, such as financial data or system status information.
- Data management services, which provides a programming model for automatically managing data sets that have been downloaded to the Flex client. Once data is loaded from the server, changes are automatically tracked and can be synchronized with the server at the request of the application. Clients are also notified if changes to the data set are made on the server.
- PDF document generation, providing APIs for generating PDF documents by merging client data or graphics with templates stored on the server.
Previously available only as part of Adobe LiveCycle Data Services ES, Adobe plans to contribute the BlazeDS technologies to the community under the LGPL v3. BlazeDS gives Adobe developers free access to the remoting and messaging technologies developed by Adobe.
Concurrent with pre-release of BlazeDS, Adobe is publishing the AMF binary data protocol specification, on which the BlazeDS remoting implementation is based, and is attempting to partner with the community to make this protocol available for major server platforms.
Granite Data Services
- AMF remoting.
- Comet-based real time messaging (Data Push).
- Integration with major application servers: JBoss, GlassFish, WebLogic, WebSphere, Tomcat, Jetty.
- Integration with major JavaEE frameworks: EJB3, Spring, Seam.
- Integration with major JPA engines: Hibernate, EclipseLink, OpenJPA, DataNucleus, all with full lazy-loading support.
- Code generation tools (called "Gas3") that replicate Java entities and services in ActionScript3.
- A Flex development frame work with weborb use is very common nowadays.
Flex and ColdFusion
Flex 2 offers special integration with ColdFusion MX 7. The ColdFusion MX 7.0.2 release adds updated Flash Remoting to support ActionScript 3, a Flex Data Services event gateway, and the Flex Data Services assembler. Flex Builder 2 also adds extensions for ColdFusion providing a set of wizards for RAD Flex development. A subset of Flex 1.5 is also embedded into ColdFusion MX 7 middleware platform, for use in the ColdFusion Flash forms feature. It is possible to use this framework to write rich Internet applications, although its intended purpose is for rich forms only.
There are a number of application frameworks available which help the developer solve some common tasks and set up the application structure according to best practices.
- Tide, part of the Granite Data Services platform.
Notable sites using Flex
- YouTube
- Sherwin-Williams color visualizer
- Sony Ericsson product catalog
- Yahoo! Messenger for the Web
- BBC iPlayer desktop downloader
- Behr (paint)
- CRT App - Quiz based learning system
Adobe has been developing a new file format for cross-application use. It has been specifically stated that the first aim was for use with Flex.
- List of rich Internet application frameworks
- Adobe Flash Catalyst
- Adobe AIR
- Curl RIA
- Microsoft Silverlight
- ZK Framework
- Qt Quick
- Illumination Software Creator
- Comparison of Adobe Flex charts
- "Adobe donates Flex to Apache". Techworld. Retrieved 2011-11-17.
- "Adobe keeps Flash, Flex close to the vest". Zdnet. Archived from the original on 7 February 2008. Retrieved 2008-02-09.
- "Adobe Flash Builder 4: features". Adobe.com. 2009-07-14. Archived from the original on 3 December 2010. Retrieved 2010-12-04.
- A much needed name change (Adobe Flash Builder)
- "Adobe Labs - Text Layout Framework". Labs.adobe.com. Archived from the original on 4 December 2010. Retrieved 2010-12-04.
- "Flex: Upgrade details". Adobe. 2009-07-14. Archived from the original on 3 December 2010. Retrieved 2010-12-04.
- Apache Flex 4.8.0-incubating Released
- Apache Flex 4.9.0 Released!
- Apache Flex 4.9.1 Released!
- Adobe Flash Catalyst
- Adobe Flash Catalyst discontinued