Apache Flex
| Company type | Open source software project |
|---|---|
| Industry | Software development |
| Predecessor | Adobe Flex |
| Founded | 2011 |
| Founder | Macromedia, Adobe Systems |
Area served | Worldwide |
| Products | Flex SDK, Apache Royale (formerly FlexJS) |
| Owner | Apache Software Foundation |
| Website | flex |
Apache Flex, initially known as Adobe Flex, is a software development kit (SDK) designed for building and deploying cross-platform rich web applications on the Adobe Flash platform. Originally created by Macromedia and subsequently acquired by Adobe Systems, the Flex SDK was contributed to the Apache Software Foundation in 2011, where it was elevated to a top-level project by December 2012.
The release of the Flex 3 SDK in 2008 under the MPL-1.1 allowed developers to utilize common Integrated development environments (IDEs) such as IntelliJ IDEA, Eclipse, the open source FlashDevelop, and Adobe’s proprietary Adobe Flash Builder for application development.
In 2014, the Apache Software Foundation introduced FlexJS, a tool designed to cross-compile ActionScript 3 code into JavaScript. This enabled applications to run directly in browsers without needing Adobe Flash Player and on devices not supported by Adobe AIR. In 2017, FlexJS was renamed Apache Royale, an open-source frontend framework that permits developers to write in ActionScript 3 and MXML and deploy applications across web, mobile, and desktop environments using Apache Cordova. Apache Royale is still under beta development.
Overview
Flex employs MXML for defining user interface layout and other static elements, while dynamic functionality and backend logic are implemented using ActionScript. Execution requires either Adobe AIR or the Flash Player runtime environment.
Macromedia Flex 1.0 and 1.5
The initial versions, Flex 1.0 and 1.5 by Macromedia, were aimed at enterprise-level application development with a licensing fee around US$15,000 per CPU. Deployment necessitated a Java EE application server that compiled both MXML and ActionScript into Flash (SWF) files. Each server license included five seats for the Flex Builder IDE.
Adobe Flex 2
With the introduction of Flex 2, Adobe revised its licensing strategy by making the core Flex 2 SDK—which included command-line compilers and a comprehensive UI component library—available as a free download. This allowed developers to build and deploy complete Flex applications without any limitations compared to those developed with the Flex Builder IDE.
Flex Builder 2 was redeveloped on top of the open source Eclipse platform and offered in Standard and Professional editions; the Professional version featured an additional Flex Charting Components library.
Enterprise capabilities continued through Flex Data Services 2, which provided functionalities such as data synchronization, push messaging, publish-subscribe mechanisms, and automated testing support. Unlike prior releases, using Flex Data Services was optional during deployment.
Flex 2 introduced ActionScript 3, which aligned with the current ECMAScript standard at that time. This version required Flash Player 9 or later, incorporating a new virtual machine optimized specifically for ActionScript 3 execution.
Flex became the first product from Macromedia to be rebranded under the Adobe name.
Adobe Flex 3
On April 26, 2007, Adobe announced its intention to release the Flex 3 SDK (excluding the Flex Builder IDE and LiveCycle Data Services) under the terms of the Mozilla Public License. The initial beta release of Flex 3, codenamed Moxie, debuted in June 2007 featuring integration with Adobe Creative Suite tools, support for AIR (Adobe’s desktop runtime), along with enhanced profiling and refactoring features within the Flex Builder IDE.
Adobe Flash Builder and Flex 4
On March 22, 2010, Adobe launched Flex 4.0, internally referred to as Gumbo. Alongside this release, the development tool was rebranded from Adobe Flex Builder to Adobe Flash Builder. The update introduced several enhancements aimed at business users, including:
- Facilitating smooth cooperation between designers and developers
- Speeding up the process from initial design to final deployment
- Enhanced compiler efficiency, enriched language features, bidirectional component support, and improved text rendering through the Text Layout Framework
- Complete compatibility with Adobe Flash Player version 10 and above
- A more streamlined framework supporting additional deployment runtimes and runtime MXML
- Simplified skinning mechanisms compared to prior editions
- Integration capabilities with Adobe Flash Catalyst and customizable templates
Adobe Flash Builder is available in two editions: Standard and Premium. The Premium edition incorporates advanced testing utilities, memory and performance profiling tools, integration with automated testing frameworks such as FlexUnit, and command-line build options.
Adobe Flash Builder 4.5 and Flex 4.5
Adobe released Flash Builder 4.5 along with Flex 4.5 SDK on May 3, 2011, enabling developers to create Flex and ActionScript applications for platforms including Google Android, BlackBerry Tablet OS, and Apple iOS. Subsequent updates ensured comprehensive Flex app support on BlackBerry Tablet OS and iOS devices.
The Flex 4.5 SDK introduced new components and enhanced features while integrating seamlessly with Flash Builder 4.5 and Flash Catalyst CS 5.5. Its primary goals were:
- Supporting development across multiple screen types
- Further evolving the Spark skinning architecture and component library initially introduced in Flex 4
Adobe Flex 4.6.0
In November 2011, the release of Flex SDK 4.6 brought expanded Spark mobile components such as SplitViewNavigator, CalloutButton, SpinnerList, DateSpinner, and ToggleSwitch. This update also delivered performance improvements, broader platform compatibility, enhanced tooling support via Flash Builder 4.6, and better text processing capabilities.
Apache Flex 4.8.0 - incubating
The Apache Flex community unveiled the Flex 4.8.0-incubating release on July 25, 2012, aligning it closely with Adobe’s Flex 4.6.0 as a parity version. This marked the initial release under the Apache Software Foundation’s incubator program following Adobe’s donation of the Flex 4.6 source code. Significant milestones included:
- Addressing trademark concerns related to the Flex name
- Transitioning bug tracking responsibilities from Adobe to Apache JIRA
- Contributing the Mustela test suite to the Apache project
Apache Flex 4.9.0
On January 11, 2013, Apache Flex issued version 4.9.0 as its inaugural release as a fully established Apache project. This version featured:
- Addition of new locale options such as Australian English, British English, Canadian English, Greek, Swiss German, and Portuguese
- SDK support for Flash Player versions ranging from 10.2 up to 11.5
- Introduction of PostCodeFormatter and PostCodeValidator classes for managing international postal codes
- New VectorList and VectorCollection classes designed for efficient vector data manipulation
- Inclusion of Text Layout Framework (TLF) version 3.0.33 source code as part of the Apache donation
- Compatibility with Java 7 for SDK compilation processes
- Extensive enhancements to Mustella testing infrastructure
- Availability of an SDK installer optimized for integrated development environment (IDE) use
- Resolution of multiple critical bugs
Apache Flex 4.9.1
On February 28, 2013, the Apache Flex community issued version 4.9.1, a minor revision following the 4.9.0 release.
Apache Flex 4.10.0
Released on August 6, 2013, Flex 4.10.0 introduced:
- Compatibility with Flash Player up to version 11.8 and AIR runtimes through 3.8
- Continued support for Flash Player starting from version 10.2
- Added support for Linux platforms
- Introduction of 15 new Spark components
- Enhanced telemetry features alongside improved international date handling
- Mobile skins designed for 480 dpi resolution
- Resolution of more than 200 bugs
Apache Flex 4.11.0
On October 28, 2013, the community launched Flex 4.11.0, which included:
- Support extended to Flash Player 11.9 and AIR runtime version 3.9
- Performance enhancements for mx:AdvancedDataGrid and mx:DataGrid components
- An updated version of OSMF (Open Source Media Framework)
- Addition of new mobile datagrid and desktop callout UI components
- Mobile skins optimized for both 120 and 640 dpi displays
- Fixes addressing over 50 identified bugs
Apache Flex 4.12.0
Flex 4.12.0 was released on March 10, 2014, offering:
- Compatibility with Flash Player versions 12.0 and the beta of 13.0, as well as AIR runtime versions 4.0 and beta 13.0
- Improved mobile memory management and support for iOS7
- Boosted performance for mx:AdvancedDataGrid and mx:DataGrid controls
- Introduction of a MaskedTextInput component along with JSON support for ArrayCollection and ArrayList data structures
- Correction of more than 80 bugs
Apache Flex 4.12.1
On May 3, 2014, version 4.12.1 was made available, featuring:
- Support for Flash Player and AIR runtime at version 13.0
- A fix addressing project creation issues in Adobe Flash Builder when using the Apache Flex SDK
- Broadened mobile media query capabilities
- Resolution of over 20 bugs
Apache Flex 4.13.0
Released July 28, 2014, Flex 4.13.0 brought:
- Compatibility with Flash Player and AIR runtime version 14.0
- Debugging support in FDB for ActionScript Workers
- Addition of percentWidth property to GridColumn component
- Complete Chinese localization for all installers
- Fixes for more than 30 bugs
Apache Flex 4.14.0
The Apache Flex community rolled out version 4.14.0 on January 28, 2015, which included:
- Mobile theme support targeting iOS versions from 7 upwards and Android versions starting at 4.x
- A new Spark component skin named FlatSpark
- The Spark RichTextEditor component addition
- Native table handling capabilities within TLF (Text Layout Framework)
- Implementation of Promises/A+ specification support
- Correction of 54 bugs
Apache Flex 4.15.0
Flex version 4.15.0 was released on January 11, 2016, incorporating:
- Support for Flash Player versions ranging from 18 to 20
- AIR runtime compatibility spanning versions 18 to 20
- Resolution of approximately 30 bugs
Apache Flex 4.16.0
On March 14, 2017, Flex version 4.16.0 became available with:
- Support extended to Flash Player versions between 21 and 24
- AIR runtime compatibility from versions 21 through to 24
- Integration of FontAwesome version 4.7 support
- Fixes addressing around 37 bugs
LiveCycle Data Services
LiveCycle Data Services (previously known as Flex Data Services) serves as a server-side enhancement to the Flex SDK and Flash Builder IDE, deployed within Java EE environments. It enriches Flex applications by providing sophisticated server-based functions and forms part of Adobe’s enterprise solutions portfolio.
BlazeDS
BlazeDS, once an element of Adobe LiveCycle Data Services ES, has been contributed to the open-source community under the LGPL v3 license. It offers remoting and messaging functionalities free of charge to Adobe developers and includes the AMF binary data protocol specification published by Adobe to promote broad adoption across major server platforms.
Flex and ColdFusion
Flex 2 offers integration with ColdFusion MX 7, featuring enhanced Flash Remoting capabilities that support ActionScript 3, along with a Flex Data Services event gateway and assembler utilities. Extensions for Flex Builder include wizards designed to accelerate application creation when working with ColdFusion. Additionally, a portion of Flex is incorporated within the ColdFusion MX 7 middleware to facilitate the development of rich forms.
Application Frameworks
A variety of application frameworks exist to assist Flex developers by delivering structured methodologies and recommended practices:
- Tide (integrated within Granite Data Services)
- Swiz
- Parsley
- Cairngorm
- PureMVC
- DropAS3
- Fabrication
- Mate
- RobotLegs
Notable sites using Flex
- Sherwin-Williams color visualizer tool
- Yahoo! Messenger for the Web platform
- BBC iPlayer desktop downloader application
- mint.com financial management service
- ChessCube online chess platform
- BigBlueButton web conferencing system
- HBO Go streaming service
- VMware vSphere Web Client interface
See also
- FXG format specification
- List of rich web application frameworks