Apache Flex Proposal

Abstract

Apache Flex is an application framework for easily building Flash-based applications for mobile devices, the browser and desktop.

Proposal

Apache Flex allows developers to target a variety of platforms, initially Apple iOS, Google Android, RIM BlackBerry, Microsoft Windows, and Mac OS X with a single codebase. Flex provides a compiler, skinnable user-interface components and managers to handle styling, skinning, layout, localization, animation, module-loading and user interaction management.

Background

Apache Flex is the software evolution of the popular Adobe Flex SDK project. Adobe Flex SDK evolved from the need to provide developers with an easy programming model for creating rich Internet applications that can run in the browser, on the desktop or on mobile devices.

Adobe Flex SDK has always focused on a single goal: to provide application developers with all of the constructs needed to boost their productivity while building large-scale, visually expressive applications. This meant that Flex provided all the traditional UI components in a way that designers and developers could interact with them along with a dynamic scripting language, ActionScript, and a declarative markup language, MXML.

Adobe will donate the Flex trademark to the Apache Software Foundation as part of the incubation process. The source code, documentation and related assets will all be contributed to the Apache Foundation as Flex.

Rationale

Content developers need to target multiple screens and the cost of creating applications native to every target platform is high. Additionally, the dominant window to the web is quickly becoming devices, mostly phones, and delivering consistent experiences is key. The Apache Flex project exists to bring the focus back to a consistent development model, one where a single application can run the exact same way across the web, desktop and mobile devices.

Initial Goals

Current Status

Flex is a mature software project. 1.0 was shipped in March of 2004 with 7 major releases having shipped since. The most recent release was the 4.6 version which shipped on November 29th, 2011.

This proposal discussion on the incubator general mailing list is done and the vote to accept the podling has passed.

Once mailing lists are created (https://issues.apache.org/jira/browse/INFRA-4260), people will be able to subscribe to the podling's dev list by sending a message to flex-dev-subscribe@incubator.apache.org .

Meritocracy

The Adobe Flex source code is available to the community on the Adobe opensource site: http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK. Currently, while the community has been invited to contribute patches to the codebase, only Adobe employees decided on which patches to commit. There were no external committers and this caused frustration in the community.

Going forward, both Adobe and our community are eager to become one single merit-based community working together. To that end, Adobe employes only have a minority representation on the initial committers list. Adobe is working to educate our community with meetings and blog posts on how the Apache model makes this possible for them.

We have made it clear to our community that going forward, the community, rather than Adobe, will determine the future of Flex.

Community

The community surrounding Flex is vast, diverse, distributed globally, and with all levels of proficiency in software development. The common thread of application development binds all Flex developers together.

It is estimated that there is between 350,000 and 500,000 Flex developers worldwide. Precise numbers are impossible for us to know due to the open nature of Flex. A blog post calling for initial committers received over 60 responses in two days. The FlexCoders mailing list, a general-purpose mailing list for anyone working with Flex, has over 9000 members. A quick look on the Adobe Forums or Twitter’s #AdobeFlex hashtag usually shows activity within minutes. The community is engaged and active daily and incredibly excited by Adobe’s move to contribute Adobe Flex SDK to Apache. The community is responsive, inclusive and honestly emphatic when it comes to bettering Flex for application development.

Alignment

The only way the Apache Flex project can work is if it is an open, transparent and collaborative effort. The project has now grown in mind-share and community enough that we believe it is time we work with a foundation to see the code mature in a fashion consistent with our values.

Known Risks

Moving from a corporate-led project to the Apache model of collaboration is a challenge, and Adobe is committed to help making the transition as smooth as possible, by delegating employees to work on the new project. We would like to see more free collaboration from the community but with the same principles that has kept Flex with the high-quality design and ease-of-use it has maintained under Adobe’s governing hand.

Documentation

We will, over time, be moving all of the documentation, including localized versions, from Adobe (http://www.adobe.com/devnet/flex/documentation.html) to the Apache Software Foundation.

Initial Source

All code related to the Apache Flex project can be found on SVN here: http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/

Source and IP Submission Plan

External Dependencies

Some parts of Flex development rely on third-party libraries. The complete list is still being determined but some are:

Licensing of these dependencies will have to be checked, and possibly adapted, to allow their use in Apache Flex.

Required Resources

Mailing Lists

Subversion Directory

Issue Tracking:

Wiki will be requested as needed.

Initial Committers

Sponsors

Champion

Nominated Mentors

Sponsoring Entity