<?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>rob&#039;s blog &#187; programming</title>
	<atom:link href="http://banagale.com/category/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://banagale.com</link>
	<description>I have a theory that the truth is never told during the nine-to-five hours. -Hunter S. Thompson</description>
	<lastBuildDate>Tue, 26 Jul 2011 08:14:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>iOS / Objective-C App Delegates Explained Using Birds</title>
		<link>http://banagale.com/ios-objective-c-app-delegates-explained-using-birds.htm</link>
		<comments>http://banagale.com/ios-objective-c-app-delegates-explained-using-birds.htm#comments</comments>
		<pubDate>Thu, 16 Sep 2010 15:40:55 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone SDK]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=689</guid>
		<description><![CDATA[As I build upon my understanding of Objective-C, I&#8217;ve been working to better understand the concept of a delegate and when they should be used.  In searching for clarity, I came upon an explanation by Mark Hernandez the administrator of iPhoneDevForums.com. For posterity, I&#8217;ve copied Mark&#8217;s explanation here. For his full explanation and his code [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-692" style="float: right;" title="bird_in_hat" src="http://banagale.com/blog/wp-content/uploads/2010/09/bird_in_hat.png" alt="" hspace="5" width="250" height="189" />As I build upon my understanding of Objective-C, I&#8217;ve been working to better understand the concept of a delegate and when they should be used.  In searching for clarity, I came upon <a href="http://www.iphonedevforums.com/forum/sdk-coding-help/1098-delegate-vs-viewcontroller-files-code.html">an explanation by Mark Hernandez</a> the administrator of iPhoneDevForums.com.</p>
<p>For posterity, I&#8217;ve copied Mark&#8217;s explanation here. For his full explanation and his code example, follow the link above.</p>
<blockquote><p>My favorite way to explain how delegates work involves animals.</p>
<p>Let&#8217;s say you are going to create a particular bird. You start with a predefined class definition of a bird (provided in the existing framework as, say, CFBird). The existing framework class assumes all birds have certain things in common &#8212; they hatch and grow the same, poop the same, fly the same, and lay eggs the same way, etc. (tee hee, I said poop. <img title="Smile" src="http://www.iphonedevforums.com/forum/NEWIDF/smilies/smile.gif" border="0" alt="" /> ) But different birds look different, are different sizes, chirp differently, eat different things, and <em>may</em> mate differently.<span id="more-689"></span></p>
<p>So let&#8217;s say Apple provided you with the basic bird class (with hatching, growing, pooping, flying and egg-laying behavior already built in).</p>
<p>Here now in this more advanced age of object-oriented design, there&#8217;s a concept (design pattern) called &#8220;delegation&#8221; and it&#8217;s a cool way to easily implement custom classes, assuming ahead of time that you&#8217;ll likely never need to worry about anything else about creating birds other than specifying how they differ from each other &#8212; how they look (size and color) and how they chirp, eat and mate.</p>
<p>So, the people who designed the CFBird class have set up a &#8220;protocol&#8221; which specifies the &#8220;delegate methods&#8221; (kinda like &#8220;callbacks&#8221; in C) which is all your new class will need to implement to create your custom bird, and you&#8217;re done! Basically the class is going to call into your code when your particular bird is drawn, when it chirps, eats and mates. These tasks are &#8220;delegated&#8221; to you in your subclass of CFBird.</p>
<p>Everything else is handled for you, and you only need to concern yourself with what is different about your bird, and forget about what is the same amongst all birds, simplifying your life and making things more consistent.</p>
<p>In your code, when you specify your new class of bird, in the @implementation you&#8217;ll make reference to a &lt;protocol&gt;, and by doing so you are telling the system that you agree to implement the methods specified in that protocol which will detail exactly how your particular bird is going to look, chirp, eat, and mate. Done and done.</p>
<p>The subclassing comes first, and the possible <em>delegate methods</em> follow if you specify a protocol to follow.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/ios-objective-c-app-delegates-explained-using-birds.htm/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fix for Terminating App Due to Uncaught Exception &#8216;NSInvalidArgumentException&#8217;</title>
		<link>http://banagale.com/fix-for-terminating-app-due-to-uncaught-exception-nsinvalidargumentexception.htm</link>
		<comments>http://banagale.com/fix-for-terminating-app-due-to-uncaught-exception-nsinvalidargumentexception.htm#comments</comments>
		<pubDate>Mon, 13 Sep 2010 15:36:04 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone SDK]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=683</guid>
		<description><![CDATA[I&#8217;ve been experimenting with a multiview iPhone / iOS app with a tab-based navigation and came across an error and solution for &#8220;unrecognized selector sent to instance.&#8221; In one of the tab&#8217;s views I had a standard button with a Touch Up Inside event that I had connected to a buttonClicked method in the view&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been experimenting with a multiview iPhone / iOS app with a tab-based navigation and came across an error and solution for &#8220;<em>unrecognized selector sent to instance</em>.&#8221;</p>
<p>In one of the tab&#8217;s views I had a standard button with a Touch Up Inside event that I had connected to a buttonClicked method in the view&#8217;s controller.  For some reason, when I tapped that button the app would crash.  This was not happening when I built the same stuff in a single view app.</p>
<p>I went searching and was happy to find that the problem was well described and solved in the <a href="http://forums.macnn.com/79/developer-center/370199/unrecognized-selector-sent-to-instance/">developer forums of MacNN</a>.  It turns out that when you have have multiple view controllers for separate .xib files being controlled by a Tab Bar Controller you need to take an extra step of setting the Class Identity for that particular view. Here&#8217;s how:<span id="more-683"></span></p>
<ol>
<li>Open up MainWindow.xib in Interface Builder</li>
<li>Expand the Tab Bar Controller item. (Your views are displayed)</li>
<li>Single-click the controller containing your button.</li>
<li>Hit ⌘-4 to bring up the Properties Inspector.</li>
<li>Under Class Identity at the top, you&#8217;ll see the Class is set to UIViewController.  You need to use the dropdown to select the controller for that particular view.  In my case it was called SounderViewController, but it should match the name of the controller where your button clicked method is.</li>
</ol>
<p>Voila.  Hope that helped you. If it did, please leave a comment. If it didn&#8217;t, please leave a comment.  Follow me on Twitter for iOS, music and life musings: <a href="http://www.twitter.com/jetsetter">@jetsetter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/fix-for-terminating-app-due-to-uncaught-exception-nsinvalidargumentexception.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rock Show Concert Posters 2.0: Now on iPhone and iPod Touch</title>
		<link>http://banagale.com/rock-show-concert-posters-2-0-now-on-iphone-and-ipod-touch.htm</link>
		<comments>http://banagale.com/rock-show-concert-posters-2-0-now-on-iphone-and-ipod-touch.htm#comments</comments>
		<pubDate>Tue, 03 Aug 2010 18:46:19 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[concerts]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[mobile computing]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=661</guid>
		<description><![CDATA[I&#8217;m pumped to announce availability of Rock Show 2.0.  This is the first version of Rock Show that works on the iPad and both the iPhone and iPod Touch.  A lot of fixes and tweaks are in this version of the application, along with some new posters as well! Two articles are up about the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bit.ly/cFZaJA"><img class="alignnone size-full wp-image-662" title="concert posters rock show ipad iphone" src="http://banagale.com/blog/wp-content/uploads/2010/08/rob_blog.jpg" alt="concert posters rock show ipad iphone" width="480" height="376" /></a></p>
<p>I&#8217;m pumped to announce availability of Rock Show 2.0.  This is the first version of Rock Show that works on the iPad and both the iPhone and iPod Touch.  A lot of fixes and tweaks are in this version of the application, along with some new posters as well!</p>
<p>Two articles are up about the release, <a href="http://www.padgadget.com/2010/08/03/rock-show-2-0-available-now/">Padgadget is hosting</a> one item and a second can be found at <a href="http://www.intomobile.com/2010/08/03/rock-show-2-0-allows-iphone-and-ipod-touch-users-to-shop-for-concert-posters-too/">IntoMobile</a>.  For a full low-down and updated info on the app, visit its page: <a href="We're excited to announce availability of Rock Show Concert Posters now available for the iPhone, iPad and iPod Touch: http://bit.ly/cFZaJA">http://www.rockshow.fm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/rock-show-concert-posters-2-0-now-on-iphone-and-ipod-touch.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Compelling App Descriptions for iTunes and the iOS App Stores</title>
		<link>http://banagale.com/character-and-formatting-tips-for-copy-writing-in-itunes-and-the-ios-app-store.htm</link>
		<comments>http://banagale.com/character-and-formatting-tips-for-copy-writing-in-itunes-and-the-ios-app-store.htm#comments</comments>
		<pubDate>Sat, 24 Jul 2010 01:25:31 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[selling]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=618</guid>
		<description><![CDATA[When you submit an iOS application for review, you&#8217;ve got to make sure your ad copy is tight.  The app description may be the last thing holding back a tap to buy your app. Apple doesn&#8217;t give much guidance on this important chunk of text. &#8220;Write your Application Description with a focus on what makes [...]]]></description>
			<content:encoded><![CDATA[<p>When you submit an iOS application for review, you&#8217;ve got to make sure your ad copy is tight.  The app description may be the last thing holding back a tap to buy your app.</p>
<p>Apple doesn&#8217;t give much guidance on this important chunk of text. &#8220;Write your Application Description with a focus on what makes the functionality or design of your app unique.&#8221; was a tip from this past June from the App Store Tips blog.</p>
<p>We know that 4000 characters is the limit.  And App descriptions are made up of simple text, including <a href="http://en.wikipedia.org/wiki/Unicode_symbols">unicode symbols</a> like checkboxes (✔) and more (♣☢☂).  Apple takes your unicode text and formats it for display on the web via Web Preview, in iTunes and on the iOS devices themselves (the app store).</p>
<p>Since you probably have very specific points you want to get across, and users have a very short attention span, you need to pay attention to how Apple will format what you write.  In this entry I discuss how to create app descriptions that look great everywhere Apple publishes your app description.</p>
<p><span id="more-618"></span></p>
<p><strong>Word Wrap and the Fold</strong></p>
<p>Word wrap occurs in app descriptions when enough characters fill up a line.  Each line has a maximum number of characters and when a word goes over that, it is bumped to the next line.  This is important because one word of word wrap can waste an entire line of potential ad copy.  This is important: the length of your lines in your app description affects the placement of the <em>fold</em>.</p>
<p>The fold is the point where iTunes, Web Preview or the iPad App Store app decide to make the user click or tap the <strong>More&#8230;</strong> button.  Everything below the fold is out of sight, out of mind.  Without the data to prove it, my hunch is that at least half the time, users are not bothering to click <strong>More&#8230;</strong> before deciding whether they are installing an app or not.</p>
<p>All this means is that you must use the space above the fold as effectively as possible.</p>
<p>All app purchase vectors limit the top of fold line display to three lines.  Two important rules here:</p>
<ol>
<li>Blank lines count as lines.</li>
<li>Lines over 120 characters in length will lead to word wrap and the use of an additional line above the fold line.</li>
</ol>
<p><strong>App Description Formatting on iTunes and Web Preview</strong></p>
<p>Web Preview and iTunes behave in a similar way, Web Preview is just that, a summary of your app description and screenshots along with a link to view the app in iTunes.  The final step on a computer is to have iTunes open to the page where the user clicks purchase to download the app.  A history of Web Preview and SEO implications may be found <a href="http://theappleblog.com/2010/03/10/app-store-seo-the-impact-of-itunes-web-preview/">here</a>.</p>
<p>Both iTunes and Web Preview show the same number of lines from your app description before the &#8220;break&#8221; point.  A break point is where all text is hidden below the fold, and the user must click the More&#8230; link to display the rest.</p>
<p>Let&#8217;s look at some examples. The following three shots were taken from Web Preview.  iTunes displays the same amount of information as Web Preview, however only Web Preview has fixed width.  Resize the iTunes app window, allows longer word-wrapping lines but ultimately the same amount of information above the fold as Web Preview.</p>
<p><em>Note: Click any images to see the full size.</em></p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/desc_flirate.png"><img class="alignleft size-full wp-image-619" style="border: 1px solid black;" title="app description" src="http://banagale.com/blog/wp-content/uploads/2010/07/desc_flirate.png" alt="App description itunes app store seo fold line wrap" width="692" height="124" /></a></p>
<p>Here the app publisher has chosen to highlight two specific sentences and put a line of space between them for readibility.  Note that if the first line was longer than 120 characters, top of fold would be a complete and a partial line (due to the wrap) and the third would simply be a blank space.</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/desc_picturizr.png"><img class="alignleft size-full wp-image-620" style="border: 1px solid black;" title="Pictureizer" src="http://banagale.com/blog/wp-content/uploads/2010/07/desc_picturizr.png" alt="Apple app store iTunes submission app description" width="706" height="126" /></a></p>
<p>Here the app publisher has one long line of text with no carriage returns.  This means that all three allowable lines of text are the result of one word wrapped line.  This is the maximum amount of information you can cram into the top of fold, but it does not read very well here.  Wait until you see how ad copy like this looks in the iPhone&#8217;s App Store.  For your reference, this one line of text is about <strong>343 characters in length</strong>.</p>
<p><strong>Looking at the devices</strong></p>
<p>Currently there are two different sizes in the iOS hardware family.  The long one, (iPhone and iPod Touch devices), and the wide one, (iPad devices).  In addition, there are three types of binaries, iPhone only apps, iPad only apps and Universal apps, which work on both iPhone (iPod Touch too) and iPad.</p>
<p>If your app is only for iPhone you need to focus on how it is displayed in the iPhone&#8217;s app store.  If it is only for iPad, you need to look at it there.  In either case you also need to look at how Apple&#8217;s relatively new Web Preview page displays your app description too.</p>
<p><strong>App Description Formatting on the iPhone</strong></p>
<p>Often users install apps directly on their device, rather than using iTunes and syncing a purchase.  It is certainly less clunky and you have instant satisfaction of getting to run the app right away.  That means your app description marketing copy should be influenced by how the lines of text look when displayed on each of these devices.</p>
<p>Here are some screenshots of how word wrapping of text affects readability on the iPhone App Store app.  Note that the iPhone app store app only supports portrait orientation.</p>
<p><img class="size-full wp-image-622 alignnone" title="iphone_app_store_ibooks" src="http://banagale.com/blog/wp-content/uploads/2010/07/iphone_app_store_ibooks.png" alt="app description hacking paragraph line spacing" width="320" height="480" /></p>
<p>Interestingly, a long line of text looks like a nice paragraph on the iPhone.  Also, Apple uses the bullet character to bullet features.</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/iphone_app_store_echofon.png"><img class="alignnone size-full wp-image-623" title="iphone_app_store_echofon" src="http://banagale.com/blog/wp-content/uploads/2010/07/iphone_app_store_echofon.png" alt="iPhone sdk binary uploader application category" width="320" height="480" /></a></p>
<p>Note here that the long lines make the display of this text awkward and difficult to read.  (I use it anyhow!)</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/rock_show_app_store.png"><img class="alignnone size-full wp-image-642" src="http://banagale.com/blog/wp-content/uploads/2010/07/rock_show_app_store.png" alt="Rock Show iPhone iPad iPod Touch platform app description" width="320" height="480" /></a></p>
<p>Note a few things here:</p>
<ol>
<li>The first and third lines are used so Web Preview and iTunes display both lines top of fold.</li>
<li>The bulleted lists do not word wrap, (the max char per line is 45).</li>
<li>Unicode goodness makes it look crisp.</li>
<li>Attention goes to lines 17 and 18 in the app description.  They are the final ones before the user would scroll down to see the screen shots.</li>
</ol>
<p>Here&#8217;s Rock Show&#8217;s Web Preview:</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/Screen-shot-2010-07-23-at-10.54.55-PM.png"><img class="alignnone size-full wp-image-650" style="border: 1px solid black;" title="Screen shot 2010-07-23 at 10.54.55 PM" src="http://banagale.com/blog/wp-content/uploads/2010/07/Screen-shot-2010-07-23-at-10.54.55-PM.png" alt="apple app description itunes store ios" width="719" height="146" /></a></p>
<p><strong>App Description Formatting on the iPad</strong></p>
<p>The iPad app store app supports both landscape and portrait modes.  It also brings back the idea of the fold and its exposing link, &#8220;More&#8230;&#8221;  In this way, the iPad&#8217;s app store application is formated more like iTunes&#8217; traditional display.  See for yourself by comparing iBooks Web Preview with the landscape view of the iPad App Store app. iBooks also happens to have a fancy custom background that 3rd party developers generally won&#8217;t have access to:</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/photo-2.png"><img class="alignnone size-full wp-image-643" title="photo 2" src="http://banagale.com/blog/wp-content/uploads/2010/07/photo-2.png" alt="" width="500" height="667" /></a></p>
<p><strong>Conclusion</strong></p>
<p>There isn&#8217;t an easy way to preview how your app&#8217;s text will look in all these different store fronts until after it is published , but you can at least know what you&#8217;re up against.</p>
<p>Experiment with your language and line length.  Every opportunity for a new installation of your software on an iOS device holds not only immediate, but residual value.  Since potential users may view your value proposition from a few different angles, pay attention to the quirks and write accordingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/character-and-formatting-tips-for-copy-writing-in-itunes-and-the-ios-app-store.htm/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Reprogrammed Animatronic Bear Band Plays MGMT Cover</title>
		<link>http://banagale.com/516.htm</link>
		<comments>http://banagale.com/516.htm#comments</comments>
		<pubDate>Mon, 21 Jun 2010 06:39:47 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[remix]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=516</guid>
		<description><![CDATA[Aaron Fechter the President of Creative Engineering, Inc has been reprogramming a working animatronic bear-band set up.  It looks like the company created it for a line of restraunts similar to Chuck E. Cheese.  He&#8217;s currently taking cash bids to do syncing or &#8220;choreography&#8221; for the band members. The way the performance is filmed and presented [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/MGWJbcTvL_M&amp;feature" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/MGWJbcTvL_M&amp;feature"></embed></object></p>
<p>Aaron Fechter the President of <a href="http://www.starsof.com/fans/page3.html">Creative Engineering, Inc</a> has been <a href="http://blogs.laweekly.com/westcoastsound/lists/top-5-cover-songs-by-chuck-e-c/">reprogramming</a> a working animatronic bear-band set up.  It looks like the company created it for a line of restraunts similar to Chuck E. Cheese.  He&#8217;s currently taking cash bids to do syncing or &#8220;choreography&#8221; for the band members.</p>
<p>The way the performance is filmed and presented are awesome.  Shakey prolonged shots, quick pulls outward.  The overall video quality is low and the colors look a bit washed out.  Everything is blurry and the bear with the guitar has a spooky shadow.   Great media.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/516.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using an HTML Web View with a Transparent Background in iPhone SDK&#8217;s Interface Builder and Xcode</title>
		<link>http://banagale.com/using-an-html-web-view-with-a-transparent-background-iphone-interface-builder.htm</link>
		<comments>http://banagale.com/using-an-html-web-view-with-a-transparent-background-iphone-interface-builder.htm#comments</comments>
		<pubDate>Fri, 26 Jun 2009 16:32:36 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile computing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[transparency]]></category>
		<category><![CDATA[uitextview]]></category>
		<category><![CDATA[uiwebview]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=340</guid>
		<description><![CDATA[Something almost every iPhone application needs is an About and Help view that allows the user to learn a little bit about the application they&#8217;re using and  how it should be operated.  The problem with a UITextView in Apple&#8217;s XCode and Interface Builder SDK is that you can not use rich-text styling or even bold [...]]]></description>
			<content:encoded><![CDATA[<p>Something almost every iPhone application needs is an About and Help view that allows the user to learn a little bit about the application they&#8217;re using and  how it should be operated.  The problem with a UITextView in Apple&#8217;s XCode and Interface Builder SDK is that you can not use rich-text styling or even bold one line over another.</p>
<p>One solution to this problem would be to create image files containing stylized text and then rasterize them and allow the user to page through them.  The problem with this is that you can&#8217;t have tappable URLs or links embedded in the text.</p>
<p>David Peixotto, coding ninja and my business partner for <a href="http://www.neutrinosllc.com">Neutrinos</a>, suggested we look at using a Webview or HTML view and put an imageview in the background.  The trick is telling the iPhone to display a UIWebView with a transparent background.  I looked around for the solution to this and came across <a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/4918-uiwebview-render-speeds-white-background.html#post24796">this helpful post</a> in the iPhone Developer SDK forums.</p>
<p>Step one of getting a transparent web view in interface builder is to create HTML in the controller.m for the view containing the webview that contains the CSS line: &lt;body style=&#8221;background-color:transparent&#8221;&gt; Inside the &lt;head&gt; &lt;/head&gt; sections of the html.</p>
<p>Step two is to set the background color of the webview to clear or transparent:  myWebView.backgroundColor = [UIColor clearColor];<span id="more-340"></span></p>
<p>Step three is to make sure that the &#8220;Opaque&#8221; box on the inspector of properties of the WebView is unchecked.</p>
<p>That should be all you need to do.  Drop a UIImageView behind the newly transparented web view object and you should be able to use a scrollable rich text with hyperlinks.  Horray.</p>
<p>If this helped you or confused you more, please post in the comments!  We do have it working on 3.0 much to the happiness of our client.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/using-an-html-web-view-with-a-transparent-background-iphone-interface-builder.htm/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Display a Simple Loading Message and Animated Loading Gif Using JavaScript</title>
		<link>http://banagale.com/display-a-simple-loading-message-and-animated-loading-gif-using-javascript.htm</link>
		<comments>http://banagale.com/display-a-simple-loading-message-and-animated-loading-gif-using-javascript.htm#comments</comments>
		<pubDate>Wed, 20 May 2009 19:57:28 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[action cueing]]></category>
		<category><![CDATA[dynamic webpages]]></category>
		<category><![CDATA[visual feedback]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=310</guid>
		<description><![CDATA[Some pages require an inordinate amount of time to load.  For most sites, this is a big problem.  Webmasters and SEO specialists know the value of a quick landing page load, because they know that netizens have short attention spans. Dynamically built webpages, (especially applications), require time to load and visual feedback that something is happening. [...]]]></description>
			<content:encoded><![CDATA[<p>Some pages require an inordinate amount of time to load.  For most sites, this is a big problem.  Webmasters and SEO specialists know the value of a quick landing page load, because they know that netizens have short attention spans.</p>
<p>Dynamically built webpages, (especially applications), require time to load and visual feedback that <em>something</em> is happening.  The most famous example is the gmail loading page:</p>
<p><img class="aligncenter size-full wp-image-312" title="Loading Message and Animated Gif Example Javascript" src="http://banagale.com/blog/wp-content/uploads/2009/05/loading_animated_gif_javascript1.jpg" alt="Loading Message and Animated Gif Example Javascript" width="480" height="243" /></p>
<p>Gmail uses a more sophisticated progress bar to represent the loading of the webpage.  I found <a href="http://yensdesign.com/2008/11/how-to-create-a-stylish-loading-bar-as-gmail-in-javascript/">an article on yensDesign</a> that gives some great advice on how to do this, if you want to get really fancy.</p>
<p>If you have a dynamically built page that you&#8217;d like to give a loading message to that doesn&#8217;t require a full progress bar, I recommend simply displaying a message and an animated gif.</p>
<p><strong>The Method</strong></p>
<p>The trick to accomplishing this is a small mix of JavaScript and CSS.  You don&#8217;t have to be using &lt;div&gt;&#8217;s to display your content, but you should.  My example uses &lt;div&gt;&#8217;s.<span id="more-310"></span></p>
<p>Let&#8217;s begin by assuming you have the majority of your page&#8217;s content within a series of nested DIV&#8217;s, where the outermost DIV is called &#8220;container.&#8221;</p>
<pre>
 &lt;div id="container"&gt;
    &lt;div id="heading"&gt;
       ...heading content...
     &lt;/div&gt;
     &lt;div id="body"&gt;
       ...body content...
     &lt;/div&gt;
  &lt;/div&gt;</pre>
<p>Normally, the dynamic content in your container would be rendered by the browser after it has downloaded and performed the main JavaScript routines.  What we want to do is hide the container when the page is first loaded and instead display a DIV that contains a waiting message and a little animated gif icon.</p>
<p>Begin by using the CSS <em>display </em>property to hide the container DIV like so:</p>
<pre>  &lt;div id="container" style="display:none"&gt;</pre>
<p>Next, you need to add a new DIV that contains your &#8220;Please Wait, loading&#8230;&#8221; message.  I chose to include an animated gif icon of a twirling circle, which I easily created using the <a href="http://www.ajaxload.info/">AjaxLoad.info</a>, a site created by <a href="http://www.kath.fr/">Catherine Roman</a>.   If you want to download my animated loading gif, you can <a href="http://banagale.com/portfolio/images/ajax-loader.gif">get it here</a>.</p>
<p>Here is an additional set of nested DIV&#8217;s that contain the loading content.  This should be placed outside the container DIV:</p>
<pre>      &lt;div id='siteLoader'&gt; 
        &lt;div id='siteDetailLoader'&gt; 
        &lt;img src='/path/to/your/animated/gif/loading.gif' border='0'&gt; 
        Please wait while the page loads...&lt;br /&gt; &lt;br /&gt; 
        &lt;/div&gt; 
      &lt;/div&gt; </pre>
<p>You&#8217;ll note that the display property is not set on siteLoader because it is visible by default.  This is what we want.  The trick now is to make the siteLoader DIV dissappear once the dynamic page content is done loading while simultaneously displaying the container DIV with the real page content.</p>
<p>This is handled using the global event handler <a href="http://javascript.about.com/library/blonload.htm">onLoad</a>.  There a few ways to make use of the onLoad event, I recommend including an external JavaScript file.  Do this by saving a new text file called actions.js in the same directory as the page you&#8217;re changing.  Just after your &lt;title&gt; tag on your document include this external JavaScript  file using:</p>
<p><span style="font-family: 'Courier New'; line-height: 18px; white-space: pre;">&lt;script src=&#8221;actions.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</span></p>
<p>Inside actions.js, you need to include a function based on window.onload as follows:</p>
<pre>window.onload = function() {
   document.getElementById("siteLoader").style.display = "none";
   document.getElementById("container").style.display = "block";
}</pre>
<p>What this is doing is saying to the browser, &#8220;as soon as you&#8217;re done loading the webpage, you should hide the &#8216;please wait&#8217; stuff and show the meat and potatos of my webpage.&#8221;</p>
<p>To view all of this in action, have a look at my recently <a href="http://www.banagale.com/portfolio">updated online portfolio</a> which of course, talks up what a great person I am. <img src='http://banagale.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   I hope this has been helpful, as always&#8211;please post your comments!</p>
<p>For further reading on busy indicators and the important visual feedback and attention cueing needed to be successful with the display of heavy dynamic webpages, have a look at the article series on SAP Design Guild by Gerd Waloszek called &#8220;<a href="http://www.sapdesignguild.org/community/design/busy_feedback_3.asp">Waiting at the Computer: Busy Indicators and System Feedback</a>.&#8221;   There is a wonderful table giving guidelines on the type of feedback that should be displayed based on user wait time.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/display-a-simple-loading-message-and-animated-loading-gif-using-javascript.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Custom Styling the ShareThis Button Using CSS Without API Calls</title>
		<link>http://banagale.com/custom-styling-the-sharethis-button-using-css-without-api-calls.htm</link>
		<comments>http://banagale.com/custom-styling-the-sharethis-button-using-css-without-api-calls.htm#comments</comments>
		<pubDate>Wed, 06 May 2009 17:34:41 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[sharethis]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=302</guid>
		<description><![CDATA[I was just doing a ShareThis icon for a client I&#8217;m working with and found that how to properly style the button is poorly documented.  In order to replace the whole icon and text, you are supposed to use the developer API. I only wanted to style the text, so I was hunting for some [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-303" style="float:right" title="ShareThis CSS Style Classes Button" src="http://banagale.com/blog/wp-content/uploads/2009/05/sharethis-logo.jpg" alt="ShareThis CSS Style Classes Button" width="150" height="150" /></p>
<p>I was just doing a ShareThis icon for a client I&#8217;m working with and found that how to properly style the button is poorly documented.  In order to replace the whole icon and text, you are <a href="http://support.sharethis.com/developers/developers-faq/stapi/62">supposed to use</a> the developer API.</p>
<p>I only wanted to style the text, so I was hunting for some CSS to style the text and could not find the right classes to call.  Some hunting turned up the following:<span id="more-302"></span></p>
<p><strong>.stbuttontext</strong> &#8211; This class will allow you to change the look of the text, ShareThis.  You can style it with any normal styling like color or font-family but text-decoration does not seem to work. :p</p>
<p><strong>.stico_default</strong> &#8211; This class allows you to style the icon itself.  An example on how to replace the ShareThis icon with your own site&#8217;s favicon <a href="http://www.webmonkey.com/tutorial/Share_Your_Site_With_ShareThis">webmonkey</a> is: </p>
<pre>{
	background: transparent url(http://www.banagale.com/favicon.ico) no-repeat scroll 0px 0px !important;
}</pre>
<p>I&#8217;m interested in any other css that can be used to style the ShareThis button without requiring API calls (if there are any).   if you know of additional classes, or this helped you please post a reply.</p>
<p><a href="http://www.twitter.com/jetsetter">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/custom-styling-the-sharethis-button-using-css-without-api-calls.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Contact Us Javascript Form Validation and Custom Fields in SalesForce</title>
		<link>http://banagale.com/contact-us-javascript-form-validation-and-custom-fields-in-salesforce.htm</link>
		<comments>http://banagale.com/contact-us-javascript-form-validation-and-custom-fields-in-salesforce.htm#comments</comments>
		<pubDate>Thu, 09 Apr 2009 03:56:13 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[salesforce]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[lead development]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=268</guid>
		<description><![CDATA[The web Contact Us form serves as an important starting point for people interested in a product or service.  For a big company, handling inbound leads over the course of a long sales process requires a strong CRM.  SalesForce is a fully featured CRM plaform, however in my experience it has somehow ignored an important [...]]]></description>
			<content:encoded><![CDATA[<p>The web Contact Us form serves as an important starting point for people interested in a product or service.  For a big company, handling inbound leads over the course of a long sales process requires a strong CRM.  SalesForce is a fully featured CRM plaform, however in my experience it has somehow ignored an important source for sales leads: contact us forms on the company website.</p>
<p>Salesforce does not explain how its clients should go about crafting a quality Contact Us web page.</p>
<p><strong>What is a quality Contact Us web page?  </strong></p>
<p>Generally you’ll find the same type of fields on Contact Us pages across the web.  You are asked for your first and last name, job title, complete address and something specific about your query, like Where did you hear about us? Or What model Range Rover are you interested in?</p>
<p> What’s the use of having their name if you don’t have their phone number?  Usually, a company will want to set specific form fields to required. Checking whether a potential customer has filled out a required answer is called form validation.<span id="more-268"></span></p>
<p><strong>An Overview of Form Validation</strong></p>
<p>There are two ways to validate form data, client side and server side.  While doing both client and server side validation may be a <a href="http://wiki.answers.com/Q/Client_side_form_validation_vs_server_side_form_validation">best practice</a>, my experience is that only one method is chosen.</p>
<p>In general, Javascript is used to validate forms on the client side (in browser).  When a potential customer forgets to enter their phone number, javacript pops a small dialog box reminding them they screwed up.  The user fixes their error and tries submitting again.</p>
<p>Server side validation occurs when the potential customer submits a form and a new page loads, typically with a warning in red saying what information they forgot to enter.  The user then clicks back to return and complete the form.</p>
<p><strong>Limitations of Data Validation on Salesforce Powered Contact Us Forms</strong></p>
<p>Salesforce does not allow server-side data verification.  My understanding is that all users of Salesforce submit form data to the same encrypted URL: https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8</p>
<p>A unique customer ID accompanies all data posted to Salesforce which routes it into your personal silo of the great CRM cloud in the sky.  Since you don’t control this servlet page on salesforce.com, you can’t do anything once the form is submitted.</p>
<p>This means that a client side check, using javascript, is your only real alternative for validating forms used to feed data into Salesforce.</p>
<p><strong>Implementation</strong></p>
<p>There are many examples on the web of how perform simple form validation with Javascript.  If you want to get really fancy, here’s<a href="http://banagale.com/blog/wp-content/uploads/2009/04/salesforce_javascript.txt"> the javascript SalesForce uses</a> for validating its own forms.  It includes checking for the email address to be formed properly and if the phone number is valid.  A screenshot of the page the above jscript was taken from is below.</p>
<p><img class="alignright size-full wp-image-282" title="salesforce_web_to_lead" src="http://banagale.com/blog/wp-content/uploads/2009/04/salesforce_web_to_lead.jpg" alt="salesforce_web_to_lead" width="480" height="359" /></p>
<p>Keeping it simple, you can simply ensure something was typed into individual fields like so:</p>
<blockquote><p>&lt;script type=&#8221;text/javascript&#8221;&gt;</p>
<p>function validate_required(field,alerttxt) {</p>
<p>with (field)</p>
<p>{</p>
<p>if (value==null||value==&#8221;")</p>
<p>{alert(alerttxt);return false;}</p>
<p>else {return true}</p>
<p>}</p>
<p>}</p>
<p>function validate_form(thisform)</p>
<p>{</p>
<p>with (thisform)</p>
<p>{</p>
<p>if (validate_required(first_name,&#8221;Please fill out your first name.&#8221;)==false)</p>
<p>  {first_name.focus();return false;}</p>
<p>}</p>
<p>}</p>
<p>&lt;/script&gt;</p></blockquote>
<p>The matching form element would be:</p>
<blockquote><p>&lt;label for=&#8221;first_name&#8221;&gt;First Name: *&lt;/label&gt;</p>
<p>&lt;input  id=&#8221;first_name&#8221; maxlength=&#8221;40&#8243; name=&#8221;first_name&#8221; size=&#8221;25&#8243; type=&#8221;text&#8221; /&gt; </p></blockquote>
<p>And finally the &lt;form&gt; tag needs to run the javascript:</p>
<blockquote><p>&lt;form action=&#8221;https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8&#8243; onsubmit=&#8221;return validate_form(this)&#8221; method=&#8221;post&#8221;&gt;</p></blockquote>
<p>Voila.  You have performed client-side data validation.  </p>
<p><strong>Caveats and Other Madness</strong></p>
<p>This example uses the standard Salesforce field “first name” and its associated id, first_name.  If you use custom fields in Salesforce, you’re going to have to deal with weird id’s, like 000004fsx02.  In these cases you will need to construct form elements with different ID and Name values, since the javascript that I used did not accept DOM names that began with numbers.  </p>
<p><a href="http://www.startupcto.com/front-end-tech/xhtml/id-vs.-name-in-form-fields">My research</a> suggests that this is against convention, but you do what you’ve got to do.  Maybe you can write better javascript that will take these funky salesforce custom field id’s.  If you can, please post your solution here.</p>
<p>I should also mention that occasionally you want to hard code data for passing into custom fields in Salesforce.  In these cases you must still use the form data spit out by web-to-form, only set the only response to what you want and set the item to hidden.</p>
<p><strong>Suggestions for Salesforce</strong></p>
<p>Salesforce disowns anything you do with the HTML that the web to form functionality kicks out for you.  They do not support creation of contact us forms, and provide no advice on technologies or methods to validate data inbound to their CRM.  Asking their customer support staff  if their CRM has the ability to perform server side validation will be met with confusion.</p>
<p>Salesforce needs to provide better support for this important aspect of lead origin into its client’s sales processes.  Undoubtedly, SF likely has elegant methods for working with data using its SDK.  If it is going to actually reach startups and smaller businesses with a $9 per user subscription plans, it needs to better support the most basic functionality of passing data into the system.</p>
<p>If Salesforce does not better address the down market, it will lose against startups like Zoho that offers a similarly priced CRM and a comprehensive set of other web applications and that has a <a href="http://blogs.zoho.com/general/add-a-contact-us-form-using-zoho-creator">user community willing to create</a> how-to videos for things like Contact Us form creation.</p>
<p>At a minimum an explanatory page should be available in Salesforce’s online help to explain the basic methods for building and validating web form data.</p>
<p>I hope this has been helpful, please post your experience!</p>
<p>Follow me on <a href="http://www.twitter.com/jetsetter">twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/contact-us-javascript-form-validation-and-custom-fields-in-salesforce.htm/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Apple Touch Platform Applications Approval Process Stirs Concern</title>
		<link>http://banagale.com/apple-touch-platform-applications-approval-process-stirs-concern.htm</link>
		<comments>http://banagale.com/apple-touch-platform-applications-approval-process-stirs-concern.htm#comments</comments>
		<pubDate>Sat, 13 Sep 2008 14:28:09 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[legal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://banagale.com/apple-touch-platform-applications-approval-process-stirs-concern.htm</guid>
		<description><![CDATA[In the past I&#8217;ve written about the Facebook platform as being the wild west of software development.  The reasoning was that 3rd party developers like myself were watching the platform shift and change on a daily basis.  The result was that functions were being introduced in beta, or replaced and deprecated frequently. Developers working on [...]]]></description>
			<content:encoded><![CDATA[<p>In the past I&#8217;ve written about the Facebook platform as being the wild west of software development.  The reasoning was that 3rd party developers like myself were watching the platform shift and change on a daily basis.  The result was that functions were being introduced in beta, or replaced and deprecated frequently.</p>
<p>Developers working on emerging software platforms are a flexible bunch.  They&#8217;re used to having theirapplications break so long as the platform overall is being improved.  A better platform means more users, which means greater opportunity for 3rd party developers.  One thing developers do not like, however is having their software tools gobbled up an encorporated into the core of the platform.</p>
<p>I wrote about how this was happening in my blog post, <a href="http://banagale.com/nationalization-or-expropriation-facebook-application-developers-continue-to-face-uncertainty.htm" rel="bookmark" title="Permanent Link: Nationalization or Expropriation?  Independent Facebook Application Developers Continue to Face Uncertainty">Nationalization or Expropriation?  Independent Facebook Application Developers Continue to Face Uncertainty</a>.  Something entirely different is happening right now on the Touch platform, however.</p>
<p><span id="more-166"></span></p>
<p>It all started with the an application called, &#8220;Pull My Finger,&#8221; which allowed people to touch illustrated fingers in order to play back audio of flatulence.  You see, Apple, unlike Facebook, will only allow applications to become available to run on the Touch Platform devices (the iPhone and iPod Touch) <em>after</em> they have been reviewed by hand by an Apple employee.</p>
<p>Let&#8217;s take a look at the normal application development cycle for getting an application up onto the Apple Touch platform:</p>
<p align="center"><img src="http://banagale.com/blog/wp-content/uploads/2008/09/good_iphone_development_flow.png" alt="iphone touch platform approval process good" /></p>
<p>Now let&#8217;s take a look at the alternate scenerio:</p>
<p align="center"><img src="http://banagale.com/blog/wp-content/uploads/2008/09/bad_iphone_development_flow.jpg" alt="a flowchart of an iphone touch platform approval process gone bad" /></p>
<p>As you can see, the developer has two choices when their application is rejected from the iTunes store.  A redesign scenerio could occur when their application breaks a minor rule.  For instance, early on Apple was rejecting applications that mis-used the vibration function on the iPhone.  A developer could rectify this problem by taming down their application&#8217;s vibration and re-submitting.</p>
<p>The give-up scenerio is based on a different type of rejection from Apple.  There have been two well-documented cases of Touch Platform application rejections by Apple because the fundamental basis of applications was rejected.  As mentioned, the Pull My Finger application <a href="http://latimesblogs.latimes.com/funny_pages_20/2008/09/flatulence-appl.html">was rejected</a> because &#8220;[Apple] determined that this application is of limited utility to the broad iPhone and iPod touch user community, and will not be published to the App Store.&#8221;</p>
<p>More recently another rejection was delivered to someone who had created a podcasting application.  In this case Apple rejected it &#8220;s<span style="font-style: italic">ince <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Podcaster</span> assists in the distribution of <span class="blsp-spelling-error" id="SPELLING_ERROR_2">podcasts</span>, it duplicates the functionality of the Podcast section of <span class="blsp-spelling-error" id="SPELLING_ERROR_3">iTunes</span>.&#8221;</span></p>
<p>The problem faced by developers is uncertainty.  How can they know what is and what is not ok before investing development time and resources into creating an application.  The problem for Apple is that if they define exactly what the rules are for approval, there will always be exceptions.  Plus, Apple may still not know what their rules are.</p>
<p>Some of the blame lies with developers and their desire to play on the edges of what a reasonable and rational iPhone application idea might be. For instance, designing low-brow flatulence applications or tools that replicate existing functionality does not show a lot of creativity on the developer&#8217;s part.</p>
<p>In addition, the I&#8217;m Rich application made it past Apple&#8217;s application approval group initially, but when it made headlines, it was an embarassment for Apple.  Can we really blame them for being more careful now?</p>
<p>But just as Facebook application developers grew angry over the integration of functionality they had developed into the Facebook core, Touch platform developers deserve great communication from Apple on what is and is not ok, in order to avoid wasted effort.  Developers have indicated that applications that violate non-Apple trademarks have successfully been approved and listed for sale in iTunes.</p>
<p>One developer <a href="http://speirs.org/2008/09/12/app-store-im-out/">fed up with Apple&#8217;s approval ambiguity</a> has given a number of suggestions for improving the situation, including Apple hiring a a 3rd party developer champion or evangelist, someone who can perform official coaching or pre-approval on application ideas prior to beginning a development effort in earnest.</p>
<p>For now, developers will have to stick to common sense in coming up with ideas for new applications for  the Touch platform.</p>
<p>[<strong>Update 9/20/08</strong>: I found a more detailed flowchart on the approval process <a href="http://www.gadgettastic.com/2008/09/17/apples-iphone-apps-approval-process/">here</a>.  Also, I made a minor edit to  second flowchart to reflect the possibility that the app is approved]</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/apple-touch-platform-applications-approval-process-stirs-concern.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

