<?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>The Blog of Obecto</title>
	<atom:link href="http://blog.obecto.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.obecto.com</link>
	<description>news &#38; thoughts</description>
	<lastBuildDate>Fri, 03 Jul 2009 09:01:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>FLit &#8211; A Lightweight Flex for Flash Apps</title>
		<link>http://blog.obecto.com/2009/07/flit-a-lightweight-flex-for-flash-apps/</link>
		<comments>http://blog.obecto.com/2009/07/flit-a-lightweight-flex-for-flash-apps/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 11:46:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.obecto.com/?p=3</guid>
		<description><![CDATA[A whole class of RIA applications is getting judiciously ignored by technology vendors like Adobe and Microsoft with the argument that these are way too custom to be utilized in any direction. In the recent years both vendors were focusing their efforts on streamlining the enterprise RIAs, both neglecting the class of applications that was [...]]]></description>
			<content:encoded><![CDATA[<p>A whole class of RIA applications is getting judiciously ignored by technology vendors like Adobe and Microsoft with the argument that these are <strong>way too custom</strong> to be utilized in any direction. In the recent years both vendors were focusing their efforts on streamlining the enterprise RIAs, both neglecting the class of applications that was previously the predominant type of RIA. I&#8217;m talking about marketing platform applications or <em>Rich User Experiences that are not focused on providing a particular business function</em>. Such applications most typically are not extensively using common UI controls and usually they don&#8217;t have to deal with visualizing and manipulating large sets of data in grids and charts.</p>
<p>Adobe have done a great job with Flex (and in the years to come it will hopefully improve)! But Flex comes with a certain weight that makes it nearly impossible to use when we have to develop the class of applications that I want to stress on. The overhead of the framework is too big to be ignored. Our main concern is that this will eventually result in poorer user experiences, because of initial download times and performance overhead. But even if we circumvent this issue in some way (check Vladimir&#8217;s article on <a href="http://npacemo.com/wordpress/2008/07/06/flex-application-bootstrapping-totally-custom-preloader/">Totally Custom Preloaders</a>), the SWF will still include code dependencies that are used nowhere in the application. Not to mention that the whole component model is too heavy and complicated and will eventually stand in our way when we have to implement a totally custom experience. This complicated model also requires too much processing power to handle the advanced aspects of the business applications that results in poor performance when you are focusing on the user experience.</p>
<h3>Introducing FLit</h3>
<p>But on the other hand Flex comes with a set of tools and concept that we really love and still want to be able to use. So what we end up doing in our free time in <a href="http://obecto.com/">Obecto</a> is a framework that would enable us to use Flex for really custom Flash apps with a minimal overhead from the framework. And we called this framework <a href="http://flit.googlecode.com/">FLit &#8211; a light-weight Flex for Flash apps</a>. We&#8217;ve been developing it as open source from line 1 &#8211; so feel free to check out the source from <a href="http://flit.googlecode.com/">Google Code</a>. There you&#8217;ll find some samples too!<br />
<img style="margin: 0 0 0 0;" title="flit-logo" src="http://npacemo.com/wordpress/wp-content/uploads/2009/06/flit-logo.png" alt="Introducing FLit!" width="500" height="215" /></p>
<h3>Why we call it FLit?</h3>
<p>First, FL stands for Flash. We want to build plain AS3 projects without the need to use <strong>&lt;mx:Application&gt;</strong> as a root object for our apps, and we want it to be as fast and as small as a plain AS3 project could be.</p>
<p><img style="margin: 0 0 0 0;" title="flit-and-flash" src="http://npacemo.com/wordpress/wp-content/uploads/2009/06/flit-and-flash.png" alt="FLit is Flash" width="500" height="281" /></p>
<h3>How do we use Flex in FLit?</h3>
<p>As you might guess FL also stands for Flex, but we only use a small subset of the Flex Framework, like Data Binding and MXML, and nothing else &#8211; no UIComponent, no Flex Application. How do we succeed in using MXML inside of a plain AS3 project? Well, this is a topic for another post.</p>
<p>We are also using a concept <em>pretty close to the view contract in Spark</em>, thus enabling the separation of concerns between the designer and the developer.</p>
<p><img style="margin: 0 0 0 0;" title="flit-and-flex" src="http://npacemo.com/wordpress/wp-content/uploads/2009/06/flit-and-flex.png" alt="FLit is Flex" width="500" height="281" /></p>
<h3>What do we mean by lite?</h3>
<p>We understand liteness as to have minimum dependencies between components, thus there are no components in the framework that will induce as dependencies a substantial part of the framework itself.</p>
<p>We understand liteness as the ability to include only those concern that interest you and not having behavior &#8220;hard-coded&#8221; in the framework. This should be beneficial both as download size as well as performance increase.</p>
<p>We also understand liteness as having a lite build process. Previously when building custom Flash apps we needed to use the designers&#8217; machines and the designers&#8217; productivity tools for the build. With FLit this is not the case &#8211; the designer is responsible only in preparing assets that must contain the parts specified in the view contract, so the productivity tools are not used for the build. So, this is also a pretty lite skinning process.<br />
<img style="margin: 0 0 0 0;" title="flit-lite" src="http://npacemo.com/wordpress/wp-content/uploads/2009/06/flit-lite.png" alt="FLit is lite" width="500" height="281" /></p>
<h3>The current state of FLit</h3>
<p>FLit is in early experimentation phase. Maybe <a href="http://dev.obecto.com/flit_samples/FormSample.html">this sample</a> somewhat summarizes what&#8217;s inside the framework now? You can also check out <a href="http://code.google.com/p/flit/source/browse/trunk/sampleComponents/src/component/flit/form/FlitForm.mxml#">the sample&#8217;s code</a>!<br />
A summary of features:</p>
<p style="margin-left: 20px;">● light-weight base component<br />
● light-weight base container<br />
● view contract specification through metadata tags<br />
● skin asset<br />
● several layout strategies<br />
● transition manager that supports declarative transitions between states<br />
● tasks (an idea which originated from the <a href="http://www.gugga.com/GuggaFlashFramework/">GuggaFF</a>) &#8211; Sequence and Parallel are also tasks<br />
● declarative input validators<br />
● skin-able button component<br />
● tweening engine</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.obecto.com/2009/07/flit-a-lightweight-flex-for-flash-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
