Flex is a powerful, open source, front-end application framework that allows developers to easily create apps for both desktop and mobile using the same programming model, tools, and codebase. Developers may use Flex to build natively installed apps targeting iOS™, Android™, and BlackBerry® Tablet OS devices on mobile, or they can deploy traditional desktop applications on Windows®, macOS®, and Linux.
In the past, Flex applications were also deployed to web browsers using Adobe Flash Player. While browser deployment is no longer possible with Flex because Adobe discontinued its browser plugin in 2020, developers may continue to package Flex applications as native apps using the AIR SDK. Adobe has officially licensed the AIR SDK to HARMAN for continued development, and it is frequently updated to remain compatible with the latest operating system changes.
Developers build Flex applications using ActionScript and MXML. ActionScript is an object-oriented programming language that was created as superset of the ECMAScript standard (more widely known as JavaScript), with a stronger focus on classes, interfaces, and strong typing. MXML is a declarative markup language for laying out custom user interface components with powerful built-in features, like state management and data binding. Together, ActionScript and MXML provide developers with increased productivity and reduced cognitive load by separating concerns and eliminating redundant boilerplate.
Dozens of built-in user interface components (from buttons, sliders, lists, grids, drop-downs, and a variety of layout containers) make it easy to create many types of forms, dashboards, and visualizations. Developers can create high-level components with MXML to set properties and styles, listen for events, configure layouts, bind to data sources to automatically update views when the data changes, and use states to dynamically hide and show content. Flex also provides hooks into its lower-level component lifecycle that may be accessed from ActionScript to build completely new components that go beyond what Flex's built-in libraries provide out of the box, allowing developers to take full advantage of every graphical capability provided by Flash Player and AIR.
Flex offers a variety of visual customization options for its UI components, including styling with CSS or replacing their default appearance with completely custom skins created by a designer. Styles include fonts (both from those installed on the user's device and by embedding custom fonts), colors, borders, paddings, gaps, and other spacing. Skins may be created from both bitmap and vector graphics, imported from a variety of design tools. Similarly, developers may use built-in animations and transitions to delight users and guide them through complex navigations within the app. All motion is fully configurable, to allow it to be as flashy or understated as desired.
Usability features include data validation (to display helpful errors for users and prevent forms from being submitted until the issues are fixed), formatting numbers, currency, and other data strings, localization to display different strings in the application based on the user's language and region, displaying pop-up floating dialogs and modals that prevent mouse, touch, and keyboard access below until dismissed, drag-and-drop to move items within and between data-based controls, and accessibility hooks for screen readers and other assistive tooling.
Flex supports a variety of build, testing, and deployment tools. The Flex SDK includes powerful command line compilers, and a variety of editors and integrated development environments (IDEs) either include built-in Flex projects or well-supported third-party plugins for Flex that can build Flex applications directly in the editor. FlexUnit provides unit and integration testing, and Flex also supports powerful enterprise automation tools for functional testing of user interactions. For deployment, Flex apps can be distributed as native apps in platform-specific app stores, or using downloadable installers.
This manual brings together all of the features mentioned above into a single guide, to teach developers how to develop applications with Flex. Start by learning the ActionScript and MXML languages. Then, gain an understanding how to of compose the built-in UI components with layouts, states, and data binding to create powerful forms, dashboards, or data visualizations. Style and skin your Flex app to customize its appearance to match your brand's guidelines, integrating your workflow with a designer. Enhance usability with powerful features like validation, formatting, and drag-and-drop. Finally, create a release build, run tests, and deploy your app to your users.
Adobe and Adobe Flash are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries and are used by permission from Adobe. No other license to the Adobe trademarks are granted.