Apache Flex
View on Wikipedia| Apache Flex | |
|---|---|
| Developers | Apache Software Foundation and Adobe Systems |
| Initial release | June 20, 2004 |
| Stable release | 4.16.1
/ November 23, 2017 |
| Repository | Flex Repository |
| Written in | ActionScript, Java[1] |
| Operating system | Windows, macOS, Linux, Android, iOS, BlackBerry Tablet OS |
| Available in | Various between websites |
| Type | Software development kit application |
| License | 2012: Apache-2.0 2008: MPL-1.1 |
| 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 web applications based on the Adobe Flash platform. Initially developed by Macromedia and then acquired by Adobe Systems, Adobe donated Flex to the Apache Software Foundation in 2011[2] and it was promoted to a top-level project in December 2012.
The Flex 3 SDK was released under the MPL-1.1 license in 2008. Consequently, Flex applications can be developed using standard Integrated development environments (IDEs), such as IntelliJ IDEA, Eclipse, the free and open source IDE FlashDevelop, as well as the proprietary Adobe Flash Builder.
In 2014, the Apache Software Foundation started a new project called FlexJS to cross-compile ActionScript 3 to JavaScript to enable it to run on browsers that do not support Adobe Flash Player and on devices that do not support the Adobe AIR runtime.[3][4] In 2017, FlexJS was renamed to Apache Royale.[5][6] The Apache Software Foundation describes the current iteration of Apache Royale as an open-source frontend technology that allows a developer to code in ActionScript 3 and MXML and target web, mobile devices and desktop devices on Apache Cordova all at once.[7] Apache Royale is currently in beta development stage.[8]
Overview
[edit]Flex uses MXML to define UI layout and other non-visual static aspects, ActionScript to address dynamic aspects and as code-behind, and requires Adobe AIR or Flash Player at runtime to run the application.[9]
Versions
[edit]Macromedia Flex 1.0 and 1.5
[edit]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$15,000 per CPU.[10] 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
[edit]
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 solely with 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
[edit]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.[11] 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
[edit]Adobe released Flex 4.0 (code named Gumbo) on March 22, 2010.[12] The Flex 4 development environment is called Adobe Flash Builder,[13] formerly known as Adobe Flex Builder.
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[14]).
- 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,[15] 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
[edit]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
Adobe Flex 4.6.0
[edit]In November 2011, Adobe released Flex SDK update 4.6, with the following changes:
- More Spark mobile components including: SplitViewNavigator, CalloutButton, Callout, SpinnerList, DateSpinner, and ToggleSwitch
- Better performance
- Updated platform support
- Enhanced Tooling – Flash Builder 4.6
- Text Enhancements
Apache Flex 4.8.0 - incubating
[edit]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.[16]
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
Apache Flex 4.9.0
[edit]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.[17]
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
[edit]Feb 28, 2013, Apache Flex community releases Flex 4.9.1. This was a minor update to 4.9.0.[18]
Apache Flex 4.10.0
[edit]Aug 6, 2013, Apache Flex community releases Flex 4.10.0.[19]
Differences and highlights include:
- Support for latest versions of Flash Player (up to 11.8) and AIR runtimes (up to 3.8)
- Improved support for older Flash Player versions (down to 10.2)
- Linux support
- 15 new Spark components
- Advanced telemetry support
- Improved international support for dates
- 480 dpi mobile skins
- Over 200 bugs fixed
Apache Flex 4.11.0
[edit]Oct 28, 2013, Apache Flex community releases Flex 4.11.0.[20]
Differences and highlights include:
- Support for Flash Player 11.9 and AIR runtime 3.9
- mx:AdvancedDataGrid and mx:DataGrid speed improvements
- Updated OSMF to latest version
- mobile datagrid component
- 120 and 640 dpi mobile skins
- Desktop callout component
- Over 50 bugs fixed
Apache Flex 4.12.0
[edit]Mar 10, 2014, Apache Flex community releases Flex 4.12.0.[21]
Differences and highlights include:
- Support for Flash Player 12.0 and 13.0 beta and AIR runtime 4.0 and 13.0 beta[22]
- Improved mobile memory usage/performance
- Improved iPad and iOS7 support
- mx:AdvancedDataGrid and mx:DataGrid performance improvements
- New MaskedTextinput component
- JSON support for ArrayCollection and ArrayList
- Over 80 bugs fixed
Apache Flex 4.12.1
[edit]May 3, 2014, Apache Flex community releases Flex 4.12.1[23]
Differences and highlights include:
- Support for Flash Player 13.0 and AIR runtime 13.0
- Fixed Adobe Flash Builder bug, which inserts an incorrect attribute while creating a new project that uses Apache Flex SDK
- Extended mobile media query support
- Over 20 bugs fixed
Apache Flex 4.13.0
[edit]Jul 28, 2014, Apache Flex community releases Flex 4.13.0.[24]
Differences and highlights include:
- Support for Flash Player 14.0 and AIR runtime 14.0[25]
- FDB supports debugging ActionScript Workers
- percentWidth for GridColumn
- Add Chinese translations for all the installers of Flex
- Over 30 bugs fixed
Apache Flex 4.14.0
[edit]Jan 28, 2015, Apache Flex community releases Flex 4.14.0
Differences and highlights include:
- iOS 7+ and Android 4.x+ mobile theme support
- New Spark components skin: FlatSpark
- Spark RichTextEditor
- Native support for tables in TLF
- Promises/A+
- 54 bugs fixed
Apache Flex 4.15.0
[edit]Jan 11, 2016, Apache Flex community release Flex 4.15.0[26]
Differences and highlights include:
- Support for Flash Player 18, 19 and 20
- Support for AIR 18, 19, 20
- 30 reported bug fixes
Apache Flex 4.16.0
[edit]Mar 14, 2017, Apache Flex community release Flex 4.16.0[27]
Differences and highlights include:
- Support for Flash Player 21, 22, 23 and 24
- Support for AIR 21, 22, 23 and 24
- Support for FontAwesome 4.7
- 37 reported bug fixes
Related tools
[edit]LiveCycle Data Services
[edit]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 capabilities to Flex applications.
BlazeDS
[edit]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.
Flex and ColdFusion
[edit]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 web applications, although its intended purpose is for rich forms only.[citation needed]
Application Frameworks
[edit]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.
- Swiz
- Parsley
- Cairngorm
- PureMVC
- DropAS3
- Fabrication
- Mate
- RobotLegs
Notable sites using Flex
[edit]- Sherwin-Williams color visualizer[28]
- Yahoo! Messenger for the Web
- BBC iPlayer desktop downloader
- mint.com
- ChessCube
- BigBlueButton
- HBO Go
- VMware vSphere Web Client
See also
[edit]References
[edit]- ^ "Apache Flex SDK - GitHub". GitHub. Retrieved 2014-06-27.
- ^ "Adobe donates Flex to Apache". Techworld. Retrieved 2011-11-17.
- ^ "FlexJS - An introduction". 21 October 2014. Archived from the original on 16 December 2016. Retrieved 3 May 2018.
- ^ @ApacheFlex (22 April 2018). "Did you know we're creating the..." (Tweet) – via Twitter.
- ^ "FlexJS is now Apache Royale - Transpiled - AS3Lang Community". Archived from the original on 2018-05-04.
- ^ "Apache Flex Development - [DISCUSS] Name of the FlexJS Fork | Page 5". Archived from the original on 2018-05-04.
- ^ "Apache Royale™ - Code once. Run everywhere".
- ^ Rovira, Carlos (2020-05-15). "Apache Royale v0.9.7 released!". Apache Royale. Retrieved 2021-02-18.
- ^ "Adobe Flex 4.6 * Using Adobe Flex". Help.adobe.com. Retrieved 2013-07-21.
- ^ Krill, Paul. "Adobe pumps up rich Internet apps with Flex 2". NetworkWorld. Archived from the original on August 10, 2014. Retrieved 4 August 2014.
- ^ "Adobe keeps Flash, Flex close to the vest". Zdnet. Archived from the original on 2008-02-07. Retrieved 2008-02-09.
- ^ "Adobe Flash Builder 4: features". Adobe.com. 2009-07-14. Archived from the original on 2010-12-03. Retrieved 2010-12-04.
- ^ Brimelow, Lee (2009-05-15). "A much needed name change (Adobe Flash Builder)". leebrimelow.com. Archived from the original on 2014-08-21. Retrieved 2014-06-27.
- ^ "Adobe Labs - Text Layout Framework". Labs.adobe.com. Archived from the original on 2010-12-04. Retrieved 2010-12-04.
- ^ "Flex: Upgrade details". Adobe. 2009-07-14. Archived from the original on 2010-12-03. Retrieved 2010-12-04.
- ^ "Apache Flex 4.8.0-incubating Released". 25 July 2012.
- ^ "Apache Flex 4.9.0 Released!". 12 January 2013.
- ^ "Apache Flex 4.9.1 Released!". 28 February 2013.
- ^ "Apache Flex 4.10 Released!". 6 August 2013.
- ^ "Apache Flex 4.11 Released!". 28 October 2013.
- ^ "Apache Flex 4.12.0 Released!". 10 March 2014.
- ^ "Apache Flex 4.12.1 Release Notes". Archived from the original on June 27, 2014.
- ^ "Apache Flex 4.12.1 Released!". 3 May 2014.
- ^ "Apache Flex SDK 4.13.0 released". 28 July 2014.
- ^ "Apache Flex 4.13 Release Notes". Archived from the original on 2014-08-21.
- ^ "Apache Flex 4.15 Released! : Apache Flex". blogs.apache.org. 12 January 2016. Retrieved 2016-02-13.
- ^ "Apache Flex 4.16.0 Released! : Apache Flex". 14 March 2017. Retrieved 2017-03-14.
- ^ "Paint Color Visualizer". Sherwin-Williams. 2011-10-17. Retrieved 2013-07-21.
External links
[edit]Apache Flex
View on GrokipediaIntroduction
Overview
Apache Flex is an open-source software development kit (SDK) designed for creating rich internet applications (RIAs) and cross-platform applications for web, mobile, and desktop environments. It enables developers to build expressive user interfaces using declarative MXML for layout and styling, combined with imperative ActionScript for application logic and behavior.[3] This framework supports a component-based development model, where reusable UI components such as buttons, forms, and data grids can be customized with skins, themes, and dynamic interactions to deliver consistent experiences across platforms.[3] The primary purpose of Apache Flex is to allow a single codebase to deploy applications to multiple targets, including web browsers via Adobe Flash Player (end-of-life December 31, 2020), mobile devices on iOS and Android through Adobe AIR, and desktop platforms like Windows and macOS.[3][5] Core components include the Flex SDK, which provides the compiler, runtime libraries, accessibility features, and an automation-testing framework, while optional integrated development environments (IDEs) such as Adobe Flash Builder offer enhanced tooling for productivity.[3] This cross-platform compatibility reduces development overhead by abstracting platform-specific details, enabling native-like performance and deployment without rewriting code for each environment.[3] Originating from Macromedia's Flex toolkit released in 2004, the project was acquired by Adobe Systems and later donated to the Apache Software Foundation in 2011, becoming a top-level Apache project in 2012.[6] The latest stable release, Apache Flex SDK 4.16.1, was issued in November 2017, with subsequent updates to the SDK installer facilitating easier access to the framework's components.[1]Key Features
Apache Flex enables declarative user interface development through MXML, an XML-based language that allows developers to define layouts, components, and styling in a structured, tag-based format, which is then compiled alongside ActionScript code to produce applications. This approach simplifies the creation of complex interfaces by leveraging pre-defined components and declarative syntax, reducing the need for imperative code in UI construction.[3] The framework incorporates strong data binding mechanisms and adherence to model-view-controller (MVC) patterns, facilitating reactive user interfaces where changes in data models automatically update views without manual intervention. Built-in support for animations via classes like Animate in the spark.effects package, along with charting capabilities in the mx.charts package (including types such as AreaChart, BarChart, and PieChart), and advanced UI controls like the DataGrid for tabular data display and the AdvancedDataGrid for hierarchical data visualization, enhance developer productivity in building interactive and visually rich applications.[3][7][8][9][10] Apache Flex supports cross-platform compilation, targeting web browsers via SWF files (Flash Player end-of-life December 31, 2020), mobile devices through APK for Android and IPA for iOS using Adobe AIR, and desktop applications as EXE files on Windows or equivalent for other platforms.[3][5][11] It integrates seamlessly with web services via protocols like SOAP and REST, as well as offline capabilities enabled by the AIR runtime for native application deployment. Released under the Apache License 2.0, the framework permits free modification, distribution, and commercial use without restrictions. Performance is optimized through the runtime's just-in-time (JIT) compilation, which dynamically compiles ActionScript bytecode to native code for improved execution speed.[3][11][12]History
Macromedia Foundations (2004–2005)
In 2004, Macromedia developed Flex as a framework to address the limitations of Java applets and early dynamic web technologies in delivering rich, interactive user interfaces for enterprise applications, aiming to enable developers to build more responsive web-based experiences without the performance issues and deployment complexities of applets.[13][14] Flex 1.0 was released on March 29, 2004, introducing MXML as a declarative, XML-based language for defining user interfaces and early elements that would influence ActionScript 3.0, with a focus on server-side compilation of MXML and ActionScript code into Flash SWF files for browser deployment.[14][15] The release targeted enterprise developers by providing tools for creating data-driven applications, including Flex Data Services for backend integration. In late 2004, Flex 1.5 was released in November, enhancing the platform with built-in charting components for data visualization, support for runtime shared libraries (RSLs) and SWC compilation, and the introduction of Flex Builder as an improved integrated development environment based on Eclipse for visual design and coding.[16][17] Key innovations in these early versions included a tag-based UI declaration in MXML reminiscent of HTML, which simplified layout and component assembly, alongside seamless integration with backends like ColdFusion via Flash Remoting and J2EE servers through Flex Data Services for real-time data binding and messaging.[18][19] Macromedia's acquisition by Adobe Systems, completed on December 3, 2005, for $3.4 billion in stock, marked the end of the Macromedia era and paved the way for Flex's rebranding and further evolution under Adobe.[20][21]Adobe Development (2006–2011)
Following the acquisition of Macromedia by Adobe Systems in late 2005, Adobe rebranded the technology as Adobe Flex 2.0 and released it in June 2006, making the Flex SDK available for free download to broaden developer access.[22] This version introduced Flex Builder, an Eclipse-based integrated development environment that streamlined application creation, and added support for modular applications to enable efficient loading of components in large-scale rich internet applications (RIAs).[23] Additionally, Adobe provided a free single-CPU edition of Flex Data Services for enhanced data synchronization and collaboration features without server-side dependencies.[24] In February 2008, Adobe launched Flex 3.0, which focused on improving runtime performance through optimizations in the Flash Player and introduced advanced CSS styling for more customizable user interfaces.[25] Key enhancements included runtime shared libraries for module loading, reducing application size and load times for enterprise-scale deployments, along with built-in support for Adobe Integrated Runtime (AIR) to extend Flex applications to desktop environments.[26] These updates also integrated Flex Builder 3 with Adobe Creative Suite 3, providing new skinning templates compatible with Photoshop, Illustrator, Fireworks, and Flash for seamless asset import and workflow efficiency.[25] Adobe released Flex 4.0, codenamed Gumbo, on March 22, 2010, alongside Flash Builder 4, introducing the Spark component architecture designed for scalable, declarative user interfaces with improved skinning and layout flexibility.[27] This version incorporated FXG (Flash XML Graphics), a declarative format for vector graphics that facilitated integration with design tools, and previewed mobile development capabilities through Flash Builder "Burrito," an early access build supporting AIR-based apps for emerging platforms.[28] The Spark framework decoupled layouts from components, enabling features like 2D rotations, scalability, and around 30 new UI components to handle complex, responsive designs more effectively.[27] The Flex 4.5 release, codenamed Hero, arrived in April 2011 with Flash Builder 4.5, emphasizing native mobile packaging for iOS and Android devices via AIR, allowing developers to compile Flex apps into platform-specific installers without relying on browser plugins.[29] Subsequent updates in Flex 4.6, released in November 2011, extended this with hardware acceleration for smoother graphics rendering on mobile hardware and additional components for cross-platform functionality, including BlackBerry Tablet OS support. These advancements solidified Flex's role in mobile and desktop development through AIR, targeting diverse devices with consistent codebases.[30] Under Adobe's stewardship, Flex adopted a commercial focus, bundling Flash Builder with Creative Suite editions starting from CS3 to leverage Adobe's design ecosystem for professional workflows.[25] Enterprise adoption grew through integration with Adobe LiveCycle, enabling secure data services, forms processing, and business logic execution in Flex applications for sectors like finance and government.[31] By 2011, the Flash Platform—including Flex—had attracted over 3 million developers worldwide, reflecting peak usage amid expanding AIR deployments for desktop and mobile apps.[32]Transition to Apache (2012–Present)
In November 2011, Adobe announced its decision to donate the Flex SDK and related technologies, including BlazeDS, to the Apache Software Foundation to ensure continued open-source development amid shifting priorities away from the Flash platform.[33] The donation process culminated in the submission of an incubation proposal on December 20, 2011, with the Incubator PMC vote starting on December 27, 2011, and approving Flex's entry into the Apache Incubator on December 30, 2011, marking the project's formal transition to open-source governance under Apache.[2] Adobe provided the initial software grant on January 17, 2012, enabling the community to begin building upon the donated codebase.[2] The Apache Flex project released its first incubating version, SDK 4.8.0, on July 25, 2012, establishing parity with Adobe's final Flex 4.6 release while incorporating early community-driven improvements.[34] Following this, the project graduated to top-level Apache status on December 19, 2012, reflecting successful incubation and broad community engagement.[2] The inaugural top-level release, SDK 4.9.0, arrived on December 27, 2012, with subsequent minor update 4.9.1 on February 28, 2013, both highlighting initial community contributions such as enhanced build tools and bug resolutions.[35][36] Subsequent key releases focused on runtime compatibility and stability. SDK 4.10.0, released August 6, 2013, introduced support for AIR 4 and later versions, enabling better mobile and desktop deployments.[37] This trend continued through 4.12.1 in May 2014, which added AIR 20+ compatibility for improved cross-platform application distribution.[2] In 2016, SDK 4.13.0 (July 28, 2014) and 4.14.0 (February 3, 2015) primarily addressed bug fixes and performance optimizations to maintain reliability.[38][39] Further updates included 4.15.0 (January 12, 2016) and 4.16.0 (March 14, 2017), incorporating runtime enhancements for evolving Flash Player versions.[40][41] The final stable SDK release, 4.16.1 on November 23, 2017, ensured compatibility with Flash Player 29 and AIR 29, solidifying support for legacy web and desktop applications.[1] Under Apache governance, established as a top-level project in late 2012, the community has emphasized maintenance over major innovation, with a Meritocracy-based model guiding contributions through committers and podlings.[42] Efforts have prioritized compatibility with Adobe AIR for non-browser deployments, allowing Flex applications to persist in enterprise and desktop environments despite browser plugin limitations.[43] After 2017, core SDK development stagnated, with the Apache Flex SDK Installer updated to version 3.3.2 in July 2018 to streamline setup by bundling compatible runtimes and frameworks, though no new SDK features were added.[2] This halt aligned with Adobe's end-of-life announcement for Flash Player on December 31, 2020, which deprecated browser-based Flex applications due to security and performance concerns.[5] As of 2025, active development remains limited, with the project focusing on legacy support, occasional tool updates like the Flex SDK Converter (version 1.1.0 in February 2023), and guidance for migrating to AIR-based or alternative frameworks.[1] Community activity centers on sustaining existing deployments rather than new features, amid the broader shift away from plugin-dependent technologies.[43]Technical Architecture
Core Languages: MXML and ActionScript
Apache Flex primarily utilizes two core languages for application development: MXML, a declarative XML-based markup language, and ActionScript 3.0, an imperative object-oriented programming language. These languages work in tandem to separate UI declaration from business logic, enabling efficient creation of rich internet applications.[1] MXML serves as the declarative language for defining user interface components, layouts, states, and data bindings in Flex applications. It employs XML tags to represent visual elements, such as<s:VBox> for arranging child components in a vertical stack and <mx:Button> for interactive controls. MXML also supports embedding assets like images or stylesheets directly within tags and facilitates data binding through expressions enclosed in curly braces, for instance, {dataProvider} to link a list component to a dynamic data source. This approach allows designers and developers to focus on structure without delving into procedural code.[44]
ActionScript 3.0, based on the ECMAScript standard, provides the imperative capabilities for handling application logic, event processing, and custom component implementation. As an object-oriented language, it supports classes, interfaces, packages, inheritance, and encapsulation, making it suitable for complex behaviors like user interactions and data manipulation. For example, developers can define event handlers in ActionScript to respond to button clicks or data changes, ensuring responsive application functionality.[1][44]
The integration of MXML and ActionScript occurs through the Flex compilation process, where MXML declarations are transformed into equivalent ActionScript classes, allowing MXML to extend or interact with ActionScript code. Hybrid files with the .mxml extension can embed ActionScript directly via <script> tags, combining declarative UI with inline logic for concise development. This synergy enables, for instance, an MXML layout bound to an ActionScript data model, where changes in the model automatically update the UI via binding.[44][45]
MXML originated with the release of Flex 1.0 in March 2004, providing an XML vocabulary for UI specification from the framework's inception. ActionScript 3.0 was introduced alongside Flex 2.0 in June 2006, replacing ActionScript 2.0 to deliver enhanced performance, stricter typing, and improved support for large-scale applications through its advanced virtual machine compatibility.[44]
A representative example illustrates this integration in a simple application displaying a button that updates a label via data binding:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import spark.events.IndexChangeEvent;
[Bindable]
public var message:String = "Hello, Flex!";
protected function onButtonClick(event:MouseEvent):void {
message = "Button clicked!";
}
]]>
</fx:Script>
<s:VGroup horizontalCenter="0" verticalCenter="0">
<s:Label text="{message}" />
<s:Button label="Update Message" click="onButtonClick(event)" />
</s:VGroup>
</s:Application>
In this code, the MXML defines a vertical layout (<s:VGroup>) containing a bound label and button, while the embedded ActionScript handles the click event to update the bound message property, demonstrating declarative UI tied to imperative logic.[45][44]