<?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>Architect, Engineer, Tech Enthusiast - Hasan Otuome &#187; FITC</title>
	<atom:link href="http://technophi.com/category/community/fitc-community/feed/" rel="self" type="application/rss+xml" />
	<link>http://technophi.com</link>
	<description>personal weblog of a tech addict</description>
	<lastBuildDate>Wed, 23 Nov 2011 18:04:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Devising a Social Media Strategy</title>
		<link>http://technophi.com/2011/05/10/devising-a-social-media-strategy/</link>
		<comments>http://technophi.com/2011/05/10/devising-a-social-media-strategy/#comments</comments>
		<pubDate>Tue, 10 May 2011 19:33:14 +0000</pubDate>
		<dc:creator>Hasan Otuome</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[IT Managment]]></category>
		<category><![CDATA[LAFO]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://technophi.com/?p=745</guid>
		<description><![CDATA[You&#8217;ve noticed the trend, businesses around the globe are embracing social media. Now, you want to harness that same power for your business. First, you need a social business strategy that makes sense for your business. In order to do that, you must consider the fact that times have changed. No longer can an organization [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve noticed the trend, businesses around the globe are embracing social media. Now, you want to harness that same power for your business. First, you need a social business strategy that makes sense for your business. In order to do that, you must consider the fact that times have changed. No longer can an organization get by on catering to market needs alone. </p>
<p>The business world today is much more empowered; empowered to act and react to dynamic changes often the moment they occur. For your organization to reap the benefits of the social media phenomenon, you must adapt and become more flexible in how you engage your customers, partners and community. To do so involves cultivating social connections that focus on solving business and customer challenges rather than the traditional PR techniques of selling your prospects on just how <strong>great</strong> you are.</p>
<p>Now that you&#8217;ve established the need for a social strategy there are a few things that should be done before you actually devise the strategy.</p>
<p><strong>A) Help the CEO formulate a social media strategy team that will include internal leaders and managers spanning the entire organization. </strong></p>
<p>The social team&#8217;s job will be to help create the strategy and oversee its implementation. As internal buy-in is critical to overall strategy success, the choices made in team selection are extremely crucial. Remember, you can&#8217;t build success on a rocky foundation.  </p>
<p>Once the team is assembled, it wouldn&#8217;t hurt to&#8230; </p>
<p><strong>B) Conduct a session with your company&#8217;s executive team where you explore social tech&#8217;s ability to and success in transforming organizations. </strong></p>
<p>Be sure to fully explore how the same and more can be realized by your organization. Once the seeds have been planted and the bosses are on board, you can start building out your strategy. And because you&#8217;re building on a solid foundation, you should really be able to maximize your competitive advantage by following sound principles catered to your unique value position. Does this guarantee you&#8217;ll be the next Facebook or Twitter? No, but it will guarantee a much better fate than just blindly approaching the socialsphere, hoping for the best.</p>
<p>Based on a recently published Forrester Research report, <strong><a href="http://www.forrester.com/rb/Research/social_business_strategy/q/id/57541/t/2">Social Business Strategy</a></strong>, there are four key ingredients to a successful social business strategy:</p>
<p><strong>#1 Know Thy Neighbor</strong><br />
There&#8217;s no way that you can create value through social engagement if you don&#8217;t truly understand who your employees and customers are, as well as, how they use social technology. According to Forrester, 62 million US adults visited a social networking site at least monthly between 2007 &#8211; 2010 representing a 50% increase in social networking usage.</p>
<p><strong>#2 Define Your Goals</strong><br />
What do you expect to achieve by becoming more social? Do you want to improve customer perception? Increase customer sat? Increase sales? Whatever the case may be, get specific, associate each goal with a strategy and detail the steps to achieve the goal. Once that&#8217;s established, review what emerging social technology trends make the most sense in support of accomplishing your goals.</p>
<p><strong>#3 Weigh the Pros and Cons</strong><br />
Determine which of your goals has the greatest output (return) for the least input (investment). Don&#8217;t get caught up in ego. Realistically assess the risk, effort and complexity of each goal/strategy so you can formulate the clearest picture of which ones should be pursued and which ones to abandon. If a project requires a high investment with very little return, it should be tossed. On the other hand, if you discover a gem of a project that essentially costs nothing to implement but yields untold riches, be smart and fast-track that one.</p>
<p><strong>#4 Pick the Right Tool for the Job</strong><br />
You&#8217;ll likely need a myriad of services to support your golden social strategy so choose wisely. Explore all your options whether it be SaaS, PaaS or even IaaS. Determine which ones integrate with your existing infrastructure the best. You ultimately want your technology selection to be the icing on your well baked plan. </p>
<p>I&#8217;ve personally found success with this approach and feel that it can effectively be applied to a variety of operational/strategical models. How about you?</p>
<p>RELATED RESOURCES<br />
<a href="http://www.forrester.com/rb/Research/social_business_strategy/q/id/57541/t/2">http://www.forrester.com/rb/Research/social_business_strategy/q/id/57541/t/2</a></p>
<div style="float: right; padding: 3px;"><a href="http://bufferapp.com/add" class="buffer-add-button" data-text="Devising a Social Media Strategy" data-url="http://technophi.com/2011/05/10/devising-a-social-media-strategy/" data-via="bufferapp" data-count="none">Buffer</a><script type="text/javascript" src="http://static.bufferapp.com/js/button.js"></script></div><div id="tweetbutton745" class="tw_button" style="padding: 3px;float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fj.mp%2Fkp4G6E&amp;via=heroizm&amp;text=Devising%20a%20Social%20Media%20Strategy&amp;related=heroizm&amp;lang=en&amp;count=none&amp;counturl=http%3A%2F%2Ftechnophi.com%2F2011%2F05%2F10%2Fdevising-a-social-media-strategy%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://technophi.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://technophi.com/2011/05/10/devising-a-social-media-strategy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Owned Native Window Functionality with Spark Windows</title>
		<link>http://technophi.com/2011/04/06/using-owned-native-window-functionality-with-spark-windows/</link>
		<comments>http://technophi.com/2011/04/06/using-owned-native-window-functionality-with-spark-windows/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 00:23:22 +0000</pubDate>
		<dc:creator>Hasan Otuome</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[LAFO]]></category>

		<guid isPermaLink="false">http://technophi.com/?p=776</guid>
		<description><![CDATA[The release of AIR 2.6 brought about a lot of enhancements and features. One of which was owned native windows. What&#8217;s special about this is it makes it easy to have a main window that owns other windows, which is ultra-useful for applications that make use of multiple windows for things like tool palettes, property [...]]]></description>
			<content:encoded><![CDATA[<p>The release of AIR 2.6 brought about a lot of <strong><a href="http://j.mp/fGhkVJ">enhancements and features</a></strong>. One of which was <strong><a href="http://j.mp/g7BGQF">owned native windows</a></strong>. What&#8217;s special about this is it makes it easy to have a main window that owns other windows, which is ultra-useful for applications that make use of multiple windows for things like tool palettes, property inspectors, etc. </p>
<p>The only problem is this new functionality only works out of the box for NativeWindow instances. A Spark Window, however, manages its NativeWindow internally and does not currently include support for the new owned window logic. Now, you could subclass Window and override <em>commitProperties</em> to add in the functionality but, that&#8217;s neither desired nor maintainable.  </p>
<p>Why does it even matter? Because a Spark Window is skinnable and if you&#8217;ve already taken the time to build an application using skinnable Windows, you don&#8217;t want to labor over the changes necessary just to use this functionality. </p>
<p>So, I chose to take a different approach because I&#8217;m confident that the AIR SDK will eventually include support for ownable Spark Windows. Until then, I&#8217;m using an <strong><em>OwnableWindow</em></strong> interface that all of my Window subclasses I want to be owned are required to implement. This way I can take advantage of the new functionality in the least obtrusive way possible. </p>
<p>Here&#8217;s the code for OwnableWindow:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> labs<span style="color: #000066; font-weight: bold;">.</span>otuome<span style="color: #000066; font-weight: bold;">.</span>air<span style="color: #000066; font-weight: bold;">.</span>myapp<span style="color: #000066; font-weight: bold;">.</span>view<span style="color: #000066; font-weight: bold;">.</span>panel
<span style="color: #000000;">&#123;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span>NativeWindow<span style="color: #000066; font-weight: bold;">;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span>NativeWindowDisplayStateEvent<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
   <span style="color: #0033ff; font-weight: bold;">public</span> interface OwnableWindow
   <span style="color: #000000;">&#123;</span>
      <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">get</span> windowOwner<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span>NativeWindow<span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> windowOwner<span style="color: #000000;">&#40;</span> <span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">:</span>NativeWindow <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
      <span style="color: #339966; font-weight: bold;">function</span> respondToOwnerWindowActivated<span style="color: #000000;">&#40;</span> event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #339966; font-weight: bold;">function</span> respondToOwnerWindowMinimizedOrRestored<span style="color: #000000;">&#40;</span> event<span style="color: #000066; font-weight: bold;">:</span>NativeWindowDisplayStateEvent <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #339966; font-weight: bold;">function</span> respondToOwnerWindowClosing<span style="color: #000000;">&#40;</span> event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000066; font-weight: bold;">;</span>
   <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Now, in my Spark Window subclass I implement the interface like so:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> labs<span style="color: #000066; font-weight: bold;">.</span>otuome<span style="color: #000066; font-weight: bold;">.</span>air<span style="color: #000066; font-weight: bold;">.</span>myapp<span style="color: #000066; font-weight: bold;">.</span>view<span style="color: #000066; font-weight: bold;">.</span>panel
<span style="color: #000000;">&#123;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span>NativeWindow<span style="color: #000066; font-weight: bold;">;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span>NativeWindowDisplayState<span style="color: #000066; font-weight: bold;">;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span>NativeWindowDisplayStateEvent<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
   <span style="color: #0033ff; font-weight: bold;">import</span> mx<span style="color: #000066; font-weight: bold;">.</span>events<span style="color: #000066; font-weight: bold;">.</span>FlexEvent<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
   <span style="color: #0033ff; font-weight: bold;">import</span> spark<span style="color: #000066; font-weight: bold;">.</span>components<span style="color: #000066; font-weight: bold;">.</span>Button<span style="color: #000066; font-weight: bold;">;</span>
   <span style="color: #0033ff; font-weight: bold;">import</span> spark<span style="color: #000066; font-weight: bold;">.</span>components<span style="color: #000066; font-weight: bold;">.</span>RichText<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
   <span style="color: #3f5fbf;">/**
    * Spark Window component subclass.
    * @author Hasan Otuome
    */</span>
   <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> FloatingPanelView <span style="color: #0033ff; font-weight: bold;">extends</span> FloatingPanelUI implements OwnableWindow
   <span style="color: #000000;">&#123;</span>
      <span style="color: #009900; font-style: italic;">///////////////////////////////////////////////////////////////////////////</span>
      <span style="color: #009900; font-style: italic;">// PRIVATE PROPERTIES</span>
      <span style="color: #009900; font-style: italic;">///////////////////////////////////////////////////////////////////////////</span>
      <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _panelTitle<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _windowOwner<span style="color: #000066; font-weight: bold;">:</span>NativeWindow<span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #009900; font-style: italic;">//////////////////////////////////////////////////////////////////////////</span>
      <span style="color: #009900; font-style: italic;">// PUBLIC PROPERTIES</span>
      <span style="color: #009900; font-style: italic;">/////////////////////////////////////////////////////////////////////////</span>
      <span style="color: #000000;">&#91;</span>SkinPart <span style="color: #000000;">&#40;</span>required=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> header<span style="color: #000066; font-weight: bold;">:</span>Button<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
      <span style="color: #000000;">&#91;</span>SkinPart <span style="color: #000000;">&#40;</span>required=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> toggle<span style="color: #000066; font-weight: bold;">:</span>Button<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
      <span style="color: #000000;">&#91;</span>SkinPart <span style="color: #000000;">&#40;</span>required=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> contentTitle<span style="color: #000066; font-weight: bold;">:</span>RichText<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
      <span style="color: #3f5fbf;">/**
      * Sets the panel's title. 
      * @param value
      */</span>		
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> panelTitle<span style="color: #000000;">&#40;</span> <span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
      <span style="color: #000000;">&#123;</span>
           _panelTitle = <span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #000000;">&#125;</span>
      <span style="color: #3f5fbf;">/**
      * Allows you to specify an owner for this Spark 
      * Window instance. Used only until the Flex SDK 
      * adds support for owned native windows to Spark 
      * Windows.
      */</span>		
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">get</span> windowOwner<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span>NativeWindow
      <span style="color: #000000;">&#123;</span>
           <span style="color: #0033ff; font-weight: bold;">return</span> _windowOwner<span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #000000;">&#125;</span>
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> windowOwner<span style="color: #000000;">&#40;</span> <span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">:</span>NativeWindow <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
      <span style="color: #000000;">&#123;</span>
           _windowOwner = <span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #000000;">&#125;</span>
      <span style="color: #009900; font-style: italic;">///////////////////////////////////////////////////////////////////////////</span>
      <span style="color: #009900; font-style: italic;">// PUBLIC METHODS</span>
      <span style="color: #009900; font-style: italic;">///////////////////////////////////////////////////////////////////////////</span>
      <span style="color: #3f5fbf;">/**
      * Constructor 
      */</span>		
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> FloatingPanelView<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
      <span style="color: #000000;">&#123;</span>
        <span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
        <span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> FlexEvent<span style="color: #000066; font-weight: bold;">.</span>CREATION_COMPLETE<span style="color: #000066; font-weight: bold;">,</span> _onCreationComplete<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">true</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #000000;">&#125;</span>
      <span style="color: #009900; font-style: italic;">//---------- OwnableWindow implementations --------------------</span>
      <span style="color: #3f5fbf;">/**
      * Adjust the display ordering of this 
      *	instance as it relates to its owner. 
      */</span>
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> respondToOwnerWindowActivated<span style="color: #000000;">&#40;</span> event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
      <span style="color: #000000;">&#123;</span>
        <span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>nativeWindow<span style="color: #000066; font-weight: bold;">.</span>orderInFrontOf<span style="color: #000000;">&#40;</span> _windowOwner <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #000000;">&#125;</span>
&nbsp;
      <span style="color: #3f5fbf;">/**
      * Show/hide this instance based 
      *	on the display state of its owner. 
      */</span>
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> respondToOwnerWindowMinimizedOrRestored<span style="color: #000000;">&#40;</span> event<span style="color: #000066; font-weight: bold;">:</span>NativeWindowDisplayStateEvent <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
      <span style="color: #000000;">&#123;</span>
        <span style="color: #0033ff; font-weight: bold;">switch</span> <span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
           <span style="color: #0033ff; font-weight: bold;">case</span> <span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">.</span>beforeDisplayState == NativeWindowDisplayState<span style="color: #000066; font-weight: bold;">.</span>MINIMIZED<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span>
             <span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>restore<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
             <span style="color: #0033ff; font-weight: bold;">break</span><span style="color: #000066; font-weight: bold;">;</span>
           <span style="color: #0033ff; font-weight: bold;">case</span> <span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">.</span>afterDisplayState == NativeWindowDisplayState<span style="color: #000066; font-weight: bold;">.</span>MINIMIZED<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span>
             <span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>minimize<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
             <span style="color: #0033ff; font-weight: bold;">break</span><span style="color: #000066; font-weight: bold;">;</span>
        <span style="color: #000000;">&#125;</span>
      <span style="color: #000000;">&#125;</span>
&nbsp;
      <span style="color: #3f5fbf;">/**
      * Close this instance when its owner is closed. This 
      *	will be handled automatically if the owner is 
      *	the main application window.  
      */</span>
      <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> respondToOwnerWindowClosing<span style="color: #000000;">&#40;</span> event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
      <span style="color: #000000;">&#123;</span>
        <span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #000000;">&#125;</span>
      <span style="color: #009900; font-style: italic;">//////////////////////////////////////////////////////////////////////////</span>
      <span style="color: #009900; font-style: italic;">// OVERRIDES</span>
      <span style="color: #009900; font-style: italic;">/////////////////////////////////////////////////////////////////////////</span>
&nbsp;
      <span style="color: #009900; font-style: italic;">////////////////////////////////////////////////////////////////////////</span>
      <span style="color: #009900; font-style: italic;">// PRIVATE METHODS</span>
      <span style="color: #009900; font-style: italic;">///////////////////////////////////////////////////////////////////////</span>
      <span style="color: #3f5fbf;">/**
      * CREATION_COMPLETE event handler. 
      * Ensures this instance responds to 
      * display state changes of the 
      * instance's owner. 
      * @param e
      */</span>		
      <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> _onCreationComplete<span style="color: #000000;">&#40;</span> e<span style="color: #000066; font-weight: bold;">:</span>FlexEvent <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
      <span style="color: #000000;">&#123;</span>
        <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>_windowOwner<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
           _windowOwner<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span>ACTIVATE<span style="color: #000066; font-weight: bold;">,</span> respondToOwnerWindowActivated<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">true</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
           _windowOwner<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> NativeWindowDisplayStateEvent<span style="color: #000066; font-weight: bold;">.</span>DISPLAY_STATE_CHANGE<span style="color: #000066; font-weight: bold;">,</span> respondToOwnerWindowMinimizedOrRestored<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">true</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
           _windowOwner<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span>CLOSING<span style="color: #000066; font-weight: bold;">,</span> respondToOwnerWindowClosing<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">true</span> <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span> FlexEvent<span style="color: #000066; font-weight: bold;">.</span>CREATION_COMPLETE<span style="color: #000066; font-weight: bold;">,</span> _onCreationComplete <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
      <span style="color: #000000;">&#125;</span>
   <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>I set the <em>windowOwner</em> property when I instantiate the class(es) and I have a skinnable Spark Window(s) that can be owned by another NativeWindow. Downside is that the z-ordering produces a noticeable flicker and only works on the 1st click of the owner window. </p>
<p>Did I have to use an interface? Not at all, but it&#8217;s nice to be able to enforce the contract and easily tear it up once it&#8217;s no longer needed. Taking a different approach? Share it&#8230;</p>
<div style="float: right; padding: 3px;"><a href="http://bufferapp.com/add" class="buffer-add-button" data-text="Using Owned Native Window Functionality with Spark Windows" data-url="http://technophi.com/2011/04/06/using-owned-native-window-functionality-with-spark-windows/" data-via="bufferapp" data-count="none">Buffer</a><script type="text/javascript" src="http://static.bufferapp.com/js/button.js"></script></div><div id="tweetbutton776" class="tw_button" style="padding: 3px;float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fj.mp%2Fllns05&amp;via=heroizm&amp;text=Using%20Owned%20Native%20Window%20Functionality%20with%20Spark%20Windows&amp;related=heroizm&amp;lang=en&amp;count=none&amp;counturl=http%3A%2F%2Ftechnophi.com%2F2011%2F04%2F06%2Fusing-owned-native-window-functionality-with-spark-windows%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://technophi.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://technophi.com/2011/04/06/using-owned-native-window-functionality-with-spark-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using ANT to Compile a Flex Mobile Project for iOS</title>
		<link>http://technophi.com/2011/03/08/using-ant-to-compile-a-flex-mobile-project-for-ios/</link>
		<comments>http://technophi.com/2011/03/08/using-ant-to-compile-a-flex-mobile-project-for-ios/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 02:53:33 +0000</pubDate>
		<dc:creator>Hasan Otuome</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[LAFO]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://technophi.com/?p=656</guid>
		<description><![CDATA[It&#8217;s 3am. You have a sexy Flex mobile project that takes full advantage of the Hero SDK and its Spark mobile components. You&#8217;re dying to deploy to iPhone and iPad but unfortunately, you either have to build your app using Adobe&#8217;s iPhone packager via the command line interface (CLI), wait until Flash Builder includes a [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s 3am. You have a sexy Flex mobile project that takes full advantage of the Hero SDK and its Spark mobile components. You&#8217;re dying to deploy to iPhone and iPad but unfortunately, you either have to build your app using Adobe&#8217;s iPhone packager via the command line interface (CLI), wait until Flash Builder includes a GUI that supports this scenario, switch to another IDE (FDT, etc) or re-factor the app from Flex to Flash for compilation via Flash CS5. Nothing&#8217;s particularly appealing. </p>
<p><strong>Enter: ANT to the rescue!</strong></p>
<p>By creating an ANT build script, you can alleviate all of the above concerns and stay super-flexible at the same time. Here&#8217;s a template that I&#8217;ve been using lately with great success:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span> 
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;project</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">&quot;4. Package Application&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;[Your Flex Project Name]&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> 
	<span style="color: #808080; font-style: italic;">&lt;!-- Framework properties --&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;FLEX_HOME&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;[/path/to/your/flex/4.5/sdk]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;AIR_GLOBAL&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/frameworks/libs/air/airglobal.swc&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ADL&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/bin/adl&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ADT&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/lib/adt.jar&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;PFI&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/lib/pfi.jar&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;FLEX_TASKS&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/ant/lib/flexTasks.jar&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;LOCALE&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;en_US&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Project properties --&gt;</span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;project_root&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;[/path/to/your/flex/mobile/project]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;class_path&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${project_root}/src&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;lib_path&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${project_root}/libs&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;splash_path&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${class_path}/Default.png&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;app_name&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;[YourApp]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;app_root_dir&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;.&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;app_type&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;mxml&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;assets_dir_name&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;[name_of_your_assets_dir]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;debug_mode&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Certificate properties --&gt;</span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;cert_loc&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${app_root_dir}/[path/to/your/certs]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ios_keystore&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${cert_loc}/[your_cert_name].p12&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ios_pass&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;[your_cert_password]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ios_provisioning&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${cert_loc}/[your_provisioning_profile].mobileprovision&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Application properties --&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;swf_file&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${app_name}.swf&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;air_file&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${app_name}.air&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ipa_file&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${app_name}.ipa&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;app_descriptor&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${class_path}/${app_name}-app.xml&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;main_class&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${class_path}/${app_name}.${app_type}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;build_dir&quot;</span> <span style="color: #000066;">location</span>=<span style="color: #ff0000;">&quot;${app_root_dir}/build&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;debug_dir&quot;</span> <span style="color: #000066;">location</span>=<span style="color: #ff0000;">&quot;${app_root_dir}/build/debug&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;publish_dir&quot;</span> <span style="color: #000066;">location</span>=<span style="color: #ff0000;">&quot;${app_root_dir}/build/deploy&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;assets_dir&quot;</span> <span style="color: #000066;">location</span>=<span style="color: #ff0000;">&quot;${class_path}/${assets_dir_name}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;output_loc&quot;</span> <span style="color: #000066;">location</span>=<span style="color: #ff0000;">&quot;${publish_dir}/${swf_file}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Use the Flex ANT tasks for easier compilation --&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;mxmlc&quot;</span> <span style="color: #000066;">classname</span>=<span style="color: #ff0000;">&quot;flex.ant.MxmlcTask&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${FLEX_TASKS}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Clean existing directories --&gt;</span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;1. Cleanup Directories&quot;</span> <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;clean up&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${debug_dir}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${publish_dir}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${build_dir}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> 
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Create required directories --&gt;</span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;2. Build New Directories&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;1. Cleanup Directories&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mkdir</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${build_dir}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mkdir</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${debug_dir}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mkdir</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${publish_dir}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Compile SWF to build-directory for packaging --&gt;</span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;3. Compile SWF&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;2. Build New Directories&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mxmlc</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${main_class}&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">output</span>=<span style="color: #ff0000;">&quot;${output_loc}&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">locale</span>=<span style="color: #ff0000;">&quot;${LOCALE}&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">static-rsls</span>=<span style="color: #ff0000;">&quot;false&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">accessible</span>=<span style="color: #ff0000;">&quot;false&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">configname</span>=<span style="color: #ff0000;">&quot;airmobile&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">debug</span>=<span style="color: #ff0000;">&quot;${debug_mode}&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">maxmemory</span>=<span style="color: #ff0000;">&quot;512m&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source-path</span> <span style="color: #000066;">path-element</span>=<span style="color: #ff0000;">&quot;${class_path}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;compiler.library-path</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/frameworks&quot;</span> <span style="color: #000066;">append</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;include</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;libs/*&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/compiler.library-path<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;library-path</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/frameworks/locale/${LOCALE}&quot;</span> <span style="color: #000066;">append</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;library-path</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${lib_path}&quot;</span> <span style="color: #000066;">includes</span>=<span style="color: #ff0000;">&quot;*.swc&quot;</span> <span style="color: #000066;">append</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;external-library-path</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${AIR_GLOBAL}&quot;</span> <span style="color: #000066;">append</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mxmlc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #808080; font-style: italic;">&lt;!-- Package the application to an ipa file &amp; save it in the publish directory --&gt;</span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;4. Package Application&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;3. Compile SWF&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;java</span> <span style="color: #000066;">jar</span>=<span style="color: #ff0000;">&quot;${ADT}&quot;</span> <span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> 
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-package&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-target&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;ipa-test&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-provisioning-profile&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${ios_provisioning}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
      			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-storetype&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;pkcs12&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-keystore&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${ios_keystore}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-storepass&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${ios_pass}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${ipa_file}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${app_descriptor}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${output_loc}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-C&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${class_path}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${splash_path}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-C&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${class_path}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${assets_dir}/icons/.&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/java<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/project<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><strong>UPDATED 3/23/11:</strong> changed the <em>Package Application</em> target to use ADT vs PFI now that <a href="http://j.mp/fcxhhD">AIR 2.6 is official</a>.</p>
<p>You should only have to modify the values wrapped in brackets [ ] to match your system setup. Once that&#8217;s done, you&#8217;ll need to tweak your application&#8217;s descriptor file (ie, myapp-app.xml) as follows:</p>
<p><strong>#1 Modify the initialWindow&#8217;s content value to match the output path from your ANT script:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>[This value will be overwritten by Flash Builder in the output app.xml]<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>becomes:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/path/to/your/application.swf<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><strong>#2 Add the following iOS-required data, either before or after the Android data section:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;iPhone<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;InfoAdditions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[</span>
<span style="color: #339933;">&lt;key&gt;UIDeviceFamily&lt;/key&gt;</span>
<span style="color: #339933;">&lt;array&gt;</span>
<span style="color: #339933;">&lt;string&gt;1&lt;/string&gt;</span>
<span style="color: #339933;">&lt;string&gt;2&lt;/string&gt;</span>
<span style="color: #339933;">&lt;/array&gt;</span>
<span style="color: #339933;">]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/InfoAdditions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;requestedDisplayResolution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>high<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/requestedDisplayResolution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/iPhone<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>After that, you should be able to compile your app using the ANT script without problem from any IDE that supports ANT or even from the CLI. This certainly isn&#8217;t the only way to accomplish this, it&#8217;s just my take on it. Feel free to hack away at it and share what you come up with. </p>
<p>If you should decide to bypass the template and build a script from scratch, here are a few caveats to remember:</p>
<ul>
<li>update your application descriptor to use the output SWF path from your ANT script instead of the default placeholder text provided by Adobe</li>
<li>add the appropriate iOS tags to your descriptor</li>
<li>modify the ANT template to point to your system specific config (SDK, project, certs)</li>
<li>don&#8217;t forget to add your certificate&#8217;s password</li>
<li>remember to load the airmobile-config.xml (configname=airmobile vs air)</li>
<li>change <code>ipa-test</code> to <code>ipa-app-store</code> before publishing to the App Store.</li>
</ul>
<p>Checkout some of the related resources for alternatives to tackling the same problem and just general information on developing AIR applications for iOS devices.</p>
<p>RELATED RESOURCES<br />
<a href="http://www.ivanalvarez.com/2010/10/flex-4-in-ios-3/">http://www.ivanalvarez.com/2010/10/flex-4-in-ios-3/</a><br />
<a href="http://www.terrenceryan.com/blog/post.cfm/compiling-flex-hero-apps-with-mxmlc-in-ant">http://www.terrenceryan.com/blog/post.cfm/compiling-flex-hero-apps-with-mxmlc-in-ant</a><br />
<a href="http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html">http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html</a><br />
<a href="http://help.adobe.com/en_US/air/build/WS901d38e593cd1bac1e63e3d128fc240122-7ff2.html">http://help.adobe.com/en_US/air/build/WS901d38e593cd1bac1e63e3d128fc240122-7ff2.html</a><br />
<a href="http://help.adobe.com/en_US/air/build/WSBE9908A0-8E3A-4329-8ABD-12F2A19AB5E9.html">http://help.adobe.com/en_US/air/build/WSBE9908A0-8E3A-4329-8ABD-12F2A19AB5E9.html</a><br />
<a href="http://help.adobe.com/en_US/as3/iphone/air_deviphoneapps.pdf">http://help.adobe.com/en_US/as3/iphone/air_deviphoneapps.pdf</a></p>
<div style="float: right; padding: 3px;"><a href="http://bufferapp.com/add" class="buffer-add-button" data-text="Using ANT to Compile a Flex Mobile Project for iOS" data-url="http://technophi.com/2011/03/08/using-ant-to-compile-a-flex-mobile-project-for-ios/" data-via="bufferapp" data-count="none">Buffer</a><script type="text/javascript" src="http://static.bufferapp.com/js/button.js"></script></div><div id="tweetbutton656" class="tw_button" style="padding: 3px;float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fj.mp%2FmBegzV&amp;via=heroizm&amp;text=Using%20ANT%20to%20Compile%20a%20Flex%20Mobile%20Project%20for%20iOS&amp;related=heroizm&amp;lang=en&amp;count=none&amp;counturl=http%3A%2F%2Ftechnophi.com%2F2011%2F03%2F08%2Fusing-ant-to-compile-a-flex-mobile-project-for-ios%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://technophi.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://technophi.com/2011/03/08/using-ant-to-compile-a-flex-mobile-project-for-ios/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BlackBerry PlayBook &#8211; Calling All Developers</title>
		<link>http://technophi.com/2010/11/17/blackberry-playbook-calling-all-developers/</link>
		<comments>http://technophi.com/2010/11/17/blackberry-playbook-calling-all-developers/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 19:35:34 +0000</pubDate>
		<dc:creator>Hasan Otuome</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[LAFO]]></category>
		<category><![CDATA[PlayBook]]></category>
		<category><![CDATA[RIM]]></category>

		<guid isPermaLink="false">http://technophi.com/?p=566</guid>
		<description><![CDATA[Unless you&#8217;ve been sleeping under a rock for the past month, you&#8217;ve probably heard that Research In Motion (RIM), creator of the infamous BlackBerry smartphone, is soon to release an entry into the tablet market: The BlackBerry PlayBook. This device will definitely have an impact on the future of tablet-based computing. Here&#8217;s some preliminary info [...]]]></description>
			<content:encoded><![CDATA[<p>Unless you&#8217;ve been sleeping under a rock for the past month, you&#8217;ve probably heard that Research In Motion (RIM), creator of the infamous BlackBerry smartphone, is soon to release an entry into the tablet market: <a href="http://bit.ly/cJRTU5">The BlackBerry PlayBook</a>. This device will definitely have an impact on the future of tablet-based computing. Here&#8217;s some preliminary info regarding the PlayBook:</p>
<p><strong>Features:</strong><br />
1 GHz dual core processor<br />
1 GB RAM<br />
Pair PlayBook with your BlackBerry smartphone via Bluetooth<br />
Uses the same tech Cisco uses to power the World Wide Web (QNX)<br />
Dual HD cameras (3MP front cam/5MP rear cam)<br />
Video codecs supported: 1080p, h.264, mp4, wmv<br />
HDMI video out<br />
micro USB + HDMI<br />
Weighs < 1lb (400g)<br />
Multitouch gestures (4 touch points)<br />
802.11 a/b/g/n WiFi<br />
Support for POSIX, Open GL, BB 6, WebKit, Flash, Java and AIR</p>
<p>The feature set alone should tempt you and if you're already developing apps with Flash Builder 4, PlayBook dev is as simple as adding another SDK in your config properties and setting up the VMWare simulator for testing. Once you're set up, create a new AS3 project and code away. When you compile your project, the AS3 is compiled into a SWF which is then converted to a BAR file before launching inside the simulator. There are even <a href="http://bit.ly/b1pv0p">techniques to convert your APKs from your Android projects to the BAR format</a>.</p>
<p>RIM is serious about helping you get started with your PlayBook development career. They&#8217;ve compiled a ton of resources to help you get up and running. Here&#8217;s a short list:</p>
<p><a href="http://bit.ly/b3sRVR">us.blackberry.com/developers/tablet/devresources.jsp</a><br />
<a href="http://bit.ly/d8s1X3">supportforums.blackberry.com/t5/Tablet-OS-SDK-for-Adobe-AIR/bd-p/tablet</a><br />
<a href="http://bit.ly/bNGrZz">devblog.blackberry.com</a><br />
<a href="http://bit.ly/aKjOSG">labs.adobe.com/technologies/flash/blackberrytabos</a><br />
<a href="http://bit.ly/9X4iYR">adobe.com/devnet/devices/articles/blackberry_tablet_os_sdk.html</a></p>
<p>And, RIM not only wants you developing applications, they want you earning money as well. Some of the features of their monetization program include:<br />
- Carrier billing, credit card and PayPal in over 70 countries and 21 currencies<br />
- 70/30 revenue split (70% Developer/30% RIM)<br />
- In-app payments (unlockables, powerups, etc)</p>
<p>They&#8217;re also arming you with an integrated advertising service that allows you to earn even more revenue from your PlayBook adventures. Here&#8217;s a brief overview of the ad service&#8217;s features:<br />
- 60/40 revenue split (60% Developer/40% RIM)<br />
- Ability to leverage RIMs existing vendor network to get you earning more ad revenue faster<br />
- Maintain full control over which ads you want to display<br />
- Benefit from an open/transparent platform whose goal is to enable devs to generate revenue</p>
<p>Now, if you&#8217;re still undecided, RIM is even offering a FREE PlayBook. That&#8217;s right FREE!! Full details <a href="http://bit.ly/bJYJc7">here</a>. The basics are create a PlayBook app, submit it to BlackBerry AppWorld and once it&#8217;s approved, you&#8217;ll get a free PlayBook when it ships!!</p>
<p>The excitement surrounding the PlayBook is most definitely brewing so, I strongly encourage you to take advantage of RIM&#8217;s generosity to join the forefront of this new mobile application revolution.</p>
<div style="float: right; padding: 3px;"><a href="http://bufferapp.com/add" class="buffer-add-button" data-text="BlackBerry PlayBook &#8211; Calling All Developers" data-url="http://technophi.com/2010/11/17/blackberry-playbook-calling-all-developers/" data-via="bufferapp" data-count="none">Buffer</a><script type="text/javascript" src="http://static.bufferapp.com/js/button.js"></script></div><div id="tweetbutton566" class="tw_button" style="padding: 3px;float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fj.mp%2FjmlB6j&amp;via=heroizm&amp;text=BlackBerry%20PlayBook%20%26%238211%3B%20Calling%20All%20Developers&amp;related=heroizm&amp;lang=en&amp;count=none&amp;counturl=http%3A%2F%2Ftechnophi.com%2F2010%2F11%2F17%2Fblackberry-playbook-calling-all-developers%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://technophi.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://technophi.com/2010/11/17/blackberry-playbook-calling-all-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Illustrator CS5 HTML Pack</title>
		<link>http://technophi.com/2010/09/13/adobe-illustrator-cs5-html-pack/</link>
		<comments>http://technophi.com/2010/09/13/adobe-illustrator-cs5-html-pack/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 20:02:52 +0000</pubDate>
		<dc:creator>Hasan Otuome</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[LAFO]]></category>
		<category><![CDATA[CS5]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Illustrator]]></category>

		<guid isPermaLink="false">http://technophi.com/?p=584</guid>
		<description><![CDATA[If you&#8217;ve been longing for a way to take your vector designs straight from Illustrator to Dreamweaver, you&#8217;ll want to grab the Illustrator CS5 HTML Pack from Adobe Labs. Here&#8217;s a brief rundown of some of the features: PROS Support SVG + HTML 5 - canvas - scaleable - accessible text Generate CSS3 Live, selectable [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been longing for a way to take your vector designs straight from Illustrator to Dreamweaver, you&#8217;ll want to grab the <a href="http://bit.ly/aPtPzn">Illustrator CS5 HTML Pack</a> from Adobe Labs. Here&#8217;s a brief rundown of some of the features:</p>
<p>PROS</p>
<ul>
<li> Support SVG + HTML 5</li>
<p>	- canvas<br />
	- scaleable<br />
	- accessible text</p>
<li>Generate CSS3</li>
<li>Live, selectable text</li>
<p>	- use JS to manipulate</p>
<li>Lots of power to chop up designs (think PS slices)</li>
<li>CSS Export!!! (Export Selected as CSS)</li>
<p>	- export object<br />
	- export object styles<br />
	- export text styles via Character Styles tab<br />
	- export gradients!!</p>
<li>Link to exported CSS via DW</li>
<li>FREE download from Adobe Labs on 9/13 (Get it Today!!)</li>
</ul>
<p>CONS</p>
<ul>
<li>Doesn’t generate HTML; just CSS</li>
<li>IE9 can render natively; older versions have to use a plugin</li>
</ul>
<p>Would write more but I&#8217;m anxious myself so I&#8217;m off to install my copy and start creating!!!  <img src='http://technophi.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div style="float: right; padding: 3px;"><a href="http://bufferapp.com/add" class="buffer-add-button" data-text="Adobe Illustrator CS5 HTML Pack" data-url="http://technophi.com/2010/09/13/adobe-illustrator-cs5-html-pack/" data-via="bufferapp" data-count="none">Buffer</a><script type="text/javascript" src="http://static.bufferapp.com/js/button.js"></script></div><div id="tweetbutton584" class="tw_button" style="padding: 3px;float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fj.mp%2FjLA5Y2&amp;via=heroizm&amp;text=Adobe%20Illustrator%20CS5%20HTML%20Pack&amp;related=heroizm&amp;lang=en&amp;count=none&amp;counturl=http%3A%2F%2Ftechnophi.com%2F2010%2F09%2F13%2Fadobe-illustrator-cs5-html-pack%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://technophi.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://technophi.com/2010/09/13/adobe-illustrator-cs5-html-pack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple vs. Adobe &#8211; Hero&#8217;s Perspective</title>
		<link>http://technophi.com/2010/05/06/apple-vs-adobe-heros-perspective/</link>
		<comments>http://technophi.com/2010/05/06/apple-vs-adobe-heros-perspective/#comments</comments>
		<pubDate>Thu, 06 May 2010 18:59:11 +0000</pubDate>
		<dc:creator>Hasan Otuome</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[LAFO]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://technophi.com/?p=576</guid>
		<description><![CDATA[After reading Steve Job&#8217;s dismissive stance on Adobe&#8217;s Flash technology, I felt compelled to add my two cents on the subject by penning my own letter to Steve. Dear Steve, After reviewing your recent comments regarding Flash and the recent amendments to the Apple Developer TOS, I decided to share with you my response to [...]]]></description>
			<content:encoded><![CDATA[<p>After reading Steve Job&#8217;s <a href="http://www.apple.com/hotnews/thoughts-on-flash/">dismissive stance on Adobe&#8217;s Flash technology</a>, I felt compelled to add my two cents on the subject by penning my own letter to Steve.</p>
<blockquote><p>Dear Steve, </p>
<p>After reviewing your recent comments regarding Flash and the recent amendments to the Apple Developer TOS, I decided to share with you my response to a few of your positions. First, with regards to 3.3.1, Apple should only do QA based on app quality and NOT on app origin. Are we to seriously believe that an iPhone app built with Unity, Flash, etc. pails in comparison technologically to one built via Xcode? Are we to further believe that there are ABSOLUTELY NO poorly written Obj-C apps in the app store? If so, where are the benchmarks and metrics to support these claims? </p>
<p>Logical decisions are typically made based on data collection in some form or fashion. In the absence of such information, those “logical” decisions are eventually revealed to be more subjective in nature vs. being purely objective. Again, if there is data to support the claims against iPhone apps developed in Flash and compiled to *.ipa, please point us to that data.</p>
<p>Now, as to your assertion that Flash is the #1 reason Macs crash, again, we&#8217;d like to see empirical data that supports this claim. Having used apple desktop and laptop computers for more than a decade, I&#8217;d have to respectfully disagree with you. I&#8217;ve personally experienced kernel panics resulting from locked up processes with non-Flash applications (eg, iTunes, Safari, etc). To my knowledge, iTunes makes no use of Flash but yet it has caused my system to enter into a kernel panic on several occasions. Are we still to believe that Flash is the only big bad wolf lurking in the OSX forest? I seriously hope that&#8217;s not your intention. Will your position change when Adobe produces a Flash Player version that takes full advantage of hardware acceleration? I certainly hope so because then we&#8217;ll know that you&#8217;re truly the visionary tech leader that we all hope you to be.</p>
<p>Does this absolve the Flash development community from doing our part to improve the situation? NO!!! Unfortunately, many Flash apps are created by would-be developers that have no clue about memory management, garbage collection and the like. It is far too easy to create Flash apps that consume all of a browser&#8217;s memory, don&#8217;t close properly and eventually obstruct a user. But, I submit that this same fact holds true regardless of the language or platform used to create said applications. In other words, sloppy coding is the problem not the technology. This is from the perspective of a developer fluent in several languages including Obj-C and ActionScript.</p>
<p>I understand you have your business goals and a board of directors to please, but I implore you to work with Adobe rather than against them. Work with Google, Facebook and the like to make the future of technology truly open which benefits us all. Ultimately, we MUST support a free market economy in order to achieve this technological utopia, the results of which will be exponential growth that lasts for a millennium. Yes, it truly can be that explosive. The only thing standing in the way is our present day greed for money and power.</p>
<p>I sincerely hope that you soften your stance and work with the other technology leaders to usher us into that state of tech bliss&#8230; <img src='http://technophi.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>P E A C E</p>
<p>Hasan</p></blockquote>
<div style="float: right; padding: 3px;"><a href="http://bufferapp.com/add" class="buffer-add-button" data-text="Apple vs. Adobe &#8211; Hero&#8217;s Perspective" data-url="http://technophi.com/2010/05/06/apple-vs-adobe-heros-perspective/" data-via="bufferapp" data-count="none">Buffer</a><script type="text/javascript" src="http://static.bufferapp.com/js/button.js"></script></div><div id="tweetbutton576" class="tw_button" style="padding: 3px;float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fj.mp%2Fm39300&amp;via=heroizm&amp;text=Apple%20vs.%20Adobe%20%26%238211%3B%20Hero%26%238217%3Bs%20Perspective&amp;related=heroizm&amp;lang=en&amp;count=none&amp;counturl=http%3A%2F%2Ftechnophi.com%2F2010%2F05%2F06%2Fapple-vs-adobe-heros-perspective%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://technophi.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://technophi.com/2010/05/06/apple-vs-adobe-heros-perspective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FITC Amsterdam 2010 Recap</title>
		<link>http://technophi.com/2010/02/24/fitc-amsterdam-2010-recap/</link>
		<comments>http://technophi.com/2010/02/24/fitc-amsterdam-2010-recap/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 01:27:08 +0000</pubDate>
		<dc:creator>Hasan Otuome</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[LAFO]]></category>

		<guid isPermaLink="false">http://technophi.com/?p=392</guid>
		<description><![CDATA[First, this will be a rather lengthy pictorial of the last few days here in Amsterdam. For those that have never been, I&#8217;ll also share my insights and tips on visiting the city since I&#8217;m a seasoned pro now, LOL (4th time). The City Amsterdam is a really cool city. It hasn&#8217;t changed that much [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://technophi.com/wp-content/uploads/amsterdam_header.png"><img src="http://technophi.com/wp-content/uploads/amsterdam_header.png" alt="" title="amsterdam skyline" width="660" height="160" class="aligncenter size-full wp-image-394" /></a></p>
<p>First, this will be a rather lengthy pictorial of the last few days here in Amsterdam. For those that have never been, I&#8217;ll also share my insights and tips on visiting the city since I&#8217;m a seasoned pro now, LOL (4th time).</p>
<h3>The City</h3>
<p>Amsterdam is a really cool city. It hasn&#8217;t changed that much since my last visit about a decade ago. It has a good mixture of rustic Old European charm and 20th century modernism. It&#8217;s almost as vibrant as New York City but tends to slow down during the week around 2am <img src='http://technophi.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p><a href="http://technophi.com/wp-content/uploads/IMG_0325.jpg"><img src="http://technophi.com/wp-content/uploads/IMG_0325-225x300.jpg" alt="" title="jodenbreestraat" width="225" height="300" class="aligncenter size-medium wp-image-409" /></a></p>
<p>The locals are generally friendly and often find amusement in the confused faces of the American tourists. This is also definitely a bike-friendly city with a lot of the population opting for beach cruisers and mopeds over cars.</p>
<p>The city is filled with quaint little coffee shops, bars and restaurants where one can enjoy an evening of good conversation and more with friends.</p>
<p><a href="http://technophi.com/wp-content/uploads/IMG_0343.jpg"><img src="http://technophi.com/wp-content/uploads/IMG_0343-225x300.jpg" alt="" title="waterlooplein" width="225" height="300" class="aligncenter size-medium wp-image-412" /></a></p>
<p>Having traveled abroad during an era when technology wasn&#8217;t as prevalent, it&#8217;s always amazing to see how it has become so deeply integrated into the fabric of life. On that note, if you have an iPhone, (2) useful apps to have are ATM Hunter and Amsterdam GPS Guide. Both are free and can save you a considerable amount of time. ATM Hunter helps you to locate the nearest Geldautomaat so you can gain access to some local currency. Amsterdam GPS Guide provides offline maps for you to use to scour the city. These free apps will have you motoring about like a local in no time.</p>
<p><a href="http://technophi.com/wp-content/uploads/IMG_0344.jpg"><img src="http://technophi.com/wp-content/uploads/IMG_0344-225x300.jpg" alt="" title="coffe shop reefer" width="225" height="300" class="aligncenter size-medium wp-image-415" /></a></p>
<p>Here&#8217;s a list of some places, in no particular order, worth checking out when in Amsterdam:<br />
- Kadinsky&#8217;s (several locations)<br />
- Abraxas<br />
- Supper Club<br />
- Chipsy King<br />
- Renee&#8217;s Croissants<br />
- The Greenhouse<br />
- Coffee Shop Reefer</p>
<p>Amsterdam also has its dark side so enjoy but be wary of your surroundings always. While you&#8217;re busy watching the sites, someone is always watching you. Should you feel drawn to de Wallen (RLD), try visiting first during the day then return after 10p when it comes to life. DO NOT take pictures of the girls in the windows and if a local approaches you talking about a &#8220;party&#8221;, politely tell him no thanks and keep moving (either dealer or thief).</p>
<p>Now, these are just a few of the things I&#8217;ve come to learn about the city over the past 2 decades of visits. Hopefully they&#8217;ll be helpful to 1st timers or those who have visited previously but a lot of time has passed since their last visit. If you think I&#8217;ve got it twisted, let me know.</p>
<h3>The Conference</h3>
<p>FITC was filled with many amazing presentations and workshops. Everything from audio to video to 3d to <a href="http://music.almerblank.com/">converting images into sound</a> and even workflows for building iPhone apps with the forthcoming Flash CS5. While the general consensus was that the entire conference was outstanding, the talks by Mario Klingermann, Jared Tarbell and Ralph Hauwert seemed to rank high as the crowd favorites. Additional talks that peeked my interest were Joa Ebart&#8217;s overview of his <a href="http://apparat.googlecode.com">open source project</a> and Sam Agesilas&#8217; preview of the forthcoming Orchid open source framework.</p>
<h3>The Fellowship</h3>
<p>This alone is worth the price of admission + trip. Being able to hang out with industry geniuses after all the tension of putting on a successful conference has passed is priceless. The post-conference wind down is often just a continuation of the past days&#8217; events but in a much more relaxed and social environment.</p>
<p>Here we&#8217;re at the Hotel Ambasade participating in a linkup w/Flash Brighton hosted by Seb Lee-Delisle (a/k/a &#8220;Awesome&#8221;). Pictured from left to right are Jim Corbett, Grant Skinner and Sam Agesilas discussing the mobile platform. </p>
<p><a href="http://technophi.com/wp-content/uploads/IMG_0349.jpg"><img src="http://technophi.com/wp-content/uploads/IMG_0349-225x300.jpg" alt="" title="hotel ambasade flash giants 1" width="225" height="300" class="aligncenter size-medium wp-image-419" /></a></p>
<p>Later on, Ralph Hauwert chimes in on a response to a question from the Flash Brighton group. </p>
<p><a href="http://technophi.com/wp-content/uploads/IMG_0351.jpg"><img src="http://technophi.com/wp-content/uploads/IMG_0351-225x300.jpg" alt="" title="hotel ambasade flash giants 2" width="225" height="300" class="aligncenter size-medium wp-image-422" /></a></p>
<p>Stacy Mulcahy and Masakazu (Mash) Ohtsuka patiently awaiting their turns to share in the discussion.</p>
<p><a href="http://technophi.com/wp-content/uploads/IMG_0352.jpg"><img src="http://technophi.com/wp-content/uploads/IMG_0352-225x300.jpg" alt="" title="hotel ambasade - flash giants 3" width="225" height="300" class="aligncenter size-medium wp-image-425" /></a></p>
<p>Influxis co-founder, Richard Blakely, and Seb discussing Rich Media.</p>
<p><a href="http://technophi.com/wp-content/uploads/IMG_0350.jpg"><img src="http://technophi.com/wp-content/uploads/IMG_0350-225x300.jpg" alt="" title="hotel ambasade - flash giants 4" width="225" height="300" class="aligncenter size-medium wp-image-426" /></a></p>
<p>Adobe&#8217;s Lee Brimelow and Mike Chambers arrive on the scene to share in the festivities.</p>
<p><a href="http://technophi.com/wp-content/uploads/IMG_0353.jpg"><img src="http://technophi.com/wp-content/uploads/IMG_0353-225x300.jpg" alt="" title="hotel ambasade - flash giants 5" width="225" height="300" class="aligncenter size-medium wp-image-427" /></a></p>
<p>The evening was definitely off to a good start. Later that night, in a dark, subterranean and smoke filled room, the leaders of the Flash community gathered to pontificate further on the future of the Flash platform. Sorry, can&#8217;t show those pictures as I&#8217;m under an NSTPA&#8230;;)</p>
<div style="float: right; padding: 3px;"><a href="http://bufferapp.com/add" class="buffer-add-button" data-text="FITC Amsterdam 2010 Recap" data-url="http://technophi.com/2010/02/24/fitc-amsterdam-2010-recap/" data-via="bufferapp" data-count="none">Buffer</a><script type="text/javascript" src="http://static.bufferapp.com/js/button.js"></script></div><div id="tweetbutton392" class="tw_button" style="padding: 3px;float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fj.mp%2FlAC57B&amp;via=heroizm&amp;text=FITC%20Amsterdam%202010%20Recap&amp;related=heroizm&amp;lang=en&amp;count=none&amp;counturl=http%3A%2F%2Ftechnophi.com%2F2010%2F02%2F24%2Ffitc-amsterdam-2010-recap%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://technophi.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://technophi.com/2010/02/24/fitc-amsterdam-2010-recap/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

