<?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>lowpitch.com &#187; PureMVC</title>
	<atom:link href="http://lowpitch.com/blog/category/puremvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://lowpitch.com/blog</link>
	<description>Flex and flex ramblings.</description>
	<lastBuildDate>Sun, 24 Aug 2008 22:57:11 +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>PureMVC &#8211; Multicore vs Standard / Singlecore</title>
		<link>http://lowpitch.com/blog/puremvc-multicore-vs-standard-singlecore/</link>
		<comments>http://lowpitch.com/blog/puremvc-multicore-vs-standard-singlecore/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 18:48:57 +0000</pubDate>
		<dc:creator>lowpitch</dc:creator>
				<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Frameworks]]></category>

		<guid isPermaLink="false">http://lowpitch.com/blog/?p=5</guid>
		<description><![CDATA[I&#8217;ve recently started using the Actionscript 3.0 Multicore implementation of PureMVC in order to use the framework within a modular Flex application. At the time of writing, most of the PureMVC examples and tutorials online are relevant to the Standard, or Singlecore,  version of the framework.
In general, the methodology and syntax is indentical across both [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently started using the <a title="PureMVC Multicore implentation" href="http://puremvc.org/component/option,com_wrapper/Itemid,170/" onclick="javascript:pageTracker._trackPageview('/outbound/article/puremvc.org');" target="_blank">Actionscript 3.0 Multicore implementation of PureMVC</a> in order to use the framework within a modular Flex application. At the time of writing, most of the PureMVC examples and tutorials online are relevant to the Standard, or Singlecore,  version of the framework.</p>
<p>In general, the methodology and syntax is indentical across both versions of the framework. There are, however, a couple of minor differences which are pretty important, as without understanding these little quirks, many of the sample applications built using the Singlecore implementation will break when ported to Multicore.</p>
<p>The Standard version of PureMVC uses Singletons to provide access to the framework&#8217;s core actors. Within the framework, access to the Facade, Model, View and Controller are all provided using a standard <em>getInstance</em> method. To allow multiple instances of the framework to co-exist, the Multicore version of the framework uses <a title="Wikipedia definition of the Multiton pattern" href="http://en.wikipedia.org/wiki/Multiton" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">Multitons</a>, and then access to the various actors is provided within the framework by passing a unique instance key to the getInstance methods. The idea is simple &#8211; each separate instance of the framework has its own unique key, and so multiple instances of the actors may co-exist without interfering with each other.</p>
<p><span id="more-5"></span></p>
<p>In both versions of the framework, all instances of subclasses of <em>Notifier</em> (this includes <em>Mediator</em>, <em>Proxy</em>, <em>SimpleCommand</em> and <em>MacroCommand</em>) provide an easy way of accessing the facade using the protected property, <em>facade</em>.</p>
<p>The Standard implementation achieves this by creating an instance variable, defined as follows:</p>
<div class="codecolorer-container actionscript" style="height:35px;"><div class="codecolorer" style="font-family: monospace;">protected <span class="kw2">var</span> facade:IFacade = Facade.<span class="me1">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></div>
<p>The Multicore implementation achieves this by providing an implicit getter, defined as follows:</p>
<div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;">protected <span class="kw2">function</span> <span class="kw3">get</span> facade<span class="br0">&#40;</span><span class="br0">&#41;</span>:IFacade<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> multitonKey == <span class="kw2">null</span> <span class="br0">&#41;</span> <span class="kw3">throw</span> <span class="kw3">Error</span><span class="br0">&#40;</span> MULTITON_MSG <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="kw1">return</span> Facade.<span class="me1">getInstance</span><span class="br0">&#40;</span> multitonKey <span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div></div>
<p>Obviously, if you are using the Multicore instance and your code tries to access the facade (for example, to register a new <em>Proxy</em>, or to send a <em>Notification</em>) before the multitonKey has been set, it will not work as expected, and an exception will be thrown. In particular, if you try and access the facade within the constructor of your <em>Mediator</em> or <em>Proxy</em>, <strong>it will fail</strong>, and you&#8217;ll see an Exception with the message &#8220;<strong>Error: multitonKey for this Notifier not yet initialized!</strong>&#8220;. How are you supposed to know when the value of the multitonKey has been set?</p>
<p>Digging around in the framework, it becomes clear that when a <em>Mediator</em> is registered with the <em>View</em>, or when a <em>Proxy</em> is registered with the <em>Model</em>, a couple of things happen. Firstly, <em>Notifier</em>&#8217;s <em>initializeNotifier</em> method is called, with the multitonKey passed as the only parameter. Secondly, a reference to the <em>Proxy</em> or <em>Mediator</em> is stored in the relevant proxyMap or mediatorMap. Finally, a call to the <em>View</em> or the <em>Model</em>&#8217;s <em>onRegister</em> is made.</p>
<p>As a result, it looks like there are a couple of prime candidates when it comes to deciding where to place any interactions with the facade that must occur when the Proxy or Mediator is first created. You can override the initializeNotifier method, using code similar to:</p>
<div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;">override <span class="kw3">public</span> <span class="kw2">function</span> initializeNotifier<span class="br0">&#40;</span> <span class="kw3">key</span>:<span class="kw3">String</span> <span class="br0">&#41;</span>:<span class="kw3">void</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw3">super</span>.<span class="me1">initializeNotifier</span> <span class="br0">&#40;</span><span class="kw3">key</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="co1">// from here on, you can happily interact with the facade</span><br />
&nbsp; &nbsp; <span class="co1">// your code can be placed here</span><br />
<span class="br0">&#125;</span></div></div>
<p>or you can override the onRegister method, using code similar to:</p>
<div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;">override <span class="kw3">public</span> <span class="kw2">function</span> onRegister<span class="br0">&#40;</span> <span class="br0">&#41;</span>:<span class="kw3">void</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="co1">// from here on, you can happily interact with the facade</span><br />
&nbsp; &nbsp; <span class="co1">// your code can be placed here</span><br />
<span class="br0">&#125;</span></div></div>
<p>Personally, I prefer overriding onRegister, because it involves less typing (and therefore I&#8217;m less likely to bugger something up&#8230;).</p>
<p>So, now when looking at one of the popular PureMVC examples, originally written for the Standard version of the framework, it&#8217;s easy to see what would need to change if porting the application to the Multicore version. As an example, the <a href="http://puremvc.org/component/option,com_wrapper/Itemid,170/" onclick="javascript:pageTracker._trackPageview('/outbound/article/puremvc.org');" target="_blank">Flex Login</a> example contains a <em>Mediator</em> named <em>LoginPanelMediator</em>. Its constructor looks like:</p>
<div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;"><span class="kw3">public</span> <span class="kw2">function</span> LoginPanelMediator<span class="br0">&#40;</span>viewComponent: LoginPanel<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw3">super</span><span class="br0">&#40;</span><span class="kw3">NAME</span>, viewComponent<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="co1">//</span><br />
&nbsp; &nbsp; <span class="co1">// local reference to the LoginProxy</span><br />
&nbsp; &nbsp; _loginProxy = facade.<span class="me1">retrieveProxy</span><span class="br0">&#40;</span> LoginProxy.<span class="kw3">NAME</span> <span class="br0">&#41;</span> as LoginProxy;<br />
&nbsp; &nbsp; <span class="co1">//</span><br />
&nbsp; &nbsp; <span class="co1">// listen to events dispatched by its view component</span><br />
&nbsp; &nbsp; loginPanel.<span class="me1">addEventListener</span><span class="br0">&#40;</span> LoginPanel.<span class="me1">TRY_LOGIN</span>, login <span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div></div>
<p>We can see straight away that this would fail when ported to the Multicore version of the framework. During the constructor, the Mediator is trying to retrieve a proxy from the facade, but at this point the multitonKey will not have been set. We could refactor this class, resulting in a change to the constructor, and a newly created override of the onRegister function:</p>
<div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;"><span class="kw3">public</span> <span class="kw2">function</span> LoginPanelMediator<span class="br0">&#40;</span>viewComponent: LoginPanel<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw3">super</span><span class="br0">&#40;</span><span class="kw3">NAME</span>, viewComponent<span class="br0">&#41;</span>;<br />
<br />
&nbsp; &nbsp; <span class="co1">// listen to events dispatched by its view component</span><br />
&nbsp; &nbsp; loginPanel.<span class="me1">addEventListener</span><span class="br0">&#40;</span> LoginPanel.<span class="me1">TRY_LOGIN</span>, login <span class="br0">&#41;</span>;<br />
<br />
&nbsp; &nbsp; <span class="co1">// constructor no longer contains any references to the facade</span><br />
<span class="br0">&#125;</span><br />
<br />
override <span class="kw3">public</span> <span class="kw2">function</span> onRegister <span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw3">void</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="co1">// when this method is called, the multitonKey has been set, </span><br />
&nbsp; &nbsp; <span class="co1">// so we can safely access the facade</span><br />
&nbsp; &nbsp; <span class="co1">// local reference to the LoginProxy</span><br />
&nbsp; &nbsp; _loginProxy = facade.<span class="me1">retrieveProxy</span><span class="br0">&#40;</span> LoginProxy.<span class="kw3">NAME</span> <span class="br0">&#41;</span> as LoginProxy;<br />
<span class="br0">&#125;</span></div></div>
<p>The differences between the Multicore and Singlecore/Standard versions of the framework are really very minor, but it&#8217;s worth remembering to always move any interaction with the facade out of a Proxy or Mediator&#8217;s constructor.</p>
]]></content:encoded>
			<wfw:commentRss>http://lowpitch.com/blog/puremvc-multicore-vs-standard-singlecore/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Discovering PureMVC, and scaling the learning curve</title>
		<link>http://lowpitch.com/blog/why-puremvc-and-scaling-the-learning-curve/</link>
		<comments>http://lowpitch.com/blog/why-puremvc-and-scaling-the-learning-curve/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 10:13:19 +0000</pubDate>
		<dc:creator>lowpitch</dc:creator>
				<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Frameworks]]></category>

		<guid isPermaLink="false">http://lowpitch.com/blog/?p=4</guid>
		<description><![CDATA[Background
A while back I began work on a personal project which would involve me finally getting to grips with Flex, Django and XML-RPC. I&#8217;ve been using Actionscript 3.0 for quite a while, but my experience with Flex had been relatively minimal. After getting past the initial &#8220;What the hell actually is Flex?&#8221; thing I spent [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Background<br />
</strong>A while back I began work on a personal project which would involve me finally getting to grips with <a title="Adobe Flex" href="http://www.adobe.com/products/flex/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.adobe.com');" target="_blank">Flex</a>, <a title="Django" href="http://www.djangoproject.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.djangoproject.com');" target="_blank">Django</a> and <a title="XML-RPC specification" href="http://www.xmlrpc.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.xmlrpc.com');" target="_blank">XML-RPC</a>. I&#8217;ve been using Actionscript 3.0 for quite a while, but my experience with Flex had been relatively minimal. After getting past the initial &#8220;<em>What the hell actually <strong>is</strong> Flex?</em>&#8221; thing I spent some time trying to learn the basics.</p>
<p>I started off by going through the Flex Builder tutorials, built the sample application featured in <a title="Flex 3 - Training from the Source" href="http://www.amazon.co.uk/Adobe-Flex-3-Training-Source/dp/0321529189" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.co.uk');" target="_blank">Flex 3 &#8211; Training from the Source</a> , signed up for the <a title="Flexcoders mailing list" href="http://tech.groups.yahoo.com/group/flexcoders/" onclick="javascript:pageTracker._trackPageview('/outbound/article/tech.groups.yahoo.com');" target="_blank">Flexcoders</a> mailing list and even built a couple of little apps to help me automate some fairly dull database maintenance I&#8217;d been putting off. But at that point I&#8217;d never done any <em>real</em> work with Flex, and it quickly became obvious that I wasn&#8217;t sure where to begin when it came to structuring a fairly large application.</p>
<p>I&#8217;d read a bit about the various frameworks available for Flash and Flex, but I&#8217;d always kind of written them off as not applicable for me. I had my own way of doing things which, up until now, had always worked well for me and I saw no reason to change. This time, things were a little different,  and I decided that it might be time to revisit them.</p>
<p><span id="more-4"></span></p>
<p><strong>Cairngorm</strong><br />
First off, I looked at the <a title="Cairngorm - Adobe Labs" href="http://labs.adobe.com/wiki/index.php/Cairngorm" onclick="javascript:pageTracker._trackPageview('/outbound/article/labs.adobe.com');" target="_blank">Cairngorm</a> framework. I found a link to David Tucker&#8217;s excellent video tutorials, which <a title="Getting started with Cairngorm - Part 1" href="http://www.davidtucker.net/2007/10/07/getting-started-with-cairngorm-%E2%80%93-part-1/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.davidtucker.net');" target="_blank">begin here</a>, and initially I was really keen on what I saw. The widespread adoption of this framework was a big plus for me &#8211; I found a whole load of excellent Cairngorm resources online, and I realised that understanding this framework could turn out to be very useful for future projects.</p>
<p>However, because of the nature of my project, I&#8217;d already decided that I&#8217;d be using <a title="Overview of Flex modules" href="http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&amp;file=modular_083_1.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/livedocs.adobe.com');" target="_blank">Modules</a> to break up my large app into smaller, easier to manage chunks. In theory, I&#8217;d be able to re-use some of these modules in other projects if I wanted (although sometimes I wonder how long I&#8217;ve spent making code re-usable only to never, ever, re-use it). Anyway, Cairngorm uses Singletons in various places to control access to among other things, its Model, and as a result I couldn&#8217;t find a way to successfully use multiple instances of Cairngorm within one running application, which made it unsuitable for my Module-based project.</p>
<p><strong>PureMVC</strong><br />
After much cursing, weeping, and a little violence, it was back to the drawing board. At this point, I started reading up on <a title="PureMVC" href="http://puremvc.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/puremvc.org');" target="_blank">PureMVC</a>. OK, so PureMVC was another framework for Flash and Flex, but not only that, it was not Actionscript-specific, and was being ported to other languages too. Just as I&#8217;m unlikely to find myself reusing most of the code that I&#8217;ve obsessively tried to keep generic, I&#8217;m also unlikely to need to build a huge application using ColdFusion, but it&#8217;s still strangely appealing to know that if I did, I might have a good idea where to start.</p>
<p>Now you mention it, maybe I should start learning ColdFusion? Oh look, they&#8217;ve ported the framework to C# too, should I try to learn that before or after ColdFusion? Argh! This is getting out of control&#8230;</p>
<p>Anyway, PureMVC also uses Singletons heavily to provide access to its core actors. However, based on feedback from the user community, development had begun on a &#8220;<a title="PureMVC - Multicore" href="http://puremvc.org/component/option,com_wrapper/Itemid,170/" onclick="javascript:pageTracker._trackPageview('/outbound/article/puremvc.org');" target="_blank">Multicore</a>&#8221; version of the framework, initially designed for AS3.0. It was currently in Beta, but seemed fairly stable so I decided to give it a try.<br />
<em>(Note: recently, the Multicore version is out of beta, and the consensus seems to be that there is now no point in using the Singlecore variety, even if your application only requires one instance of the PureMVC framework).</em></p>
<p>The Multicore version works by replacing the Singletons described above with &#8220;Multitons&#8221;. From <a title="Multiton definition on Wikipedia" href="http://en.wikipedia.org/wiki/Multiton" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">Wikipedia</a>, <em>&#8220;The Multiton pattern expands on the Singleton concept to manage a map of named instances as key/value pairs&#8221;. </em>What this means is that your application can employ as many different PureMVC instances as it needs, each one using its own unique <em>key</em> to control access. All of this functionality is nicely hidden away within the framework, and the syntax for using the Multicore version is practically identical to the Singlecore version. There are a few slight differences, which I will try to pick up on in a separate post.</p>
<p>So &#8211; by using this version of the framework, my application&#8217;s modules can all use their own instances of the framework without conflicting with each other at all. Nice! Now how the hell do I use it?</p>
<p><strong>Getting to grips with PureMVC<br />
</strong>Initially, I thought the learning curve would be fairly steep. The PureMVC implementation of, er, MVC was very different from my own,  which I&#8217;d been using happily for a number of years. It called things by different names, (<em>Facade? Mediator? What??</em>), and I must say that at first glance it all seemed a bit complicated. I was worried that for every little piece of interactivity in my application I would end up needing to create 3 or 4 classes, and that it would take forever to build even a simple interface. By now, I was sick of reading, and so it was time to blindly dive straight in.</p>
<p>Initially, it did feel like a bit of a pain to have to decouple everything so strictly. I found myself creating a lot of classes to do some pretty simple stuff, and it felt like there was a fair bit of repetition going on. However, slowly I started to realise that when I was writing new code, more often than not it would actually &#8220;work first time&#8221;. I dunno about you, but that&#8217;s a pretty rare phenomenon for me &#8211; normally I would expect at least one annoyingly hard-to-track-down mistake littered somewhere to keep me on my toes.</p>
<p>A few times I was a little confused about how best to structure what I was trying to do in a PureMVC way, but each time a quick trip to the <a title="PureMVC Discussion Forum" href="http://puremvc.org/component/option,com_wrapper/Itemid,170/" onclick="javascript:pageTracker._trackPageview('/outbound/article/puremvc.org');" target="_blank">Discussion Forum</a> proved invaluable. After a while, these moments of confusion had passed and I found myself &#8220;thinking in PureMVC&#8221;. Behind the scary looking diagrams, and odd-sounding names for things, the framework is actually pretty simple and now that it&#8217;s starting to<em> click</em> for me, it&#8217;s definitely improving the speed of my development. Sure, there are still things that make me want to gouge out one or both of my eyes (for some reason, I find overriding the <em>listNotificationInterests</em> method in each Mediator particularly soul destroying &#8211; this isn&#8217;t a complaint aimed at the framework, I just hate typing), but overall I&#8217;m a happy chap. Is it right for every project? I don&#8217;t know. But it&#8217;s definitely working well for what I&#8217;m currently using it for. Christ, I&#8217;ve already re-used some code. Woo!</p>
<p>Here are a few of the struggles I&#8217;ve had with when trying to get to grips with the framework:</p>
<ul>
<li><strong>My own stubbornness</strong><br />
I was a bit set in my ways &#8211; I had my own way of doing things, and my own names for things. I struggled to understand the framework initially because I was trying to apply, or convert, what I was reading into my own techniques. Once I stopped doing that, and just accepted that PureMVC worked in a different way, things started to become a lot clearer.</li>
<li><strong>Understanding the different actors in the PureMVC pattern</strong><br />
As I mentioned before, I found the names for things in the PureMVC a little confusing. In my implementation of MVC, I had Models, Views and Controllers. The Facades, Proxies, Mediators and Notifications created by PureMVC were extremely confusing to me at first. It sounded extremely confusing, and nearly put me off. The best suggestion I can make is to read, and re-read, the <a title="Best Practices - PDF" href="http://puremvc.org/pages/docs/current/PureMVC_Implementation_Idioms_and_Best_Practices.pdf" onclick="javascript:pageTracker._trackPageview('/outbound/article/puremvc.org');" target="_blank">Best Practices</a> document. This is the best single piece of documentation that I&#8217;ve found on PureMVC, and it was after reading this document from start to finish a couple of times that I really started to understand what&#8217;s going on.</li>
<li><strong>Knowing where best to define Constants</strong> (for example, Notification names)<br />
I&#8217;m still not sure about this one. Currently, I&#8217;m tending to define the Notification name in the class which sends out that Notification. This worked well for a while, but I&#8217;ve had a couple of instances where multiple classes send out the same Notification, which then gets a bit confusing. I&#8217;m a bit reluctant to define them all in the ApplicationFacade class, as otherwise that class is gonna get pretty long and ugly. The other alternative I can think of would be just to create a class which serves no purpose other than to define the constants. That way, they&#8217;re all in one place. How are you solving this problem?<br />
<em>(Update: I&#8217;ve recently switched my approach here and I&#8217;m now storing all notification name constants in a single class which any other class can just import if it needs. This approach is working well for me, and feels like less of a hack, but I&#8217;m still wondering if there&#8217;s a better approach which I&#8217;ve not thought of yet.)</em></li>
</ul>
<p>As an aside, I recently had a farcical experience which resulted in me losing a hefty chunk of work from the project. I accidently deleted my SVN working copy for one of my modules, and somehow when I was attempting to check-out the code again I managed to remove the entire repository. After much wailing, faffing, and fiddling, I decided that it was gone for good.</p>
<p>The actual code that was lost was the first work I&#8217;d ever done in PureMVC, and from my records it was over 20 hours of work. When the tears had dried, I sat down to start writing the code again, from scratch. This time around, it took just over 2 hours to completely rebuild the code. Not only that, but I had a much more flexible system at the end of it. I&#8217;d originally written this code about a month ago, and I&#8217;m pretty pleased that after just a few short weeks (of <em>very </em>part-time experience with PureMVC) I&#8217;d been able to build the module that much quicker. I&#8217;m hoping the framework is gonna help me build a well structured application, and once the last few areas of confusion I have about &#8216;best-practice&#8217; are ironed out, I&#8217;m hoping the whole process is going to be fairly smooth.</p>
<p>If you&#8217;re about to look at the various frameworks available for the Flash platform, I can (so far) heartily recommend PureMVC. Ignore how confusing those big scary diagrams look at first, what&#8217;s going on underneath is surprisingly simple. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://lowpitch.com/blog/why-puremvc-and-scaling-the-learning-curve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
