<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dreaming in Flash &#187; SVN</title>
	<atom:link href="http://www.dreaminginflash.com/category/svn/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dreaminginflash.com</link>
	<description>There is no universally agreed-upon biological definition of dreaming</description>
	<lastBuildDate>Mon, 12 Jul 2010 15:22:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Automating the Build Process &#8211; Part 1</title>
		<link>http://www.dreaminginflash.com/2007/11/30/automating-the-build-process-part-1/</link>
		<comments>http://www.dreaminginflash.com/2007/11/30/automating-the-build-process-part-1/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 20:01:41 +0000</pubDate>
		<dc:creator>Tiago Bilou</dc:creator>
				<category><![CDATA[Actionscript3]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.dreaminginflash.com/2007/11/30/automating-the-build-process-part-1/</guid>
		<description><![CDATA[Improving the work flow in the development of Flash applications is something that has been in my mind for some time now, specially after seeing some presentations on the subject at Max Barcelona.
Usually the applications are not big, and are developed by a single programmer in less than a month, so they are manageable, but [...]]]></description>
			<content:encoded><![CDATA[<p>Improving the work flow in the development of Flash applications is something that has been in my mind for some time now, specially after seeing some presentations on the subject at Max Barcelona.</p>
<p>Usually the applications are not big, and are developed by a single programmer in less than a month, so they are manageable, but when a big one come along chaos is installed.</p>
<p><span id="more-48"></span><br />
Up until recently, every application developed was compiled (built) in the programmer's computer using Flex Builder. If, for some reason, another person had to do some changes and generate a new build, he would be, in lack of a better word, <em>screwed</em>. To make things worse, all the source code (actionscript classes) is in Subversion but all the graphical elements are in Adobe's Version Cue Server (for the designers).This means that you have to:</p>
<ul>
<li>get the source from the subversion</li>
<li>Get the .fla from Version Cue and compile an .swf or .swc</li>
<li>Place the .swf or .swc inside the project's folder</li>
<li>Discover which libraries the project uses</li>
<li>...</li>
</ul>
<p>There are many things wrong in the way we work, So we decided it was time to make some changes. After this "revolution" we hope to get on track. Some implementations are obvious and <strike>can</strike> should be used by everyone, others are more subtil and will only make sense in our work environment.</p>
<p>There are some great resources available out there. With this series we just want to describe in a detailed way all the steps we took to automate our build process</p>
<p><strong>Structure your Flex Projects</strong></p>
<p>The first thing we did was create a "structure template" for all our flex projects (this is one of the obvious ones).</p>
<p><img src="http://www.dreaminginflash.com/wp-content/uploads/2007/11/fb_directory_structure.png" alt="Flex Builderâ€™&lt;p&gt;s Directory Structure" /></p>
<p>This should look pretty obvious. The folders are all created manually after creating a new actionscript project inside flex builder.</p>
<p><strong>src</strong> - This folder holds all the classes used in the project. Make sure that when you create a new project you specify <em>src</em> as your Main source folder.</p>
<p><strong>externals</strong> - This was one of the __biggest__ improvements in our work flow. (read below)</p>
<p><strong>fla</strong> - This folder holds all the designer's FLA files. We make sure the export path on those files point to <em>../assets/</em></p>
<p><strong>assets</strong> - Holds all the assets needed by the application, like images, swf files, videos... Because the assets folder is not inside the main source file, all the references must be made using the ../ notation. (see deploy)</p>
<p><strong>docs</strong> - Holds the documentation for the project as well as ASDOC generated htmls docs for the API</p>
<p><strong>lib</strong> - Currently I'm only using this folder to store the <em>"flexTasks.jar"</em> file needed by ant to compile the project.</p>
<p><strong>bin</strong> - This is the folder used by Flex Builder and ANT to generate the swf file into.</p>
<p><strong>deploy</strong> - This is where we create the structure for the application deployment. Because the final swf file will look for assets in <em>../assets</em> we need to make sure the swf file is one level down the hierarchical directory structure.</p>
<p><img src="http://www.dreaminginflash.com/wp-content/uploads/2007/11/fb_deploy_structure.png" alt="Deploy Structure" /></p>
<p><strong>Use svn_externals</strong></p>
<p><em>"Sometimes it is useful to construct a working copy that is made out of a number of different checkouts. For example, you may want different subdirectories to come from different locations in a repository, or perhaps from different repositories altogether"</em> in <a href="http://svnbook.red-bean.com/en/1.1/ch07s04.html" target="_blank">svnbook</a></p>
<p>We always use a couple of libraries in our projects. Stuff like our own internal classes, <a href="http://code.google.com/p/tweener/" title="Tweener" target="_blank">Tweener</a> or <a href="http://code.google.com/p/papervision3d/" title="Papervision3D" target="_blank"> Papervision</a>. Before using externals, some developers in the flash team had the library classes stashed away somewhere in their hdd to centralize information and avoid replication, while others copied all the library classes into the main source folder every time they created a new project. Both approaches get the job done but, they both have flaws.</p>
<p>In order to successfully compile the project you had to have all the classes (dependencies) installed on your machine. This was troublesome most of the times when trying to compile the project in a machine other than the one used to program the application.</p>
<p>With <em>svn_externals</em> we don't keep copies of the library classes in our hdd. Every external class library has it's own svn project (prefixed by <em>external</em>). This means that in our svn server we have a project named <em>external_papervision</em>, or <em>extrenal_Tweener</em>. Having the libraries code in our svn server allows us to keep track of versions and we can easily specify which version we want to use in a given project.</p>
<p>We use externals not only for library classes, but for any external tool needed to compile the project (like ant).With svn_externals we guarantee that the project will build anywhere, anytime (because all the dependencies are taken care of by svn_externals).</p>
<p>Read how to do it in the <a href="http://svnbook.red-bean.com/en/1.1/ch07s04.html" target="_blank">svnbook</a></p>

]]></content:encoded>
			<wfw:commentRss>http://www.dreaminginflash.com/2007/11/30/automating-the-build-process-part-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SVN and Flex Builder</title>
		<link>http://www.dreaminginflash.com/2007/10/30/svn-and-flex-builder/</link>
		<comments>http://www.dreaminginflash.com/2007/10/30/svn-and-flex-builder/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 23:40:19 +0000</pubDate>
		<dc:creator>nuno</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://www.dreaminginflash.com/2007/10/30/svn-and-flex-builder/</guid>
		<description><![CDATA[Till recently I was using TortoiseSVN to do version control of my projects. I decided then I wanted to integrate SVN into Flex Builder and do all the svn commands from there directly. In the end it hasn't hard at all, I just followed the instructions from Ben Bishop's post.
Something me and others noticed here [...]]]></description>
			<content:encoded><![CDATA[<p>Till recently I was using <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> to do version control of my projects. I decided then I wanted to integrate SVN into Flex Builder and do all the svn commands from there directly. In the end it hasn't hard at all, I just followed the instructions from Ben Bishop's <a href="http://tdotblog.info/?q=node/4">post</a>.</p>
<p>Something me and others noticed <a href="http://www.pixelbox.net/2007/02/13/flex-builder-and-svn/">here</a> is that, since Flex Builder copies all the project root files and folders into "/bin", including the .svn directories, adding the "bin" directory to the repository will cause later problems.</p>
<p>A lot of people have posts about this and so nothing really new here but I wanted to write down what worked (and is working) for me. </p>

]]></content:encoded>
			<wfw:commentRss>http://www.dreaminginflash.com/2007/10/30/svn-and-flex-builder/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
