
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2016-10-09
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Frequently Asked Questions | Maven</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />

		<link href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/spacelab/bootstrap.min.css" rel="stylesheet" />
		<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="./css/bootswatch.css" rel="stylesheet" />
		<link href="./css/reflow-skin.css" rel="stylesheet" />


		<link href="./css/lightbox.css" rel="stylesheet" />

		<link href="./css/site.css" rel="stylesheet" />
		<link href="./css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->



	</head>

	<body class="page-dev-faq project-flex-site" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="index.html" title="Home">Home</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="about-whatis.html" title="What is Flex?">What is Flex?</a></li>
									<li ><a href="about-features.html" title="Features">Features</a></li>
									<li ><a href=".html" title="Tour de Flex">Tour de Flex</a></li>
									<li ><a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a></li>
									<li ><a href="about-people.html" title="The Team">The Team</a></li>
									<li ><a href="about-history.html" title="Project History">Project History</a></li>
									<li ><a href="about-assets.html" title="Logo and Assets">Logo and Assets</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="community-getinvolved.html" title="How to get involved">How to get involved</a></li>
									<li ><a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a></li>
									<li ><a href="community-3rdparty.html" title="Third-Party">Third-Party</a></li>
									<li ><a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a></li>
									<li ><a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a></li>
								</ul>
							</li>
							<li class="dropdown active">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li class="active"><a href="" title="Developer FAQ">Developer FAQ</a></li>
									<li ><a href="dev-sourcecode.html" title="Source Code">Source Code</a></li>
									<li ><a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="doc-getstarted.html" title="Getting Started">Getting Started</a></li>
									<li ><a href="doc-videos.html" title="Videos">Videos</a></li>
									<li ><a href=".html" title="Flex ASDocs">Flex ASDocs</a></li>
									<li ><a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a></li>
									<li ><a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a></li>
									<li ><a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a></li>
									<li ><a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Apache <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a></li>
									<li ><a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a></li>
									<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a></li>
									<li ><a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Download Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href=".html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a></li>
									<li ><a href=".html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a></li>
									<li ><a href=".html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a></li>
									<li ><a href=".html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a></li>
									<li ><a href=".html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a></li>
									<li ><a href=".html" title="Blaze DS Source Code">Blaze DS Source Code</a></li>
									<li ><a href=".html" title="Tour De Flex Source Code">Tour De Flex Source Code</a></li>
									<li ><a href=".html" title="Squiggly Spell Checker">Squiggly Spell Checker</a></li>
									<li ><a href=".html" title="Flex Utilities">Flex Utilities</a></li>
									<li ><a href=".html" title="Previous Versions">Previous Versions</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="http://flex.apache.org/" id="bannerLeft"><img src="http://flex.apache.org/images/logo_01_fullcolor-sm.png" alt='"'Apache Flex'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://www.apache.org" id="bannerRight"><img src="http://www.apache.org/images/feather-small.gif" alt='"'An Apache Project'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="projectVersion version-date">Version: 0.8.0-SNAPSHOT</li>
				<li class="divider">|</li>
				<li class="publishDate version-date">Last Published: 2016-10-09</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span12">
			<div class="body-content">
<!-- Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License. --> 
<div class="page-header">
 <h1>Frequently Asked Questions</h1>
</div> 
<p>This page covers some frequently asked questions that we get on the mailing lists. We will be updating it with more content as time goes on.</p> 
<div class="section"> 
 <h2 id="Can_I_have_write_access_to_GIT">Can I have write access to GIT?</h2> 
 <p>Due to legal reasons, only people who have been elected as committers have write access to directly update the code in version control. We at Apache take the legality of code seriously, and nothing would be worse than somebody contributing code that they don’t own and a 3rd party having a legal claim to our framework. That being said, you can submit code by providing <tt>.patch</tt> files (diff files) to the project. Check out the <a href="community-getinvolved.html">Get Involved</a> page for more details on how to do that.</p> 
</div> 
<div class="section"> 
 <h2 id="How_is_this_different_than_Adobe_Flex">How is this different than Adobe Flex?</h2> 
 <p>In November, 2011, Adobe announced they were no longer supporting Adobe Flex. Instead of just killing the framework they donated it to Apache. Apache Flex 4.8.0 is essentially the exact same version of Flex as Adobe’s last official version. Since that initial donation the Apache Flex team has been working hard on fixing bugs, providing additional components and finishing unfinished components. As we progress through additional versions, we will be less and less like Adobe’s Flex framework, but we will strive to be compatible with it.</p> 
 <p>Adobe has offered some of their customers extended support contracts, and may produce additional versions, but that is unlikely. Future support of the Flex Framework is through this project.</p> 
 <p>There are a few differences you should be aware of in the Apache version of the SDK. Most notably, the Flash Player will not cache RSLs created with Apache Flex. You can find out more in the RELEASE_NOTES file in your SDK download</p> 
</div> 
<div class="section"> 
 <h2 id="Ive_used_Adobe_Flex_before._How_do_I_start_using_Apache_Flex">I’ve used Adobe Flex before. How do I start using Apache Flex?</h2> 
 <p>The quickest way to start using Apache Flex is to use the Apache Flex SDK Installer. This AIR application will download the latest version of the Apache Flex SDK and all the required components to make it work. It will also set the proper options so that the SDK can be used with your favorite IDE such as Flash Builder, FDT, Flash Develop or IntelliJ. To use the SDK Installer, go to the <a href="installer.html">“Download the SDK Installer”</a> link under the downloads menu above. It will walk you through the rest of the process.</p> 
 <p>Once you have the SDK on your computer, it should be just like the old Adobe SDK you were already using. Make sure to check the RELEASE_NOTES file for a full list of differences.</p> 
</div> 
<div class="section"> 
 <h2 id="Why_are_you_not_using_GitHub">Why are you not using GitHub?</h2> 
 <p>A mirror of the project is currently available on GitHub, but we are not accepting pull requests at this time. (However we can accept patch files generated from pull requests.)</p> 
</div> 
<div class="section"> 
 <h2 id="I_dont_have_time_to_read_the_mailing_lists._How_can_I_keep_up_with_the_project">I don’t have time to read the mailing lists. How can I keep up with the project?</h2> 
 <p>The <a class="externalLink" href="http://www.spoon.as">Open Spoon Foundation</a> has been providing monthly updates as to the goings-on of the Apache Flex project through their “Apache Revue” newsletter. You can also check out the <a class="externalLink" href="http://blogs.apache.org/flex/">Apache Flex Blog</a> for critical updates.</p> 
</div> 
<div class="section"> 
 <h2 id="Where_can_I_find_the_Apache_Flex_Roadmap">Where can I find the Apache Flex Roadmap?</h2> 
 <p>We do not have a roadmap. That is not the Apache Way™. Apache Flex is a project run and maintained by volunteers. The way that Apache works is that each developer do what they are passionate about. There is no release schedule, and therefore, there is no official roadmap. You can always make suggestions via JIRA or the mailing lists for new features that you wish to see and if they are good enough a developer will pick them up. You can always contribute your own code for new features as well. You can find out more about contributing code on the <a href="community-getinvolved.html">Get Involved page</a>.</p> 
 <p>All that being said, you can check out what developers are working on by peeking in the “Whiteboard” area of the source control. There is a lot of cool projects incubating there that may (or may not) make it into future releases.</p> 
</div> 
<div class="section"> 
 <h2 id="What_happens_to_my_projects_if_Adobe_Discontinues_the_Flash_Player">What happens to my projects if Adobe Discontinues the Flash Player?</h2> 
 <p>It is true that current Flex projects are tied to either the Adobe Flash Player or Adobe AIR. We have been making great strides to compile projects to native JavaScript, therefore bypassing the Flash Player in the browser. Adobe has made a commitment to support the Flash Player and our current runtime for at least 5 years from the time they donated the project to Apache. You can find out more about their roadmap on the <a class="externalLink" href="http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html">Adobe Flash Whitepaper</a>.</p> 
 <p>Event if Adobe no longer created new versions of the Flash Player, it is still had an incredible install base (being installed on over 90% of internet-connected PCs). If the Flash Player were no longer updated today, it would still be installed just about everywhere.</p> 
</div> 
<div class="section"> 
 <h2 id="Will_my_code_work_on_Platform_X">Will my code work on Platform X?</h2> 
 <p>The currently released version of Apache Flex will output to either SWF of AIR. SWF is supported within browsers on Windows 2000 through Windows 8, Mac OSX, Linux (using Chrome), many phones and some smartphones. AIR allows you to take your Flex application and output native applications for Android (2.2+), iOS (3+),certain BlackBerry QNX devices (Playbook), MacOSX and Microsoft Windows.</p> 
 <p>We are currently working on supporting JavaScript as an output. This will increase support to anywhere HTML5 is supported.</p> 
 <p>Other platforms may be added if Adobe AIR beings to support them. Unfortunately, we are not in control of adding additional support for other platforms at this time.</p> 
</div> 
<div class="section"> 
 <h2 id="Can_I_submit_apps_I_make_with_Apache_Flex_to_App_Store_X">Can I submit apps I make with Apache Flex to App Store X?</h2> 
 <p>By using Adobe AIR with Apache Flex, you can produce applications that can be submitted to the Apple App Store, Android Market, Apple Mac App Store and Blackberry App World. There are very successful projects that have been submitted to all of the above. In fact, you can actually use one code base to create apps for each of the different platforms to submit to all of the different stores!</p> 
 <p>Apache Flex coupled with Adobe AIR allows you to make Apple iOS Applications from a Windows PC. You will need a Mac in order to submit the app to the store.</p> 
</div> 
<div class="section"> 
 <h2 id="Does_Apache_Flex_cost_money">Does Apache Flex cost money?</h2> 
 <p>No. This is a completely open-source project and uses the <a href="about-licensing.html">Apache License v. 2.0</a>. This allows you to use the SDK and any outputs of the SDK for personal and commercial use with virtually no restrictions. Some of the recommended tooling (not produced by Apache) costs money, however you are more than free to use the included command-line compilers and toolsets.</p> 
</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span9 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">About Flex</li>
						<li >
							<a href="about-whatis.html" title="What is Flex?">What is Flex?</a>
						</li>
						<li >
							<a href="about-features.html" title="Features">Features</a>
						</li>
						<li >
							<a href=".html" title="Tour de Flex">Tour de Flex</a>
						</li>
						<li >
							<a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a>
						</li>
						<li >
							<a href="about-people.html" title="The Team">The Team</a>
						</li>
						<li >
							<a href="about-history.html" title="Project History">Project History</a>
						</li>
						<li >
							<a href="about-assets.html" title="Logo and Assets">Logo and Assets</a>
						</li>
						<li class="nav-header">Community</li>
						<li >
							<a href="community-getinvolved.html" title="How to get involved">How to get involved</a>
						</li>
						<li >
							<a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a>
						</li>
						<li >
							<a href="community-3rdparty.html" title="Third-Party">Third-Party</a>
						</li>
						<li >
							<a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a>
						</li>
						<li >
							<a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a>
						</li>
						<li class="nav-header">Development</li>
						<li class="active">
							<a href="#" title="Developer FAQ">Developer FAQ</a>
						</li>
						<li >
							<a href="dev-sourcecode.html" title="Source Code">Source Code</a>
						</li>
						<li >
							<a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a>
						</li>
						<li class="nav-header">Documentation</li>
						<li >
							<a href="doc-getstarted.html" title="Getting Started">Getting Started</a>
						</li>
						<li >
							<a href="doc-videos.html" title="Videos">Videos</a>
						</li>
						<li >
							<a href=".html" title="Flex ASDocs">Flex ASDocs</a>
						</li>
						<li >
							<a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a>
						</li>
						<li >
							<a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a>
						</li>
						<li class="nav-header">About Apache</li>
						<li >
							<a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a>
						</li>
						<li class="nav-header">Download Flex</li>
						<li >
							<a href=".html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a>
						</li>
						<li >
							<a href=".html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a>
						</li>
						<li >
							<a href=".html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="Blaze DS Source Code">Blaze DS Source Code</a>
						</li>
						<li >
							<a href=".html" title="Tour De Flex Source Code">Tour De Flex Source Code</a>
						</li>
						<li >
							<a href=".html" title="Squiggly Spell Checker">Squiggly Spell Checker</a>
						</li>
						<li >
							<a href=".html" title="Flex Utilities">Flex Utilities</a>
						</li>
						<li >
							<a href=".html" title="Previous Versions">Previous Versions</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-description">
					<blockquote>This is a very good project doing interesting
                and valuable things.</blockquote>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2016 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p>
				<p><a href="http://github.com/andriusvelykis/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

	<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
	<script src="./js/lightbox.min.js"></script>
	<script src="./js/reflow-scroll.js"></script>

	<script src="./js/reflow-skin.js"></script>

	</body>
</html>
