<?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>iCodeBlog &#187; iphone</title>
	<atom:link href="/category/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://icodeblog.com</link>
	<description>iPhone Programming Tutorials</description>
	<lastBuildDate>Wed, 22 Sep 2010 00:14:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Join Me At The Voices That Matter iOS Dev Conference **Coupon Code**</title>
		<link>http://icodeblog.com/2010/09/13/join-me-at-the-voices-that-matter-ios-dev-conference-coupon-code/</link>
		<comments>http://icodeblog.com/2010/09/13/join-me-at-the-voices-that-matter-ios-dev-conference-coupon-code/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 17:25:53 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[Promotion]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[coupon]]></category>
		<category><![CDATA[voices that matter discount]]></category>
		<category><![CDATA[vtm]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2358</guid>
		<description><![CDATA[<a href="/2010/09/13/join-me-at-the-voices-that-matter-ios-dev-conference-coupon-code/"><img align="left" hspace="5" width="150" height="100" src="/wp-content/uploads/2010/09/150x150DontMissiPhoneVTM-150x100.jpg" class="alignleft tfe wp-post-image" alt="150x150DontMissiPhoneVTM" title="150x150DontMissiPhoneVTM" /></a>Learn from Industry Leaders Who Literally "Wrote the Books" on iOS Development


Coming to you direct from Addison-Wesley Professional, which has published some of the leading books in the field, the Voices That Matter: iPhone Developers Conference is taking place October 16-17 in Philadelphia!

Take a look around at all the tech books you have on your physical and digital bookshelves. If you’ve been developing for the Mac, the iPhone and the iPad – chances are good that you rely on books by Steve Kochan, Erica Sadun, Aaron Hillegass and Jeff LaMarche. Even more, you probably follow the Tweets and blogs of folks like Graham Lee, Mike Lee, Matt Long and Chris Adamson. Wouldn’t it be great to meet and learn from these thought-leaders in person? Now you can at the Voices That Matter: iPhone Developers Conference!]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F09%2F13%2Fjoin-me-at-the-voices-that-matter-ios-dev-conference-coupon-code%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F09%2F13%2Fjoin-me-at-the-voices-that-matter-ios-dev-conference-coupon-code%2F&amp;source=elctech&amp;style=normal&amp;hashtags=coupon,iphone,voices+that+matter+discount,vtm" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.voicesthatmatter.com/iphonefall2010/register.aspx"><img class="alignright size-full wp-image-2359" title="150x150DontMissiPhoneVTM" src="/wp-content/uploads/2010/09/150x150DontMissiPhoneVTM.jpg" alt="" width="150" height="150" /></a><strong>Learn from Industry Leaders Who Literally &#8220;Wrote the Books&#8221; on iOS Development</strong></p>
<p><strong> </strong></p>
<p>Coming to you direct from Addison-Wesley Professional, which has published some of the leading books in the field, the <strong><a href="http://www.voicesthatmatter.com/iphonefall2010/">Voices That Matter: iPhone Developers Conference</a></strong> is taking place October 16-17 in Philadelphia!</p>
<p>Take a look around at all the tech books you have on your physical and digital bookshelves. If you’ve been developing for the Mac, the iPhone and the iPad – chances are good that you rely on books by <strong>Steve Kochan, Erica Sadun, Aaron Hillegass</strong> and <strong>Jeff LaMarche</strong>. Even more, you probably follow the Tweets and blogs of folks like <strong>Graham Lee, Mike Lee, Matt Long</strong> and <strong>Chris Adamson</strong>. Wouldn’t it be great to meet and learn from these thought-leaders in person? Now you can at the Voices That Matter: iPhone Developers Conference!</p>
<p>You&#8217;ll acquire skills for mastering iOS development during a weekend of robust educational sessions. Our speakers are eager to share their knowledge, answer your questions and address your application needs. You&#8217;ll participate in interactive discussions that provide the perfect environment for an unbiased and effective learning experience.</p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<p><strong><span style="text-decoration: underline;">SPECIAL SAVINGS!</span> </strong>As someone that reads this blog, you can save $100 off the conference fee by providing priority code PHBLOGS when registering. <strong><a href="http://www.voicesthatmatter.com/iphonefall2010/register.aspx">Register Now!</a></strong></p>
<h2><strong>Coupon Code: PHBLOGS</strong></h2>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/09/13/join-me-at-the-voices-that-matter-ios-dev-conference-coupon-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook Updates SDK For iOS</title>
		<link>http://icodeblog.com/2010/08/12/facebook-updates-sdk-for-ios/</link>
		<comments>http://icodeblog.com/2010/08/12/facebook-updates-sdk-for-ios/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 21:34:52 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2215</guid>
		<description><![CDATA[<a href="/2010/08/12/facebook-updates-sdk-for-ios/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/06/ios4-150x150.jpg" class="alignleft tfe wp-post-image" alt="ios4" title="ios4" /></a>Facebook has updated its SDK for iOSfor iPhone, iPod Touch and iPad apps. The big news is that this new SDK enables the use of the Graph UI amd allows authentication with OAuth 2.0.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F08%2F12%2Ffacebook-updates-sdk-for-ios%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F08%2F12%2Ffacebook-updates-sdk-for-ios%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iOS" height="61" width="50" /><br />
			</a>
		</div>
<p>Facebook has updated its SDK for iOSfor iPhone, iPod Touch and iPad apps. The big news is that this new SDK enables the use of the Graph UI and allows authentication with OAuth 2.0.</p>
<p>According to Facebook, more than 150 million people are using a mobile version of Facebook and the company intends to take its mobile app environment closer to where its desktop development stands.</p>
<p>Facebook said that it encourages developers to upgrade to the new SDK, but it will continue to support the older SDK for the “foreseeable future.” You can download the kit and find all information <a href="http://github.com/facebook/facebook-ios-sdk">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/08/12/facebook-updates-sdk-for-ios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>That Flash on the iPhone</title>
		<link>http://icodeblog.com/2010/08/09/that-flash-on-the-iphone/</link>
		<comments>http://icodeblog.com/2010/08/09/that-flash-on-the-iphone/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 22:36:20 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2212</guid>
		<description><![CDATA[<a href="/2010/08/09/that-flash-on-the-iphone/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/07/applelogo1-150x150.jpg" class="alignleft tfe wp-post-image" alt="applelogo" title="applelogo" /></a>I am not quite sure how often Flash has been discussed on the iPhone and how often we have seen prototypes running on it. Given the development of HTML5 as well as the memory and battery issues that come with Flash, Flash is turning out to be a nice-to-have feature and not so much a must have. But if you really must run Flash on an iPhone, now you can, thanks to Frash that runs on jailbroken iPhones. We haven’t tested it yet, but we thought you would like to know. If you run it, keep in mind that Comex says that Frash is not what you would describe as stable.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F08%2F09%2Fthat-flash-on-the-iphone%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F08%2F09%2Fthat-flash-on-the-iphone%2F&amp;source=elctech&amp;style=normal&amp;hashtags=flash,iphone" height="61" width="50" /><br />
			</a>
		</div>
<p>I am not quite sure how often Flash has been discussed on the iPhone and how often we have seen prototypes running on it. Given the development of HTML5 as well as the memory and battery issues that come with Flash, Flash is turning out to be a nice-to-have feature and not so much a must have. But if you really must run Flash on an iPhone, <a href="http://github.com/comex/frash">now you can</a>, thanks to Frash that runs on jailbroken iPhones. We haven’t tested it yet, but we thought you would like to know. If you run it, keep in mind that Comex says that Frash is not what you would describe as stable.</p>
<p>Of course, there is now an interesting legal situation that legalizes jailbreaking, even if such a move still voids the warranty of the iPhone. We doubt that Flash will become a major deal on the iPhoen, but it is worth watching whether this story develops.</p>
<p>Apple is unlikely to change its opinion and if you forget Mark Papermaster’s <a href="http://www.macrumors.com/2010/08/08/papermasters-departure-linked-to-cultural-incompatibility-rather-than-antenna-issues/">departure </a>from the company, it is rather quiet about the phone lately. Despite the success of Android, Apple appears to be still selling every iPhone it can make and the Apple Store still says that there is a delay between your order and actual delivery. Sterne Agee analyst Vijay Rakesh this morning told investors that Apple is likely to address this situation, especially since the iPhone 4 is making its way to a total of 88 countries by the end of September. Q3 orders have been increased to more than 10 million, according to Rakesh, which would translate into a 20% production increase over Q2.</p>
<p>We should see data and app use still increase over the next months. For those of you who are keeping track of the numbers, Google recently said that Android is selling some 6 million phones every month now.</p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/08/09/that-flash-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is it iPhone 5 time already?</title>
		<link>http://icodeblog.com/2010/08/04/is-it-iphone-5-time-already/</link>
		<comments>http://icodeblog.com/2010/08/04/is-it-iphone-5-time-already/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 03:07:19 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2203</guid>
		<description><![CDATA[<a href="/2010/08/04/is-it-iphone-5-time-already/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/08/phonecalls-150x150.jpg" class="alignleft tfe wp-post-image" alt="phonecalls" title="phonecalls" /></a>This one seems to be a bit early. It isn’t quite Apple rumor time and it surely is not the time for a new iPhone to be discussed. Or is it?]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F08%2F04%2Fis-it-iphone-5-time-already%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F08%2F04%2Fis-it-iphone-5-time-already%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<p>This one seems to be a bit early. It isn’t quite Apple rumor time and it surely is not the time for a new iPhone to be discussed. Or is it?</p>
<p>The whole iPhone 4 antenna drama has spawned a new <a href="http://www.ilounge.com/index.php/backstage/comments/leaked-details-on-2010-2011-ipods-iphone-5-bumper-2-ipad-mini/">round of rumors</a>, iPhone 5 rumors. One of those industry sources suggested that Apple is pushing up the release of the fifth generation iPhone up to early January 2011 to deal with the antenna issue. Sort of a redesigned iPhone 4. That is a tough one to believe, but then we never know. By the way, Apple just deleted the antenna performance comparison videos from its website. There was no information why that happened, but we think it is a good idea. A justification has never been really necessary anyway.</p>
<p>Besides the new iPhone 5, rumor has it that there will also be a smaller iPad with a screen size of seven inches. The source also talks about an iPod nano, a shuffle with a small 1.7” screen as well as the new iPod touch. There is one more product update cycle in September and there is no doubt in our mind that Apple will be updating its iPods then. It will be interesting to see how far Apple will take its iOS, whether it will make it into the nano or whether Apple will put a much stronger focus on the touch, which was highlighted by the company as the reason why the iPod line can still deliver somewhat stable revenues during Apple’s most recent earnings conference.</p>
<p>The iPhone 5 got us thinking though. Apple rumors have been very accurate lately, but it seems more likely that Apple will just redesign the iPhone 4, which may be feasible until January 2011 and a subsequent release. An entirely phone, which would also spark a discussion of a new iOS may be a bit optimistic. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/08/04/is-it-iphone-5-time-already/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>iPhone Maintains the Edge in Web Usage</title>
		<link>http://icodeblog.com/2010/08/03/iphone-maintains-the-edge-in-web-usage/</link>
		<comments>http://icodeblog.com/2010/08/03/iphone-maintains-the-edge-in-web-usage/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 22:32:39 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2198</guid>
		<description><![CDATA[<a href="/2010/08/03/iphone-maintains-the-edge-in-web-usage/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/07/iphone4-150x150.jpg" class="alignleft tfe wp-post-image" alt="iphone4" title="iphone4" /></a>There are some now statistics out that indicate an extremely high product loyalty among iPhone users as well as impressive web usage that is most likely fueled by the iPhone 4.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F08%2F03%2Fiphone-maintains-the-edge-in-web-usage%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F08%2F03%2Fiphone-maintains-the-edge-in-web-usage%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone" height="61" width="50" /><br />
			</a>
		</div>
<p>There are some now statistics out that indicate an extremely high product loyalty among iPhone users as well as impressive web usage that is most likely fueled by the iPhone 4.</p>
<p>Net Applications <a href="http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=9&amp;qpcustom=iPhone&amp;sample=34">found </a>that 0.70% of all web browsing now originates from iPhones. That may not sound much, but that is close to the web traffic posted by Linux systems, which is now at 0.93%, according to the market research firm. Mac OS X 10.5’s share, by the way, is at 1.82% and Mac OS X 10.6 stands at 2.48%, which shows that 0.70% from a smart phone is a big deal: The iPhone has gained 0.11 points in July alone, which was largest single-month usage gain ever. Android, by the way is estimated at a total web usage share of 0.18%.</p>
<p>Nielsen has <a href="http://blog.nielsen.com/nielsenwire/online_mobile/android-soars-but-iphone-still-most-desired-as-smartphones-grab-25-of-u-s-mobile-market/">released </a>some charts that highlight the user loyalty of the iPhone. 89% of iPhone users intend to buy another iPhone, while 6% say they want to switch to Android and 2% say they are looking for a Blackberry. 71% of Android users say they want another Android phone, but 21% want an iPhone next. 29% of Blackberry owners are likely to switch to an iPhone and 21% to an Android phone.</p>
<p>Android seems to be gaining market momentum especially in the U.S. Nielsen said that 27% of new smartphone acquisitions went to Android in the second quarter of the year and only 23% to the iPhone. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/08/03/iphone-maintains-the-edge-in-web-usage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It Just Won’t Go Away: iPhone Coming To T-Mobile?</title>
		<link>http://icodeblog.com/2010/07/22/it-just-won%e2%80%99t-go-away-iphone-coming-to-t-mobile/</link>
		<comments>http://icodeblog.com/2010/07/22/it-just-won%e2%80%99t-go-away-iphone-coming-to-t-mobile/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 01:34:30 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2158</guid>
		<description><![CDATA[<a href="/2010/07/22/it-just-won%e2%80%99t-go-away-iphone-coming-to-t-mobile/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/06/iphoneicode-150x150.jpg" class="alignleft tfe wp-post-image" alt="iphoneicode" title="iphoneicode" /></a>I believe the last time I heard this one was in March of this year. Back then, it was the Financial Times that said that T-Mobile might start selling the iPhone later this year or next year. Now it is Cult of Mac, which quotes a “highly paces source within T-Mobile” that there is an 80% chance that T-Mobile might start selling the iPhone in the third quarter of this year. We leave this one up to you to decide what 80% really means.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F22%2Fit-just-won%25e2%2580%2599t-go-away-iphone-coming-to-t-mobile%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F22%2Fit-just-won%25e2%2580%2599t-go-away-iphone-coming-to-t-mobile%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone" height="61" width="50" /><br />
			</a>
		</div>
<div>
<p>I believe the last time I heard this one was in March of this year. Back then, it was the Financial Times that said that T-Mobile might start selling the iPhone later this year or next year. Now it is Cult of Mac, which quotes a “highly paces source within T-Mobile” that there is an 80% chance that T-Mobile might start selling the iPhone in the third quarter of this year. We leave this one up to you to decide what 80% really means.</p>
<p>Apple’s relationship with AT&amp;T has been discussed so many times over the past week alone and it is clear that AT&amp;T has reached its limits where it can take Apple. And it appears that Apple thinks that AT&amp;T could use some competition to get its act together in some areas, such as data services and especially the limitations AT&amp;T has created.</p>
<p>It is more than likely that a competitor would be willing to open up its network a bit further in exchange to get a portion of the iPhone pie. T-Mobile is the smallest of the big 4 carriers in the U.S. with just under 34 million subscribers and its network quality isn’t the best. But it would help getting the phone to more customers. It might take some time until Verizon will get an iPhone as Apple is reportedly designing a CDMA iPhone from the ground up to accommodate a different chip set.</p>
<p><a href="http://www.cultofmac.com/iphone-is-coming-to-t-mobile-usa-in-q3-exclusive/39870">From Cult of Mac:</a></p>
<p><em>“Talks between Apple and T-Mobile are at an advanced stage, our source says, and it’s 80 percent likely that the iPhone will be coming to T-Mobile in Q3. The source works at T-Mobile but asked not to be quoted directly and to remain anonymous because they aren’t authorized to talk to the press. T-Mobile’s parent company, Deutsche Telekom, which carries the iPhone in Germany, was able to influence, the source said. T-Mobile USA is the fourth-largest U.S. carrier with </em><a href="http://en.wikipedia.org/wiki/T-Mobile_USA"><em>33.7 million customers</em></a><em>. Apple’s exclusive contract with AT&amp;T is reportedly ending this year, and many expect Apple to offer the iPhone to other wireless companies. Overseas, Apple has routinely added extra carriers when exclusivity deals in those markets expire.”</em></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/07/22/it-just-won%e2%80%99t-go-away-iphone-coming-to-t-mobile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Antenna Confusion Not Deterring New Users</title>
		<link>http://icodeblog.com/2010/07/19/antenna-confusion-not-deterring-new-users/</link>
		<comments>http://icodeblog.com/2010/07/19/antenna-confusion-not-deterring-new-users/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 17:11:48 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone 4]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2149</guid>
		<description><![CDATA[<a href="/2010/07/19/antenna-confusion-not-deterring-new-users/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/07/applelogo1-150x150.jpg" class="alignleft tfe wp-post-image" alt="applelogo" title="applelogo" /></a>With all the hoopla surrounding the iPhone antenna issues, it’s easy to imagine that Apple may be losing some buyers to Android. There is enough confusion out there to suggest that a different smartphone may be a better smartphone right no]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F19%2Fantenna-confusion-not-deterring-new-users%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F19%2Fantenna-confusion-not-deterring-new-users%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone+4" height="61" width="50" /><br />
			</a>
		</div>
<p>With all the hoopla surrounding the iPhone antenna issues, it’s easy to imagine that Apple may be losing some buyers to Android. There is enough confusion out there to suggest that a different smartphone may be a better smartphone right now.</p>
<p>However, the antenna issue has not really big impact on prospective buyers that are new to Apple, but it may have an impact on iPhone upgrades, which should make you think twice about iOS 4. IDC has published brief results of a survey that asked people whether they are still interested in buying an iPhone 4. 74% of those who wanted to buy an iPhone before have not changed their mind. However, 66% of those who own an iPhone already said they are delaying an upgrade to the iPhone 4. IDC did not break out numbers of those iPhone owners and which iPhones they own.</p>
<p>Of course, those numbers are to be taken with a grain of salt as purchase intentions do not really relate to actual behavior and intentions can change in an instant. However, the numbers may reflect the current mood in the market, which we would describe as cautious. IDC noted that the actual impact of the antenna issues and the effect of Apple’s response to give out free bumpers will only reveal itself over the next few months. That said, Steve Jobs said that more than 3 million iPhones have been sold already. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/07/19/antenna-confusion-not-deterring-new-users/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Behind The Scenes of The Apple-AT&amp;T Relationship</title>
		<link>http://icodeblog.com/2010/07/19/behind-the-scenes-of-the-apple-att-relationship/</link>
		<comments>http://icodeblog.com/2010/07/19/behind-the-scenes-of-the-apple-att-relationship/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 16:46:11 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[AT&T]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2144</guid>
		<description><![CDATA[<a href="/2010/07/19/behind-the-scenes-of-the-apple-att-relationship/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/07/applelogo-150x150.jpg" class="alignleft tfe wp-post-image" alt="applelogo" title="applelogo" /></a>Wired will be running an article in its upcoming August issue that will shed some light on the rather difficult relationship between Apple and AT&#038;T. While it is always difficult to determine how accurate such reports are, the article promises to provide background information why AT&#038;T seems to be falling of what the iPhone really would need.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F19%2Fbehind-the-scenes-of-the-apple-att-relationship%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F19%2Fbehind-the-scenes-of-the-apple-att-relationship%2F&amp;source=elctech&amp;style=normal&amp;hashtags=apple,AT%26amp%3BT,iphone" height="61" width="50" /><br />
			</a>
		</div>
<p>Wired will be running an article in its upcoming August issue that will shed some light on the rather difficult relationship between Apple and AT&amp;T. While it is always difficult to determine how accurate such reports are, the article promises to provide background information why AT&amp;T seems to be falling of what the iPhone really would need.</p>
<p>Apparently, Apple is not as happy with AT&amp;T as it is publicly stated by the company. According to the article Jobs considered dropping AT&amp;T “more than a dozen times”. It isn’t difficult to figure out what the differences between the two companies really are – it comes down to data capability and affordability. For example, Apple wanted tethering to be included in the data plan, AT&amp;T wanted extra money – which makes sense, as AT&amp;T’s cellular network has been brought down to its knees due heavy data usage and extra charges would create a barrier for additional data use (and deliver extra revenue, of course.)</p>
<p>We can only imagine how much the two are arguing over Facetime and its availability on the 3G network.</p>
<p>There is also some information on the never ending rumors of a Verizon iPhone. The article states that Apple considered switching to Verizon several times, but concluded that the different chip sizes and the tight iPhone design would require Apple to create a CDMA iPhone from the ground up. The <a href="http://www.zdnet.com/blog/apple/wired-on-the-iphone-network-meltdown/7640">article isn’t out yet</a>, but it is worth the read when published.<strong></strong> </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/07/19/behind-the-scenes-of-the-apple-att-relationship/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone Predicted To See Huge Surge in Demand</title>
		<link>http://icodeblog.com/2010/07/15/iphone-predicted-to-see-huge-surge-in-demand/</link>
		<comments>http://icodeblog.com/2010/07/15/iphone-predicted-to-see-huge-surge-in-demand/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 14:22:43 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2142</guid>
		<description><![CDATA[<a href="/2010/07/15/iphone-predicted-to-see-huge-surge-in-demand/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/07/iphone4-150x150.jpg" class="alignleft tfe wp-post-image" alt="iphone4" title="iphone4" /></a>ChangeWave has released interesting survey findings that indicate sharply rising demand for Apple’s iPhone over the next quarter.  The result contradicts some expectations that Apple may be gambling away its customer trust by ignoring the iPhone reception issues, but then [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F15%2Fiphone-predicted-to-see-huge-surge-in-demand%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F15%2Fiphone-predicted-to-see-huge-surge-in-demand%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone" height="61" width="50" /><br />
			</a>
		</div>
<p>ChangeWave has <a href="http://www.changewaveresearch.com/articles/2010/07/smart_phones_20100714.html">released </a>interesting survey findings that indicate sharply rising demand for Apple’s iPhone over the next quarter.  The result contradicts some expectations that Apple may be gambling away its customer trust by ignoring the iPhone reception issues, but then we do know that the company may be addressing some questions in an upcoming <a href="http://www.appleinsider.com/articles/10/07/14/apple_to_hold_iphone_4_press_conference_on_friday.html">press conference</a> and an iOS <a href="http://www.macobserver.com/tmo/article/ios_4.0.1_update_could_ship_thursday/">update</a>.</p>
<p>The survey concluded that the iPhone leaves its users far more satisfied than any other phone: RIM with 30%. Especially Blackberrys seem to have lost their cool factor and Research in Motion has to think about ways to regain traction. The same goes for Motorola, which has lost consumer interest over the past quarter. Onbly 6% (down from  14%) of smartphone buyers are looking into a Blackberry and only 9% (down from16%)  into a Motorola device. Interest in the iPhone has jumped from 31% to 52%, while HTC’s Android devices have also shown more traction: 19% of respondents said they were looking into an Android HTC phones (up from 12%).</p>
<p>According to ChangeWave, “the momentum for Apple and HTC is occurring at the expense of other smart phone manufacturers – Motorola and Research in Motion in particular. […] The market situation for RIM appears far more problematic, at least short term. RIM&#8217;s customer satisfaction ratings have plummeted for the past 7 quarters, and planned buying among consumers is at the lowest levels ever recorded for RIM in a ChangeWave survey.” </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/07/15/iphone-predicted-to-see-huge-surge-in-demand/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BMW First To Integrate iPod Out</title>
		<link>http://icodeblog.com/2010/07/13/bmw-first-to-integrate-ipod-out/</link>
		<comments>http://icodeblog.com/2010/07/13/bmw-first-to-integrate-ipod-out/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 03:42:21 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[iOS4]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2138</guid>
		<description><![CDATA[<a href="/2010/07/13/bmw-first-to-integrate-ipod-out/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/06/ios4-150x150.jpg" class="alignleft tfe wp-post-image" alt="ios4" title="ios4" /></a>BMW has been pretty quick to take advantage of iOS 4 and enable the new iPod Out new feature that was first described in April when developers noted an extended &#8220;iPod Accessory Protocol&#8221;. BMW said it is using the software [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F13%2Fbmw-first-to-integrate-ipod-out%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F13%2Fbmw-first-to-integrate-ipod-out%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iOS4" height="61" width="50" /><br />
			</a>
		</div>
<p>BMW has been pretty quick to take advantage of iOS 4 and enable the new iPod Out new feature that was first described in April when developers noted an extended &#8220;iPod Accessory Protocol&#8221;.</p>
<p>BMW said it is using the software update to generate an iPod-like menu on the center dash display of BMWs and Minis. Users can control the playback of media from the car&#8217;s own controls rather than using a touchscreen. The update also integrates new in-car features such as custom playlists as well as Genius playlists.</p>
<p>There was no information which cars will be offering the new feature and when it could be available. BMW simply says that the feature will be coming to future cars. However, iPod Out will be a key feature of the Mini Connected system, which is expected to make its debut in next year.</p>
<p>A range of BMW models are due for a refresh. The new 3 series, 6 series and the refresh of the 7 series are more than likely to offer iPod Out right away. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/07/13/bmw-first-to-integrate-ipod-out/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>How Much Data Do We Really Consume?</title>
		<link>http://icodeblog.com/2010/07/01/how-much-data-do-we-really-consume/</link>
		<comments>http://icodeblog.com/2010/07/01/how-much-data-do-we-really-consume/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 16:09:34 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[AT&T]]></category>
		<category><![CDATA[data usage]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2061</guid>
		<description><![CDATA[<a href="/2010/07/01/how-much-data-do-we-really-consume/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/07/nielsenwire2-150x150.jpg" class="alignleft tfe wp-post-image" alt="nielsenwire2" title="nielsenwire2" /></a>AT&#038;T caused some waves recently when it simply canceled its flat fee wireless data plan and replaced with two plans that have caps, which, in some scenarios could get rather expensive for the user. Some analysts, such as Jack Gold from J. Gold Associates, have said that efficient data usage of apps may become a part of future wireless benchmarks.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F01%2Fhow-much-data-do-we-really-consume%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F07%2F01%2Fhow-much-data-do-we-really-consume%2F&amp;source=elctech&amp;style=normal&amp;hashtags=AT%26amp%3BT,data+usage" height="61" width="50" /><br />
			</a>
		</div>
<p>AT&amp;T caused some waves recently when it simply canceled its flat fee wireless data plan and replaced with two plans that have caps, which, in some scenarios could get rather expensive for the user. Some analysts, such as Jack Gold from J. Gold Associates, have said that efficient data usage of apps may become a part of future wireless benchmarks.</p>
<p>However, even if those 200 MB and 2 GB caps sound tight, most of us will have to admit that we simply have no idea how much data we actually consume on our smartphones. Common sense would suggest that there are smartphones that promote data usage and there are some that are too clumsy and create a barrier for data usage. The iPhone, with more than 200,000 apps on tap and countless apps that heavily rely on data, may be among those devices that consume considerable data – which, in fact may have been a reason for AT&amp;T to introduce those new caps just before the introduction of the iPhone 4.</p>
<p>But that does not answer the question how much data we actually consume, of course, and is very much speculation on our part.</p>
<p>Nielsen tried to give some answers by revealing some of the results it got from analyzing 60,000 phone bills. And, as you may imagine, there were some surprises.</p>
<p>What was expected is the fact that increased smartphone data penetration, the availability of more apps and the simple fact that we are getting more comfortable using smartphones results in more data usage. The average monthly data consumption jumped from about 90 MB in January 2009 to about 298 MB in January 2010.</p>
<p>However, Nielsen found that 6% of smartphone users are consuming half of all data. 25% of smartphone users consume less than 1 MB of data. Another 25% do not use any data service, despite the fact that they have signed up for such a plan and pay for it. They use their smartphone only for voice calls and messaging. Nielsen criticized the carriers for this scenario and urged them to do a much better job educating their customers.</p>
<p>More than a third of smartphone users do not subscribe to a data plan at this time. Nielsen said that these users got their smartphones before operators required a data plan.</p>
<p>All these numbers aside, it is somewhat clear that the bandwidth discussion has trickled down from the desktop to the mobile landscape. Data is the new revenue opportunity as voice is commoditized. AT&amp;T is leading the charge, while others with substantial market share may follow soon. Other carriers that have built their business model on a monetary value proposition may have it more difficult to switch to such a model.</p>
<p>In that view, it is interesting to note that, at least for now, AT&amp;T’s new tiered pricing plan may be a good value and not be as expensive as it seems. Nielsen said that 99% of cellphone subscribers are better off with the new model. That is, of course, until applications such as video calling will make it to 3G/4G networks. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/07/01/how-much-data-do-we-really-consume/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Google Docs Viewer, Mobile Edition</title>
		<link>http://icodeblog.com/2010/06/29/google-docs-viewer-mobile-edition/</link>
		<comments>http://icodeblog.com/2010/06/29/google-docs-viewer-mobile-edition/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:21:03 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2050</guid>
		<description><![CDATA[<a href="/2010/06/29/google-docs-viewer-mobile-edition/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/04/icon-150x150.png" class="alignleft tfe wp-post-image" alt="icon" title="icon" /></a>Google has just released a new version of its Doc Viewer, which enables iPhone users (and developers) to display various file formats right within the browser windows.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F06%2F29%2Fgoogle-docs-viewer-mobile-edition%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F06%2F29%2Fgoogle-docs-viewer-mobile-edition%2F&amp;source=elctech&amp;style=normal&amp;hashtags=google" height="61" width="50" /><br />
			</a>
		</div>
<p>Google has just released a new version of its Doc Viewer, which enables iPhone users (and developers) to display various file formats right within the browser windows.</p>
<p>The viewer supports Microsoft’s DOC and DOCX formats, as well as DPS, TIFF and PPT. The viewer can be used online at <a href="http://docs.google.com/viewer">http://docs.google.com/viewer</a>.</p>
<p>However, Google also offers an embedded version. The viewer URLs uses the address path <a href="http://docs.google.com/viewer">http://docs.google.com/viewer</a> and supports two parameters: <em>url</em> points to the url of the document and <em>embedded enables </em>the embedded mode interface.</p>
<p>A direct link to a PDF file would look like this:</p>
<p>&lt;a href=&#8221;http://docs.google.com/viewer?url=http%3A%2F%2Fwww.test.com%2F123.pdf&#8221;&gt;Document Test&lt;/a&gt;</p>
<p>The embedded version:</p>
<p>&lt;iframe src=&#8221;http://docs.google.com/viewer?url=http%3A%2F%2Fwww.test.com%2F123.pdf&amp;embedded=true&#8221; width=&#8221;600&#8243; height=&#8221;780&#8243; style=&#8221;border: none;&#8221;&gt;&lt;/iframe&gt; </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/06/29/google-docs-viewer-mobile-edition/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>iPhone 4 x 1.7 million = $1,105,000,000</title>
		<link>http://icodeblog.com/2010/06/28/iphone-4-x-1-7-million-1105000000/</link>
		<comments>http://icodeblog.com/2010/06/28/iphone-4-x-1-7-million-1105000000/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 19:01:12 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2046</guid>
		<description><![CDATA[<a href="/2010/06/28/iphone-4-x-1-7-million-1105000000/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/06/iphonethumb-150x150.jpg" class="alignleft tfe wp-post-image" alt="iphonethumb" title="iphonethumb" /></a>Earlier today, Apple sent out a note stating that it has sold 1.7 million iPhone 4s during the first three days of its availability. No other Apple launch has moved a similar number of units at launch. The original iPhone needed 74 days to hit 1 million, the 3G S sold 1 million units in 3 days and the iPad sold about 1 million units in a month.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F06%2F28%2Fiphone-4-x-1-7-million-1105000000%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F06%2F28%2Fiphone-4-x-1-7-million-1105000000%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone" height="61" width="50" /><br />
			</a>
		</div>
<p>Earlier today, Apple sent out a <a href="http://www.apple.com/pr/library/2010/06/28iphone.html">note </a>stating that it has sold 1.7 million iPhone 4s during the first three days of its availability. No other Apple launch has moved a similar number of units at launch. The original iPhone needed 74 days to hit 1 million, the 3G S sold 1 million units in 3 days and the iPad sold about 1 million units in a month.</p>
<p>The economics behind the launch are especially interesting. AT&amp;T and other retailers are believed to pay nearly retail price to Apple for each iPhone, while the profit is mainly made via service contracts. At $600 for the cheaper version of the two iPhone variants, Apple’s iPhone 4 has already shifted more than $1 billion in sales in three days. Some estimates claim that Apple will be selling some 2.5 million iPhones until the end of July.</p>
<p>Market research firm iSuppli has already come up with some other numbers in its teardown report. Apparently it costs Apple about $188 to build and assemble each 16 GB iPhone. The most expensive component remains the screen, which is estimated at $28.50. That may be one of Apple’s best profit margins yet: Typically, the margin is somewhere in the 40-50% neighborhood. The iPhone 4 margin is at close to 70%, if the (unofficial) $599 price tag is correct.</p>
<p>If you order an iPhone 4 now, you will have to wait until the end of July, we hear. And those who don’t want to shell out $200 can get discounts or even free phones in a contest wave that is already flooding the Internet. The most <a href="http://www.youtube.com/watch?v=fLreo24WYeQ">creative idea</a> may come from BlendTec, which said it will give one lucky winner an iPhone and prepay a 2-year service contract. In return, you are asked to surrender your old iPhone, which may end up in iSmoke and ascend to YouTube fame. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/06/28/iphone-4-x-1-7-million-1105000000/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>iOS 4: Please start your engines.</title>
		<link>http://icodeblog.com/2010/06/23/ios-4-please-start-your-engines/</link>
		<comments>http://icodeblog.com/2010/06/23/ios-4-please-start-your-engines/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 18:07:02 +0000</pubDate>
		<dc:creator>wolfgang</dc:creator>
				<category><![CDATA[iPhone Articles]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iOS4]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=2032</guid>
		<description><![CDATA[<a href="/2010/06/23/ios-4-please-start-your-engines/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2010/06/ios4-150x150.jpg" class="alignleft tfe wp-post-image" alt="ios4" title="ios4" /></a>It is not particularly difficult to figure that Apple will push this release hard. There is some competition out there and we expect Apple to step up the marketing game even more, which should create new ways to ride in Apple’s tailwind to market your application. Make sure you are ready for this opportunity. It’s a growing market that quickly rewards your creativity and innovation.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2010%2F06%2F23%2Fios-4-please-start-your-engines%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2010%2F06%2F23%2Fios-4-please-start-your-engines%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iOS4" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="/wp-content/uploads/2010/06/ios4.jpg"><img class="size-full wp-image-2033 alignleft" title="ios4" src="/wp-content/uploads/2010/06/ios4.jpg" alt="" width="157" height="160" /></a>If you haven’t done so yet (not that we believe you didn’t), it’s a good time now to have a closer look at Apple’s new iOS 4, which was officially rolled out yesterday.</p>
<p>So we have known about it for two months and talked about it a <a href="../../../../../2010/04/08/iphone-os-4-0-the-death-of-the-3gmu/">couple times</a>. In numbers, there are 100 new features and access to more than 1500 APIs, with details being provided by Apple on its <a href="http://developer.apple.com/technologies/iphone/whats-new.html">SDK site</a>.</p>
<p>There is a lot of focus on the new features (Ars Technica has the most thorough <a href="http://arstechnica.com/apple/reviews/2010/06/ars-reviews-ios-4-whats-new-and-notable.ars">first look</a> we have seen so far), but given Apple’s emphasis on iOS 4, the real news may not be so much new APIs or features, such as multitasking, per se. It’s the collective opportunity behind it.</p>
<p>Of course, there will be a race who will have the first apps out that use some of those new features, but it may the app that finds a way to take an intuitive approach to leverage iOS 4 features that will come out on top. It is a comprehensive update that can be overwhelming and clearly needs some thought. Perhaps that was the reason why Apple has given us more than two months to prepare for this release, if you think about it.</p>
<p>It is not particularly difficult to figure that Apple will push this release hard. There is some competition out there and we expect Apple to step up the marketing game even more, which should create new ways to ride in Apple’s tailwind to market your application. Make sure you are ready for this opportunity. It’s a growing market that quickly rewards your creativity and innovation.</p>
<p>We will spending quite a bit of time with iOS4 over the next few weeks, so make sure you check back frequently. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2010/06/23/ios-4-please-start-your-engines/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone In Action Book &#8211; Free Chapter Downloads</title>
		<link>http://icodeblog.com/2009/11/11/iphone-in-action-book-free-chapter-downloads/</link>
		<comments>http://icodeblog.com/2009/11/11/iphone-in-action-book-free-chapter-downloads/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 21:28:25 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[iPhone Articles]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone books]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=1480</guid>
		<description><![CDATA[<a href="/2009/11/11/iphone-in-action-book-free-chapter-downloads/"><img align="left" hspace="5" width="150" src="http://brandontreb.com/wp-content/uploads/2009/11/Trebitowski-iPhone-2E-1-1.png" class="alignleft wp-post-image tfe" alt="Trebitowski-iPhone-2E-1-1" title="Trebitowski-iPhone-2E-1-1" /></a><a href="http://manning.com/">Manning Publishing</a> has started their MEAP (Manning Early Access Program) for the book I am working on.  What this means for you is FREE DOWNLOADS.  There is currently only one chapter available, but there will be more as the book progresses.

The chapter currently available is about audio recording and playback.  It goes into detail about the AVAudio frameworks as well as the MPMediaPlayer.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F11%2F11%2Fiphone-in-action-book-free-chapter-downloads%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F11%2F11%2Fiphone-in-action-book-free-chapter-downloads%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone,iphone+books" height="61" width="50" /><br />
			</a>
		</div>
<div id="attachment_559" class="wp-caption aligncenter" style="width: 460px"><a href="http://manning.com/trebitowski/"><img class="size-full wp-image-559 " title="Trebitowski-iPhone-2E-1-1" src="http://brandontreb.com/wp-content/uploads/2009/11/Trebitowski-iPhone-2E-1-1.png" alt="Trebitowski-iPhone-2E-1-1" width="450" height="564" /></a><p class="wp-caption-text">iPhone In Action 2nd Edition</p></div>
<p><a href="http://manning.com/">Manning Publishing</a> has started their MEAP (Manning Early Access Program) for the book I am working on.  What this means for you is <a href="http://manning.com/trebitowski/">FREE DOWNLOADS</a>.  There is currently only one chapter available, but there will be more as the book progresses.</p>
<p>The chapter currently available is about audio recording and playback.  It goes into detail about the AVAudio frameworks as well as the MPMediaPlayer.</p>
<p>So be sure to <a href="http://manning.com/trebitowski/">check it out</a> and feedback on the chapter is GREATLY appreciated.</p>
<p><a href="http://manning.com/trebitowski/">Link to MEAP</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/11/11/iphone-in-action-book-free-chapter-downloads/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Floodgates opened for iPhone development</title>
		<link>http://icodeblog.com/2009/10/12/floodgates-opened-for-iphone-development/</link>
		<comments>http://icodeblog.com/2009/10/12/floodgates-opened-for-iphone-development/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 18:56:30 +0000</pubDate>
		<dc:creator>rick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPhone Articles]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=1418</guid>
		<description><![CDATA[<a href="/2009/10/12/floodgates-opened-for-iphone-development/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>For as active as iPhone application development community is, achieving success in iTunes has been an elusive affair for those who participate in this vertical.  The two main obstacles presented to anyone who wants to create an iPhone applications are: one, finding resources/developers with the right skill set; and two, marketing the application after the application has been submitted.  The bad news is Apple keeps iTunes a black box.  Unless your application has been reviewed or mentioned on review sites or blogs, no one will be able to find your application outside of iTunes.  This makes marketing your application relatively difficult.  Here's the good news: the cost to build an iPhone application should come down substantially as it no longer requires a developer with an exclusive knowledge to a specific technology to build an application for iPhone.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F10%2F12%2Ffloodgates-opened-for-iphone-development%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F10%2F12%2Ffloodgates-opened-for-iphone-development%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<p>For as active as iPhone application development community is, achieving success in iTunes has been an elusive affair for those who participate in this vertical.  The two main obstacles presented to anyone who wants to create an iPhone applications are: one, finding resources/developers with the right skill set; and two, marketing the application after the application has been submitted.  The bad news is Apple keeps iTunes a black box.  Unless your application has been reviewed or mentioned on review sites or blogs, no one will be able to find your application outside of iTunes.  This makes marketing your application relatively difficult.  Here&#8217;s the good news: the cost to build an iPhone application should come down substantially as it no longer requires a developer with an exclusive knowledge to a specific technology to build an application for iPhone.</p>
<p>When Apple first announced to openly accept applications from developers, the prerequisite for the developer is a somewhat extensive knowledge in a language called &#8220;Objective-C.&#8221;  For a short while, it would seem as though the developers who could produce Objective-C codes were superstars that also came with a superstar price tag.  Such stardom, however, did not last.  When <a href="http://phonegap.com">PhoneGap</a> was introduced as an open source development tool for iPhone via JavaScript, the web development community devoured it like salmon to a hungry bear.  Shortly after PhoneGap&#8217;s success, <a href="http://www.mono-project.com">Mono framework</a> was released in the commercial sector that provided the necessary development tools to the vast number of C# developers across multiple platforms.  And to unhinge the final bar from the floodgates, Adobe has <a href="http://www.informationweek.com/news/internet/webdev/showArticle.jhtml?articleID=220301118">just announced</a> that the next release of Flash is capable of compiling a flash project directly into native iPhone application.  Simply put, a project can go from design to finish without even being touched by a developer.</p>
<p>The implication for this phenomenon is a curious one: how will Apple respond to the rush of new applications when the floodgates are finally open?  Will Apple still be able to keep its manual review process intact?  When the market is saturated with developers and applications, will Apple be able to to maintain iTunes exclusive distribution channel and continue to motivate merchants to participate?</p>
<p>How all of this will affect Apple or iPhone developers is yet to be seen.  However, one thing that seems to be true is that when given enough demands, people will find ways to liberate a technology regardless of how businesses are structured around it. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/10/12/floodgates-opened-for-iphone-development/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Debugging Tutorial &#8211; Automating Your Tests With A UIRecorder Instrument</title>
		<link>http://icodeblog.com/2009/10/06/debugging-tutorial-automating-your-tests-with-a-uirecorder-instrument/</link>
		<comments>http://icodeblog.com/2009/10/06/debugging-tutorial-automating-your-tests-with-a-uirecorder-instrument/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 21:20:00 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[iPhone Programming Tutorials]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iPhone Coding]]></category>
		<category><![CDATA[iphone debugging]]></category>
		<category><![CDATA[uirecorder]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=1403</guid>
		<description><![CDATA[<a href="/2009/10/06/debugging-tutorial-automating-your-tests-with-a-uirecorder-instrument/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2009/10/screenshot_01-150x150.png" class="alignleft wp-post-image tfe" alt="screenshot_01" title="screenshot_01" /></a>If you have ever experienced a bug in your application that took many steps to reproduce, then this tutorial is for you.  By nature, testing and debugging are very tedious processes.  This is especially the case for the iPhone. Say [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F10%2F06%2Fdebugging-tutorial-automating-your-tests-with-a-uirecorder-instrument%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F10%2F06%2Fdebugging-tutorial-automating-your-tests-with-a-uirecorder-instrument%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iPhone+Coding,iphone+debugging,uirecorder" height="61" width="50" /><br />
			</a>
		</div>
<p>If you have ever experienced a bug in your application that took many steps to reproduce, then this tutorial is for you.  By nature, testing and debugging are very tedious processes.  This is especially the case for the iPhone.</p>
<p>Say you have an app that drills down 5-levels deep to some other view.  Now let&#8217;s say that you have a bug on that view 5 levels deep.  Your normal method of debugging is:</p>
<ul>
<li>Run the app</li>
<li>Tap view 1</li>
<li>Tap view 2</li>
<li>Tap view 3</li>
<li>Tap view 4</li>
<li>Tap view 5</li>
<li>(Crash)</li>
<li>Change some code</li>
<li>Repeat</li>
</ul>
<p>As you can see (and I&#8217;m sure have noticed), this sucks.  Well, <a href="http://twitter.com/kendalldevdiary">Kendall Gelner</a> gave a killer talk at <a href="http://www.360idev.com/">360iDev</a> (which I recently attended) on various debugging tips using Instruments and XCode.  One of the most useful techniques (to me) was how to automate your testing.  Let me show you what I mean.</p>
<p>1. Open up the app you wish to test/debug</p>
<p>2. Launch it in the simulator</p>
<p>3. Open <strong>Instruments</strong> &#8211; This is located in /Developer/Applications/Instruments (just do a spotlight search for it)</p>
<p><strong><a href="/wp-content/uploads/2009/10/screenshot_01.png"><img class="alignnone size-medium wp-image-1404" title="screenshot_01" src="/wp-content/uploads/2009/10/screenshot_01-300x229.png" alt="screenshot_01" width="300" height="229" /></a></strong></p>
<p>4. Select <strong>UIRecorder</strong> and click <strong>Choose </strong>- You should now see a window like this</p>
<p><strong><a href="/wp-content/uploads/2009/10/screenshot_02.png"><img class="alignnone size-medium wp-image-1406" title="screenshot_02" src="/wp-content/uploads/2009/10/screenshot_02-300x211.png" alt="screenshot_02" width="300" height="211" /></a></strong></p>
<p>5. Now, we need to attach this tool to the iPhone Simulator process.  Click the drop-down above <strong>Default Target</strong> -&gt; <strong>Attach to Process </strong>-&gt; <strong>iPhone Simulator</strong>.</p>
<p><a href="/wp-content/uploads/2009/10/ss_03.png"><img class="alignnone size-medium wp-image-1409" title="ss_03" src="/wp-content/uploads/2009/10/ss_03-300x136.png" alt="ss_03" width="300" height="136" /></a></p>
<p>6. Now click <strong>Drive &amp; Record</strong> and do all of the steps in the simulator to test your app.  At this point, the UI Recorder is recording your every move.  When you have finished press the <strong>Stop </strong>button. <span style="color: #ff0000;">Note</span>: After you have recorded your actions, don&#8217;t move the simulator as it will mess up the entire process.</p>
<p>7. Modify your code&#8230;</p>
<p>8. Press the <strong>Drive &amp; Record </strong>button and watch the magic happen.  The test is automatically done for you.  You should see your mouse move over to the simulator and the system mimicking every action that you did before.</p>
<p>That&#8217;s it! I know this isn&#8217;t a super long tutorial (or even a coding tutorial), but the UI Recorder has sped my test time up tremendously.  Give it a shot and let me know what you think.  Here is a short video of me going through all of the steps.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=6934052&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=6934052&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/6934052">iCodeBlog &#8211; Debugging Tutorial &#8211; Automating Your Tests With A UIRecorder Instrument</a> from <a href="http://vimeo.com/user2413855">Brandon Trebitowski</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Happy iCoding! </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/10/06/debugging-tutorial-automating-your-tests-with-a-uirecorder-instrument/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Objective-C Tutorial: NSArray</title>
		<link>http://icodeblog.com/2009/08/26/objective-c-tutorial-nsarray/</link>
		<comments>http://icodeblog.com/2009/08/26/objective-c-tutorial-nsarray/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 19:04:46 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[iPhone Articles]]></category>
		<category><![CDATA[iPhone Programming Tutorials]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iPhone Coding]]></category>
		<category><![CDATA[iphone dev]]></category>
		<category><![CDATA[nsarray]]></category>
		<category><![CDATA[NSMutableArray]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=1268</guid>
		<description><![CDATA[<a href="/2009/08/26/objective-c-tutorial-nsarray/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>The NSArray is a huge workhorse that we use quite frequently without even thinking about it.  The NSArray class isn't just your ordinary array.  Not only does it provide random access, but it also dynamically re-sizes when you add new objects to it.  While I won't go over every method in NSArray (there are quite a few), I will discuss some of the more important ones that are most commonly used.  Let's take a closer look at this class.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F08%2F26%2Fobjective-c-tutorial-nsarray%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F08%2F26%2Fobjective-c-tutorial-nsarray%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iPhone+Coding,iphone+dev,nsarray,NSMutableArray" height="61" width="50" /><br />
			</a>
		</div>
<p>Here at iCodeblog, we have been showing you guys how to create many different types of applications from the ground up.  Well, today I decided to do something different and get down to some of the nitty gritty of a structure we rely heavily on in objective-C.</p>
<p>The NSArray is a huge workhorse that we use quite frequently without even thinking about it.  The NSArray class isn&#8217;t just your ordinary array.  Not only does it provide random access, but it also dynamically re-sizes when you add new objects to it and has many methods to make our lives easier.  While I won&#8217;t go over every method in NSArray (there are quite a few), I will discuss some of the more important ones that are most commonly used.  Let&#8217;s take a closer look at this class.</p>
<h2>Factory Methods</h2>
<p>Factory methods are <a href="http://en.wikipedia.org/wiki/Static_method#Static_methods">static methods</a> that build new instances of NSArrays from given parameters and return them.  The table below details on all of the factory methods for the NSArray class.</p>
<table style="border: 1px solid #000000; width: 100%;" border="0">
<tbody>
<tr>
<td><strong>+ (id)array</strong></td>
<td>Creates and returns an empty array</td>
</tr>
<tr>
<td><strong>+ (id)arrayWithArray:(NSArray *)anArray</strong></td>
<td>Creates and returns an array containing the objects in another given array.</td>
</tr>
<tr>
<td><strong>+ (id)arrayWithContentsOfFile:(NSString *)aPath</strong></td>
<td>Creates and returns an array containing the contents of the file specified by a given path. <span style="color: red;">*</span> The file must be of type .plist for this method to work</td>
</tr>
<tr>
<td><strong>+ (id)arrayWithContentsOfURL:(NSURL *)aURL</strong></td>
<td>Similar to arrayWithContentsOfFile except it will load the .plist remotely from a given website.  This would be a very simple way to get data from a web service.</td>
</tr>
<tr>
<td><strong>+ (id)arrayWithObject:(id)anObject</strong></td>
<td>Creates and returns an array containing a given object.  This will just be a 1 element array</td>
</tr>
<tr>
<td><strong>+ (id)arrayWithObjects:(id)firstObj, &#8230;</strong></td>
<td>This method is used when you have multiple objects on hand and want easily insert them into an array.  Make sure the last element you add is nil or this method won&#8217;t work.</td>
</tr>
<tr>
<td><strong>+ (id)arrayWithObjects:(const id *)objects count:(NSUInteger)count</strong></td>
<td>Creates and returns an array that includes a given number of objects from a given C array.</td>
</tr>
</tbody>
</table>
<p>Here is some example usage of building NSArrays with these factory methods&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #11740a; font-style: italic;">// I am using strings, but you can add just about any object to an NSArray</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">// Creates an NSArray with one object</span>
<span style="color: #400080;">NSArray</span>  <span style="color: #002200;">*</span> myArray <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> arrayWithObject<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;foo&quot;</span><span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">// Creates an NSArray with multiple objects. Don't forget to add nil as the last object</span>
<span style="color: #400080;">NSArray</span>  <span style="color: #002200;">*</span> myArray2 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> arrayWithObjects<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;foo&quot;</span>,<span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;bar&quot;</span>,<span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;baz&quot;</span>,<span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">// Creates an NSArray from another NSArray</span>
<span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span> myArray3 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> arrayWithArray<span style="color: #002200;">:</span>myArray2<span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">// This will create an NSArray from data on iCodeBlog.  Go ahead and try it out, this file exists on our servers and contains valid data.</span>
<span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span> myArray4 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> arrayWithContentsOfURL<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSURL</span> URLWithString<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;http://icodeblog.com/wp-content/uploads/2009/08/foo.plist&quot;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;</pre></div></div>

<p>You can also choose not to use factory methods and just use the normal NSArray initializers.  They are pretty much the same as the factory methods only you do the allocation yourself. An example of this might be:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span> foo <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> alloc<span style="color: #002200;">&#93;</span> initWithObjects<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;foo&quot;</span>,<span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;bar&quot;</span>,<span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;baz&quot;</span>,<span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;</pre></div></div>

<h2>Accessing The NSArray</h2>
<p>Apple has provided us with many great methods for getting data out of an NSArray as well as information about it.  Here is a table of methods and their descriptions.</p>
<table style="border: 1px solid #000000; width: 100%;" border="0">
<tbody>
<tr>
<td>- (BOOL)containsObject:(id)anObject</td>
<td>Returns true if a given object is found in the array, false otherwise</td>
</tr>
<tr>
<td>- (NSUInteger)count</td>
<td>Returns the size of the array</td>
</tr>
<tr>
<td>- (id)lastObject</td>
<td>Returns the last object in the array (the one with the highest index)</td>
</tr>
<tr>
<td>- (id)objectAtIndex:(NSUInteger)index</td>
<td>Gives you random access to the array. Returns the object at a given index.</td>
</tr>
</tbody>
</table>
<p>These are just a few of the accessor methods of NSArray and most likely the only ones you will need to use.</p>
<h2>Searching The Array</h2>
<p>If you are looking for the index of an object in an array, there is really only one method you need to use.  That method is indexOfObject: . An example of usage might be:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span> f <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;foo&quot;</span>;
<span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span> b <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;bar&quot;</span>;
<span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span> z <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;baz&quot;</span>;
<span style="color: #400080;">NSArray</span>  <span style="color: #002200;">*</span> myArray2 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> arrayWithObjects<span style="color: #002200;">:</span>f,b,z,<span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;
NSInteger idx <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>myArray2 indexOfObject<span style="color: #002200;">:</span>b<span style="color: #002200;">&#93;</span>;
<span style="color: #11740a; font-style: italic;">// This would return 1 (since NSArrays are 0 - indexed)</span></pre></div></div>

<p>This is much cleaner code than looping over the entire array to find an object. It&#8217;s probably more efficient too as Apple is pretty clean in how they code things.</p>
<h2>Sending Message To Objects In The Array</h2>
<p>Ok, so this is pretty cool.  Say you have an array of objects that all need to do something.  For example, an array of bullets, and you want all of the bullets to move forward one pixel. Rather than looping over each bullet object in the bullets array and calling [bullet move], you can do it in one method call on the array.  This method is called &#8211; (void)makeObjectsPerformSelector:(SEL)aSelector and here is an example of usage.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #11740a; font-style: italic;">// Lets pretend the bullet object has a method called move</span>
<span style="color: #11740a; font-style: italic;">// and there is an array of 50 bullets</span>
&nbsp;
<span style="color: #002200;">&#91;</span>bullets makeObjectsPerformSelector<span style="color: #002200;">:</span><span style="color: #a61390;">@selector</span><span style="color: #002200;">&#40;</span>move<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>;</pre></div></div>

<p>And that&#8217;s it&#8230; The move method will now be called on every bullet object in the array with this one method call.  Very clean and easy to use.  Now, if the method you want to call takes an argument, there is the &#8211; (void)makeObjectsPerformSelector:(SEL)aSelector withObject:(id)anObject method.  This will allow you to pass an object to each method being called.</p>
<h2>Sorting Arrays</h2>
<p>Apple has provided us with some very slick ways to sort an NSArray.  I will not go into too much detail here as I have a full tutorial planned dedicated to sorting arrays.  For now, I will just show you how to sort an NSArray of NSStrings.  The method we will be using is sortedArrayUsingSelector.  Here is the example usage.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span>sortedArray <span style="color: #002200;">=</span>
    <span style="color: #002200;">&#91;</span>myArray2 sortedArrayUsingSelector<span style="color: #002200;">:</span><span style="color: #a61390;">@selector</span><span style="color: #002200;">&#40;</span>caseInsensitiveCompare<span style="color: #002200;">:</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>;
    <span style="color: #11740a; font-style: italic;">// This will return a sorted array that looks like [@&quot;bar&quot;,@&quot;baz&quot;,@&quot;foo&quot;]</span></pre></div></div>

<p>You can plug in any of the string compare functions there to compare the strings.  If you are sorting an NSArray of custom objects (like users), you can overwrite the compare method for that object and pass compare in for the selector.  Just make sure you remember the : at the end of the method.</p>
<h2>Looping Through Arrays</h2>
<p>So if you are reading this, I assume you have seen a for loop before.  ex: for(int x=0; x &lt; &#8230; This would most likely not be a good way to enumerate an NSArray as Apple has provided a much nice way for doing so.  There are some situations where this method would be preferred (like when u need to calculate the indices or something).  But in most cases, you will want to use the special for loop provided by Apple. If you have ever coded PHP, it is much like the foreach loop.  Here is an example:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #a61390;">for</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span> myStr <span style="color: #a61390;">in</span> myArray2<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
    NSLog<span style="color: #002200;">&#40;</span>myStr<span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>This will loop over myArray2 and pring each element in that array.  Very clean and efficient.</p>
<h2>Saving Arrays For Later</h2>
<p>There is an Array of ways to save data on the iPhone (Pun intended).  One way is to simply dump the array to a file.  This will write out the NSArray to a plist file on disk that can be loaded later using the arrayWithContentsOfFile method of NSArray.  That method is rightfully named writeToFile.  The example usage for it is as follows.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #400080;">NSArray</span>  <span style="color: #002200;">*</span> myArray2 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> arrayWithObjects<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;foo&quot;</span>,<span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;bar&quot;</span>,<span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;baz&quot;</span>,<span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span>myArray2 writeToFile<span style="color: #002200;">:</span>filePath atomically<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;</pre></div></div>

<p>And there you have it! You are probably wondering what the atomically variable means. Me too&#8230; Just kidding.  If YES, the file will be written to a temp location and then renamed to its final destination.  This is put in place to guarantee that the file won&#8217;t be corrupted even if the system crashes (rename will be much faster than write).  Why is this needed you ask?  Consider this scenario.</p>
<blockquote><p>You want to write a huge array to disk to save it for later.  When your app starts it checks the disk to see if this file exists, if it does it loads an NSArray from it.  If it doesn&#8217;t it creates a new NSArray.  Say the last time the app ran, the system crashed while the file was being written.  If atomically was set to NO, the original file would be corrupt and now the application would be loading corrupt data every time it starts from now on (most likely causing a crash).  However, if you set atomically to YES, the temp file would get corrupted and the app would never see it.  That way, the next time the app starts it will create a new fresh NSArray and all will be good.</p></blockquote>
<p>Good rule of thumb, set atomically to YES.</p>
<p>That concludes our tutorial on NSArray.  If you have any questions or comments, feel free to post them in the comments section or <a href="http://twitter.com/brandontreb">write me on twitter.</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/08/26/objective-c-tutorial-nsarray/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>iPhone Programming Tutorial: Animating A Game Sprite</title>
		<link>http://icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/</link>
		<comments>http://icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 17:52:15 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[iPhone Game Programming]]></category>
		<category><![CDATA[iPhone Programming Tutorials]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone animation]]></category>
		<category><![CDATA[iPhone Coding]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=1170</guid>
		<description><![CDATA[<a href="/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2009/07/screenshot_011-150x150.png" class="alignleft wp-post-image tfe" alt="screenshot_01" title="screenshot_01" /></a>One thing I have noticed about many of the games in the app store is they lack animation. Of course, the huge companies like Sega and PopCap have some pretty amazing animation, but what about us indie iPhone game developers? [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F07%2F24%2Fiphone-programming-tutorial-animating-a-game-sprite%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F07%2F24%2Fiphone-programming-tutorial-animating-a-game-sprite%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone+animation,iPhone+Coding,iPhone+Game+Programming" height="61" width="50" /><br />
			</a>
		</div>
<p>One thing I have noticed about many of the games in the app store is they lack animation.  Of course, the huge companies like Sega and PopCap have some pretty amazing animation, but what about us indie iPhone game developers?</p>
<p><center>[See post to watch QuickTime movie]</center></p>
<p>Well, Apple has made it quite simple to do animations.  I really feel this method is often overlooked.  I will show you in just a few lines of code, how to completely animate your game images.  I will walk you through creating a simple application that uses animation.  If you don&#8217;t care about creating the app and just want the animation code, <a href="#animation">you can skip to this step</a>.  We will be making an animation of Ryu throwing some punches.</p>
<h2>1. Create  A View Based Application</h2>
<p>I&#8217;m not going to explain this one&#8230;</p>
<h2>2. Add These Images To Your Resources Folder</h2>
<p>Download<a href="/wp-content/uploads/2009/07/ryu.zip">ryu.zip</a><a href="http://brandontreb.com/wp-content/uploads/2009/07/ryu1.zip"></a> and unzip it.  Then drag the unzipped files into your <strong>Resources</strong> folder.  Note: Sprite sheet downloaded from<a href="http://panelmonkey.org/"> http://panelmonkey.org/</a>.  This file contains 12 images of Ryu from Street Fighter punching.  It also has the background to Blanca&#8217;s stage just for fun.</p>
<h2>3. Create The Background</h2>
<p>You don&#8217;t have to do this step, it&#8217;s just to make it pretty.</p>
<p>Double click on <strong>whateveryoucalledyourapplicationViewController.xib</strong> to open it in Interface Builder.  Click the arrow button on the view to rotate it.  If you don&#8217;t what I am talking about, check out <a href="/2009/07/09/integrating-twitter-into-your-applications/">this post</a>.</p>
<p>Drag a UIImageView on to the screen and stretch it to fill the entire iPhone screen.  In the Attributes inspector select <strong>sfst-blanka.jpg</strong>.  Make sure mode is set to <strong>center</strong> as this image has very low resolution. It should look something like this (I have added a black background color).</p>
<p style="text-align: center;"><img class="size-full wp-image-1175 aligncenter" title="screenshot_01" src="/wp-content/uploads/2009/07/screenshot_011.png" alt="screenshot_01" width="480" height="342" /></p>
<h2>4. Creating The Animation</h2>
<p><a name="#animation"> </a></p>
<p>Open up <strong>yourApplicationViewController.m </strong>and add the following code to the <strong>viewDidLoad</strong> method.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>viewDidLoad <span style="color: #002200;">&#123;</span>
    <span style="color: #002200;">&#91;</span>super viewDidLoad<span style="color: #002200;">&#93;</span>;
	<span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span> imageArray  <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSArray</span> alloc<span style="color: #002200;">&#93;</span> initWithObjects<span style="color: #002200;">:</span>
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;1.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;2.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;3.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;4.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;5.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;6.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;7.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;8.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;9.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;10.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;11.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;12.png&quot;</span><span style="color: #002200;">&#93;</span>,
							<span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;
	UIImageView <span style="color: #002200;">*</span> ryuJump <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIImageView alloc<span style="color: #002200;">&#93;</span> initWithFrame<span style="color: #002200;">:</span>
		CGRectMake<span style="color: #002200;">&#40;</span><span style="color: #2400d9;">100</span>, <span style="color: #2400d9;">125</span>, <span style="color: #2400d9;">150</span>, <span style="color: #2400d9;">130</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>;
	ryuJump.animationImages <span style="color: #002200;">=</span> imageArray;
	ryuJump.animationDuration <span style="color: #002200;">=</span> <span style="color: #2400d9;">1.1</span>;
	ryuJump.contentMode <span style="color: #002200;">=</span> UIViewContentModeBottomLeft;
	<span style="color: #002200;">&#91;</span>self.view addSubview<span style="color: #002200;">:</span>ryuJump<span style="color: #002200;">&#93;</span>;
	<span style="color: #002200;">&#91;</span>ryuJump startAnimating<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>For all of you &#8220;1337&#8243; coders that are going to post in the comments telling me &#8220;Why don&#8217;t you use a for loop to load the images&#8221; (very nerdy voice): I am doing it like this, so it is obvious what is going on.  I want to show that you must populate the array with images.</p>
<p>So here is what is going on in this code:</p>
<p>We first create an array of <strong>UIImage</strong>s.  Next, we allocate our <strong>UIImageView</strong>.<strong> </strong>The next part is where the magic happens&#8230; Apple has given you a property of UIImageView that is an array of images.  The UIImageView class has a built in functionality to cycle through images at a given interval (hence animating them).</p>
<p>The next variable we see is the animation duration.  This is the number of seconds it takes to cycle through all of the images.  The default value for this is the number of images multiplied by 1/30.  This will give you a 30 fps frame rate.  Since we have 12 images and not 30, this duration would make our Ryu look like he was on crack.</p>
<p>In our case, the default would be 12 * (1/30) or .4 . We are going to slow this down significantly to 1.1.  Go ahead and play with this number when creating your animation.</p>
<p>The next variable is the <strong>contentMode</strong>.  The content mode determines how the image will fit inside the UIImageView frame.  Since our animation images vary in size, we just make the frame as large as the largest image and set the contentMode to UIViewContentModeBottomLeft.  What this means is, draw the image withough scaling and place it in the bottom left of the UIImageView.  Read up on contentMode to figure out what will be right for your applicaiton.</p>
<p>Finally, we just add the UIImageView to our main view and call the <strong>startAnimating </strong>method on it.  This will start the animation of these images.  There are also some other helpful methods you might use when doing animation.  They include <strong>stopAnimating</strong> and <strong>isAnimating</strong>.</p>
<h2>5. Make Sure The Device Starts In Landscape Mode</h2>
<p>In this example, we assumed that the device was in landscape mode.  Again, read <a href="../2009/07/09/integrating-twitter-into-your-applications/">this post</a> to see how to do this.  It involves adding<strong> Initial interface orientation</strong> to the info.plist file and adding this code to your viewController.m file.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span>shouldAutorotateToInterfaceOrientation<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UIInterfaceOrientation<span style="color: #002200;">&#41;</span>interfaceOrientation <span style="color: #002200;">&#123;</span>
    <span style="color: #11740a; font-style: italic;">// Return YES for supported orientations</span>
    <span style="color: #a61390;">return</span> <span style="color: #002200;">&#40;</span>interfaceOrientation <span style="color: #002200;">==</span> UIInterfaceOrientationLandscapeLeft<span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>That concludes our simple animation tutorial.  Post a question or <a href="http://twitter.com/brandontreb">ask me on Twitter</a> if you need help.  You can download the source for this tutorial <a href="/wp-content/uploads/2009/07/AnimationApp.zip">here</a>. Happy iCoding! </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
<enclosure url="http://icodeblog.com/wp-content/uploads/2009/07/RuyPunch.mov" length="349110" type="video/quicktime" />
		</item>
		<item>
		<title>Anyone else having issues with MPMoviePlayerController in iPhone OS 3.0?</title>
		<link>http://icodeblog.com/2009/07/21/anyone-else-having-issues-with-mpmovieplayercontroller-in-iphone-os-3-0/</link>
		<comments>http://icodeblog.com/2009/07/21/anyone-else-having-issues-with-mpmovieplayercontroller-in-iphone-os-3-0/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 18:58:40 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[MPMoviePlayerController]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=1130</guid>
		<description><![CDATA[<a href="/2009/07/21/anyone-else-having-issues-with-mpmovieplayercontroller-in-iphone-os-3-0/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>Ok, so I&#8217;m currently updating an application for work and am getting some strange behavior with MPMoviePlayerController when trying to stream video.  The problem is: When the user presses the &#8220;Done&#8221; button on the player during the buffering stage (right [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F07%2F21%2Fanyone-else-having-issues-with-mpmovieplayercontroller-in-iphone-os-3-0%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F07%2F21%2Fanyone-else-having-issues-with-mpmovieplayercontroller-in-iphone-os-3-0%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone,MPMoviePlayerController" height="61" width="50" /><br />
			</a>
		</div>
<p>Ok, so I&#8217;m currently updating an application for work and am getting some strange behavior with MPMoviePlayerController when trying to stream video.  The problem is:</p>
<p>When the user presses the &#8220;Done&#8221; button on the player during the buffering stage (right after it finishes saying &#8220;loading video&#8230;&#8221; but before the video starts playing), the player hides and the audio (for the video) begins to play in the background.  At this point, there are 3 ways for it to stop.</p>
<ol>
<li>Start playing another video</li>
<li>Press the home button and exit the app</li>
<li>Wait for the video to finish playing</li>
</ol>
<p>Here is my code for playing the video.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>playMovieAtURL<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSURL</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>theURL
<span style="color: #002200;">&#123;</span>
	MPMoviePlayerController<span style="color: #002200;">*</span> theMovie <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>MPMoviePlayerController alloc<span style="color: #002200;">&#93;</span>
	initWithContentURL<span style="color: #002200;">:</span>theURL<span style="color: #002200;">&#93;</span>;
&nbsp;
	theMovie.scalingMode <span style="color: #002200;">=</span> MPMovieScalingModeNone;
	theMovie.movieControlMode <span style="color: #002200;">=</span> MPMovieControlModeDefault;
&nbsp;
	<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSNotificationCenter</span> defaultCenter<span style="color: #002200;">&#93;</span> addObserver<span style="color: #002200;">:</span>self
		selector<span style="color: #002200;">:</span><span style="color: #a61390;">@selector</span><span style="color: #002200;">&#40;</span>myMovieFinishedCallback<span style="color: #002200;">:</span><span style="color: #002200;">&#41;</span>
		name<span style="color: #002200;">:</span>MPMoviePlayerPlaybackDidFinishNotification
		object<span style="color: #002200;">:</span>theMovie<span style="color: #002200;">&#93;</span>;
&nbsp;
	<span style="color: #002200;">&#91;</span>theMovie play<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span>
&nbsp;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>myMovieFinishedCallback<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSNotification</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>aNotification
<span style="color: #002200;">&#123;</span>
&nbsp;
	MPMoviePlayerController<span style="color: #002200;">*</span> theMovie <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>aNotification object<span style="color: #002200;">&#93;</span>;
	<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSNotificationCenter</span> defaultCenter<span style="color: #002200;">&#93;</span> removeObserver<span style="color: #002200;">:</span>self
		name<span style="color: #002200;">:</span>MPMoviePlayerPlaybackDidFinishNotification
		object<span style="color: #002200;">:</span>theMovie<span style="color: #002200;">&#93;</span>;
&nbsp;
	<span style="color: #002200;">&#91;</span>theMovie release<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>Is this a 3.0 issue or am I doing something dumb?  I have sent a support ticket to Apple and will post a solution if I find one. Please let me know in the comments if you are having the same issue and how you solved it (if you did).<br />
Happy iCoding! </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/07/21/anyone-else-having-issues-with-mpmovieplayercontroller-in-iphone-os-3-0/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Server Upgrade Aftermath</title>
		<link>http://icodeblog.com/2009/07/17/server-upgrade-aftermath/</link>
		<comments>http://icodeblog.com/2009/07/17/server-upgrade-aftermath/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 15:05:04 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=1126</guid>
		<description><![CDATA[<a href="/2009/07/17/server-upgrade-aftermath/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>The server upgrade is finally complete.  And as a result, iCodeblog is faster and more reliable than ever. We have just finished linking back up the assets (videos, screenshots, etc&#8230;) and are ready to start blogging again. For those of [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F07%2F17%2Fserver-upgrade-aftermath%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F07%2F17%2Fserver-upgrade-aftermath%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<p>The server upgrade is finally complete.  And as a result, iCodeblog is faster and more reliable than ever. We have just finished linking back up the assets (videos, screenshots, etc&#8230;) and are ready to start blogging again.</p>
<p>For those of you who are wondering what hosting we decided to go with&#8230;  Well, we want to wait a few months and see how things go before disclosing this. But I can honestly say, we are very happy with the speed increase.</p>
<p>So stay tuned, we have some killing tutorials on the way.</p>
<p>Thank you for all of your patience and happy iCoding! </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/07/17/server-upgrade-aftermath/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Look Familiar?</title>
		<link>http://icodeblog.com/2009/07/08/look-familiar/</link>
		<comments>http://icodeblog.com/2009/07/08/look-familiar/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 17:53:53 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone game]]></category>
		<category><![CDATA[moron]]></category>
		<category><![CDATA[thief]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=1076</guid>
		<description><![CDATA[<a href="/2009/07/08/look-familiar/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2009/07/screenshot_01-150x150.png" class="alignleft wp-post-image tfe" alt="screenshot_01" title="screenshot_01" /></a>Ok, so I was perusing the App Store the other day to stumble upon this gem of an application. See the screenshot below. If you have been on iCodeBlog before, you might recognize this &#8220;game&#8221; from a tutorial that I [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F07%2F08%2Flook-familiar%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F07%2F08%2Flook-familiar%2F&amp;source=elctech&amp;style=normal&amp;hashtags=iphone+game,moron,thief" height="61" width="50" /><br />
			</a>
		</div>
<p>Ok, so I was perusing the App Store the other day to stumble upon this gem of an application. See the screenshot below.</p>
<p><a href="/wp-content/uploads/2009/07/screenshot_01.png"><img class="aligncenter size-full wp-image-1077" title="screenshot_01" src="/wp-content/uploads/2009/07/screenshot_01.png" alt="screenshot_01" width="600" /></a></p>
<p>If you have been on iCodeBlog before, you might recognize this &#8220;game&#8221; from a tutorial that I wrote about writing an iPhone game (<a href="/2009/01/15/iphone-game-programming-tutorial-part-1/">link</a><a></a>).  One thing to note here is the company name is BlaBlaIncTech (not iCodeBlog) meaning I did not submit this nor did I give permission to do so.  I find it interesting that someone has the guts to take a tutorial on iCodeBlog and submit it to the app store <strong>unmodified</strong>.</p>
<p>Not only was this VERY basic code meant to teach simple concepts, the graphics are absolutely atrocious as they were hacked together very quickly in Photoshop.  I actually find this quite hilarious that this guys expects me not to find out.</p>
<p>I wanted to highlight some of the great features noted by the &#8220;developer&#8221; of this application (Seen in the feature section of iTunes).</p>
<ul>
<li>&#8220;It&#8217;s basic game design makes it a fun game for someone that doesn&#8217;t play alot of games&#8221; &#8211; WOW, emphasis on the BASIC.  This game is fun for no one as it sucks! It was meant as a teaching tool moron!</li>
<li>&#8220;Great Quality&#8221; &#8211; Are we looking at the same game?</li>
<li>&#8220;Easy (So easy your grandma can play)&#8221; &#8211; If you have the same taste in games as your grandma, you probably don&#8217;t own an iPhone.</li>
<li>&#8220;<strong>Almost no crashes</strong>&#8221; &#8211; hahahaha this is the best one. The keyword here is &#8220;Almost&#8221;.  Well, that does it, I&#8217;m sold!</li>
</ul>
<p>So, if you want to scoop up this rad game, the link is <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=317420248&amp;mt=8">here</a> . I almost will pay him the $.99, just to make fun of him in the comments section. </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/07/08/look-familiar/feed/</wfw:commentRss>
		<slash:comments>96</slash:comments>
		</item>
		<item>
		<title>Objective C 2.0: An Intro &#8211; Part 1</title>
		<link>http://icodeblog.com/2009/06/18/objective-c-20-an-intro-part-1/</link>
		<comments>http://icodeblog.com/2009/06/18/objective-c-20-an-intro-part-1/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 18:15:08 +0000</pubDate>
		<dc:creator>Collin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=900</guid>
		<description><![CDATA[<a href="/2009/06/18/objective-c-20-an-intro-part-1/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2009/06/picture-3-150x150.png" class="alignleft wp-post-image tfe" alt="picture-3" title="" /></a>Introduction Hello everyone, welcome to my second screeencast. This is going to be the first in a series of screencasts that are focused at people just beginning to work with Objective C and Cocoa. For many reasons the beginnings of [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F06%2F18%2Fobjective-c-20-an-intro-part-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F06%2F18%2Fobjective-c-20-an-intro-part-1%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<h3><span style="color: #ff6600;">Introduction</span></h3>
<p>Hello everyone, welcome to my second screeencast. This is going to be the first in a series of screencasts that are focused at people just beginning to work with Objective C and Cocoa. For many reasons the beginnings of learning cocoa development can be frusterating and lonely to a point. Only now is Objective C and Cocoa development gaining the kind of momentum to drive the creation of resources such as iCodeBlog and others.</p>
<h2><span style="color: #000000;">Skill Level</span> <span style="color: #008000;">Beginner</span></h2>
<p>This is not going to be a tutorial for someone who has never had any experience with programming. I aviod getting into the Object Oriented Methodology side of things. All you will need to know for this tutorail is generally the purpose of Classes, Methods and Objects. If you have done any work with Java, C, C++ or C# you should be able to follow the content no problem.</p>
<h1><span style="color: #ff6600;">Screencast</span></h1>
<p>I film myself coding out the entire sample project for each post. I personally think going through the Screencast is the best way to learn. But feel free to look through the slides and text if that suites you better.</p>
<h3><a title="Objective C 2.0: An Intro Part 1 Screencast" href="http://vimeo.com/5654298" target="_blank"><span style="text-decoration: underline;">Objective C 2.0: An Intro &#8211; Part 1</span></a></h3>
<h1><span style="color: #ff6600;">Tutorial</span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-902" src="/wp-content/uploads/2009/06/picture-3.png" alt="picture-3" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-903" src="/wp-content/uploads/2009/06/picture-4.png" alt="picture-4" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-904" src="/wp-content/uploads/2009/06/picture-6.png" alt="picture-6" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-905" src="/wp-content/uploads/2009/06/picture-7.png" alt="picture-7" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-907" src="/wp-content/uploads/2009/06/picture-9.png" alt="picture-9" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-908" src="/wp-content/uploads/2009/06/picture-10.png" alt="picture-10" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-909" src="/wp-content/uploads/2009/06/picture-11.png" alt="picture-11" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-910" src="/wp-content/uploads/2009/06/picture-12.png" alt="picture-12" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-911" src="/wp-content/uploads/2009/06/picture-13.png" alt="picture-13" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-912" src="/wp-content/uploads/2009/06/picture-14.png" alt="picture-14" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-913" src="/wp-content/uploads/2009/06/picture-15.png" alt="picture-15" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-914" src="/wp-content/uploads/2009/06/picture-16.png" alt="picture-16" width="620" height="387" /></span></h1>
<h2><span style="color: #ff6600;">Instructions</span></h2>
<ol>
<li><span style="color: #ff6600;"><span style="color: #000000;">Open xCode</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">File -&gt; New Project</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">Start a new View based iPhone Project. The type of project you create really doesn&#8217;t matter for this exercise since we will only be programming a for loop to print and not creating any User Interface.</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">Call the project iCodeBlogCounter</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">After saving the project you will be confronted with a screen looking something like this.</span></span></li>
<p><span style="color: #ff6600;"><span style="color: #000000;"><img class="aligncenter size-full wp-image-938" src="/wp-content/uploads/2009/06/xcodefirstscreen.png" alt="xcodefirstscreen" width="620" height="387" /></span></span></p>
<li><span style="color: #ff6600;"><span style="color: #000000;">If you look in the top left hand corner you will see a folder called Classes. If you click the little black triangle to the left of the folder you will see what is included in the classes folder. In there you should see a class called iCodeBlogCounterAppDelegate.m. This is the file we will be working with. Click on it and you will see its contents appear in the editor window.</span></span></li>
<p><span style="color: #ff6600;"><span style="color: #000000;"><img class="aligncenter size-full wp-image-937" src="/wp-content/uploads/2009/06/groupsandfilescloseup.png" alt="groupsandfilescloseup" width="280" height="275" /></span></span></p>
<li>We will be working with the &#8211; (void)applicationDidFinishLaunching:(UIApplication *)application  method. This method is called when the application finished launching. We will be entering some very simple code that will simple count from 0 to 99 and print the numbers in the terminal window. Here is what the method should look like:</li>
<p><span style="color: #ff6600;"><span style="color: #000000;"><img class="aligncenter size-full wp-image-935" src="/wp-content/uploads/2009/06/applicationdidfinishlaunchingcloseup.png" alt="applicationdidfinishlaunchingcloseup" width="415" height="173" /></span></span></p>
<p><span style="color: #ff6600;"><span style="color: #000000;">The code here is:</span></span></p>
<pre><span style="color: #ff6600;"><span style="color: #000000;">for(int i = 0; i &lt; 100; i++)
{
     NSLog(@"The current number is: %d", i);
}
</span></span></pre>
<li><span style="color: #ff6600;"><span style="color: #000000;">That is all we need to do for this app. Now time to see it in action. To bring up the terminal window hit SHIFT + APPLE + R, this should bring up a blank window with maybe a line of text in it. Now click Build and Run or hit Apple + R. The terminal windows should say &#8220;The current number is 0&#8243; all the way to &#8220;The current  is 99&#8243;. Here is a screenshot of my window.</span></span></li>
</ol>
<p><span style="color: #ff6600;"><span style="color: #000000;"><img class="aligncenter size-full wp-image-936" src="/wp-content/uploads/2009/06/counterterminalwindow.png" alt="counterterminalwindow" width="620" height="375" /><br />
</span></span></p>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-915" src="/wp-content/uploads/2009/06/picture-17.png" alt="picture-17" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-916" src="/wp-content/uploads/2009/06/picture-18.png" alt="picture-18" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-917" src="/wp-content/uploads/2009/06/picture-19.png" alt="picture-19" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-918" src="/wp-content/uploads/2009/06/picture-20.png" alt="picture-20" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-919" src="/wp-content/uploads/2009/06/picture-21.png" alt="picture-21" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-920" src="/wp-content/uploads/2009/06/picture-22.png" alt="picture-22" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-921" src="/wp-content/uploads/2009/06/picture-24.png" alt="picture-24" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-922" src="/wp-content/uploads/2009/06/picture-25.png" alt="picture-25" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-923" src="/wp-content/uploads/2009/06/picture-26.png" alt="picture-26" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-924" src="/wp-content/uploads/2009/06/picture-28.png" alt="picture-28" width="620" height="387" /></span></h1>
<h2><span style="color: #ff6600;">Instructions</span></h2>
<ol>
<li><span style="color: #ff6600;"><span style="color: #000000;">Open xCode</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">File -&gt; New Project</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">Start a new View based iPhone Project. The type of project you create really doesn&#8217;t matter for this exercise since we will only be programming a for loop to print and not creating any User Interface.</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">Call the project iCodeBlogGetURLText</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">Once the project is open go into the iCodeBlogURLTextAppDelegate.m file.</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">Add this code to the </span></span>- (void)applicationDidFinishLaunching:(UIApplication *)application method</li>
<pre><span style="color: #ff6600;"><span style="color: #000000;">NSString *myURLString = @"http://losectrl-gaincommand.com/iCodeBlogHelper/Tutorial2/iCodeBlog.txt";
NSURL *myURL = [NSURL URLWithString:myURLString];
NSString *myString = [[NSString alloc] stringWithContentsofURL:myURL];

NSLog(@"The string from the internet is: %@", myString);
</span></span></pre>
<li><span style="color: #ff6600;"><span style="color: #000000;">If you bring up  the terminal window and Build and Run the App. You should see:</span></span></li>
</ol>
<p><span style="color: #ff6600;"><span style="color: #000000;"><img class="aligncenter size-full wp-image-942" src="/wp-content/uploads/2009/06/urltextfileterminalwindow.png" alt="urltextfileterminalwindow" width="501" height="443" /><br />
</span></span></p>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-925" src="/wp-content/uploads/2009/06/picture-29.png" alt="picture-29" width="620" height="387" /></span></h1>
<h2><span style="color: #ff6600;">Instructions</span></h2>
<ol>
<li><span style="color: #ff6600;"><span style="color: #000000;">Go back to the code we just wrote.<br />
</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">Erase the 4 lines of code we wrote and replace it with this line:</span></span></li>
<pre><span style="color: #ff6600;"><span style="color: #000000;">NSLog(@"The string from the internet is: %@", [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://losectrl-gaincommand.com/iCodeBlogHelper/Tutorial2/iCodeBlog.txt"]]);
</span></span></pre>
<li>Running the application again should have the same output.</li>
<li>Here is a a breakdown of out new line of code.</li>
</ol>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-926" src="/wp-content/uploads/2009/06/picture-30.png" alt="picture-30" width="620" height="387" /></span></h1>
<h1><span style="color: #ff6600;"><img class="aligncenter size-full wp-image-927" src="/wp-content/uploads/2009/06/picture-31.png" alt="picture-31" width="620" height="387" /></span></h1>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/06/18/objective-c-20-an-intro-part-1/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>Custom UITableViewCell Using Interface Builder</title>
		<link>http://icodeblog.com/2009/05/24/custom-uitableviewcell-using-interface-builder/</link>
		<comments>http://icodeblog.com/2009/05/24/custom-uitableviewcell-using-interface-builder/#comments</comments>
		<pubDate>Mon, 25 May 2009 03:27:36 +0000</pubDate>
		<dc:creator>Collin</dc:creator>
				<category><![CDATA[Interface Builder]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPhone Articles]]></category>
		<category><![CDATA[iPhone Programming Tutorials]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[uitableview]]></category>
		<category><![CDATA[UITableViewCell]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=752</guid>
		<description><![CDATA[<a href="/2009/05/24/custom-uitableviewcell-using-interface-builder/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2009/05/picture-1-150x150.png" class="alignleft wp-post-image tfe" alt="picture-1" title="" /></a>Hey everyone, welcome to my first of many screencasts coming in the next few weeks. Today I am going to show you how to layout a UITableViewCell in Interface Builder and have a UITableView populate with those type of cells. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F05%2F24%2Fcustom-uitableviewcell-using-interface-builder%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F05%2F24%2Fcustom-uitableviewcell-using-interface-builder%2F&amp;source=elctech&amp;style=normal&amp;hashtags=uitableview,UITableViewCell" height="61" width="50" /><br />
			</a>
		</div>
<p>Hey everyone, welcome to my first of many screencasts coming in the next few weeks. Today I am going to show you how to layout a UITableViewCell in Interface Builder and have a UITableView populate with those type of cells. I am adopting a new structure for my screencasts which will be 5 or so mintues of keynote slides giving background info followed by 20 &#8211; 25 mintues of step by step development. The entire video will be directly below this paragraph, but scrolling down you will see a text based step by step of the whole tutorial as well. Hope you guys enjoy.</p>
<h2><span style="color: #000000;">Skill Level</span> <span style="color: #ff6600;">MEDIUM</span></h2>
<p>Here is a link to the screencast to watch. We are working on getting an embedded version in, but I figure this is basically just as functional. Have fun!</p>
<h2><a href="http://eu-video-cloud.s3.amazonaws.com/available/114103480/asset-61/encoded_hidef.mp4">Custom UITableViewCell Screencast Video</a></h2>
<h1><span style="color: #ff6600;">Source Code<br />
</span></h1>
<h3><a title="Custom UITableViewCell's Using Interface Builder" href="http://losectrl-gaincommand.com/iCodeBlogHelper/Tutorial1/CustomUITableViewCell.zip"><span style="text-decoration: underline;">Available Here</span></a></h3>
<h2><span style="color: #008080;">Background Information</span></h2>
<p><img class="aligncenter size-full wp-image-814" src="/wp-content/uploads/2009/05/picture-1.png" alt="picture-1" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-815" src="/wp-content/uploads/2009/05/picture-2.png" alt="picture-2" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-816" src="/wp-content/uploads/2009/05/picture-3.png" alt="picture-3" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-817" src="/wp-content/uploads/2009/05/picture-4.png" alt="picture-4" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-818" src="/wp-content/uploads/2009/05/picture-5.png" alt="picture-5" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-819" src="/wp-content/uploads/2009/05/picture-6.png" alt="picture-6" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-820" src="/wp-content/uploads/2009/05/picture-7.png" alt="picture-7" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-821" src="/wp-content/uploads/2009/05/picture-8.png" alt="picture-8" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-822" src="/wp-content/uploads/2009/05/picture-9.png" alt="picture-9" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-823" src="/wp-content/uploads/2009/05/picture-10.png" alt="picture-10" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-824" src="/wp-content/uploads/2009/05/picture-11.png" alt="picture-11" width="622" height="388" /></p>
<h2><span style="color: #008080;">Building The App</span></h2>
<h3><span style="color: #008080;"><span style="color: #993300;">Step 1</span></span></h3>
<p><img class="aligncenter size-full wp-image-825" src="/wp-content/uploads/2009/05/picture-12.png" alt="picture-12" width="622" height="388" /></p>
<p style="padding-left: 60px;"><span style="color: #008080;"><span style="color: #993300;"><span style="color: #000000;">This step shouldn&#8217;t require any extra information.</span></span></span></p>
<h3><span style="color: #008080;"><span style="color: #993300;">Step 2</span></span></h3>
<p><img class="aligncenter size-full wp-image-826" src="/wp-content/uploads/2009/05/picture-13.png" alt="picture-13" width="622" height="388" /></p>
<p><img class="aligncenter size-full wp-image-836" src="/wp-content/uploads/2009/05/datasourceconnection.png" alt="datasourceconnection" width="622" height="377" /></p>
<h3><span style="color: #008080;"><span style="color: #993300;">Step 3</span></span></h3>
<p><img class="aligncenter size-full wp-image-827" src="/wp-content/uploads/2009/05/picture-14.png" alt="picture-14" width="622" height="388" /></p>
<p style="padding-left: 30px;">In CustomTableCellTutorialViewController.m you must define the two required UITableViewDataSource methods. These methods will fill up the table view with data. For now we will put in dummy data just to make sure all of our connections are working.</p>
<p style="padding-left: 30px;">- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 60px;">return 10;</p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 30px;">- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 60px;">static NSString *CellIdentifier = @&#8221;Cell&#8221;;</p>
<p style="padding-left: 60px;">UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];</p>
<p style="padding-left: 60px;">if (cell == nil){</p>
<p style="padding-left: 90px;">cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];</p>
<p style="padding-left: 60px;">}</p>
<p style="padding-left: 60px;">[cell setText:[NSString stringWithFormat:@"I am cell %d", indexPath.row]];</p>
<p style="padding-left: 60px;">return cell;</p>
<p style="padding-left: 30px;">}</p>
<h3><span style="color: #008080;"><span style="color: #993300;">Step 4</span></span></h3>
<p><img class="aligncenter size-full wp-image-828" src="/wp-content/uploads/2009/05/picture-15.png" alt="picture-15" width="622" height="388" /></p>
<p style="padding-left: 30px;">Here you will need to be in xCode and go to File -&gt; New File&#8230;</p>
<p style="padding-left: 30px;">Select Objective C Class and make sure it is a UITableViewCell subclass, depending on your version of the SDK selecting this will differ. Look around and you will find it, call it iCodeBlogCustomCell. With this done enter these IBOutlets in the iCodeBlogCustomCell.h file enter the following IBOutlets:</p>
<p style="padding-left: 30px;">IBOutlet UILabel *articleName;<br />
IBOutlet UILabel *authorName;<br />
IBOutlet UILabel *date;</p>
<p>IBOutlet UIImageView *imageView;<br />
IBOutlet UIView *viewForBackground;</p>
<p style="padding-left: 30px;">Add the @property and synthesize them in the main.</p>
<h3><span style="color: #008080;"><span style="color: #993300;">Step 5</span></span></h3>
<p><img class="aligncenter size-full wp-image-829" src="/wp-content/uploads/2009/05/picture-16.png" alt="picture-16" width="622" height="388" /></p>
<p style="padding-left: 30px;">This step does not require and code but does require a lot of work in Interface Builder. I highly recommend you watch the screencast to see the step by step procedure here. Essentially what I do is create a new View XIB file. Opening this, I delete the standard UIView in the XIB and drag a UITableViewCell from my library into my document window. I assign the UITableViewCell to be of type iCodeBlogCustomCell. With this done layout the interface with the proper elements and hook them up by right clicking on the UITableViewCell in the document window.</p>
<h3><span style="color: #008080;"><span style="color: #993300;">Step 6<br />
</span></span></h3>
<p><img class="aligncenter size-full wp-image-830" src="/wp-content/uploads/2009/05/picture-17.png" alt="picture-17" width="622" height="388" /></p>
<p style="padding-left: 30px;">This is where the real magic is. We are going to return to CustomTableCellTutorialViewController.m and edit the UITableViewDataSource methods we implemented earlier. The code I use has me putting in 4 separate PNG files that I add to my project. You can find your own to put inside the cells. Make sure the UIImageView inside the cell is set for Aspect Fit so you don&#8217;t have to worry about resizing the images.  The functions should be changed to be:</p>
<p style="padding-left: 30px;">- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section<br />
{<br />
return 100;<br />
}</p>
<p style="padding-left: 30px;">- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath<br />
{<br />
static NSString *CellIdentifier = @&#8221;iCodeBlogCustomCell&#8221;;</p>
<p style="padding-left: 60px;">iCodeBlogCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];</p>
<p style="padding-left: 60px;">if (cell == nil){<br />
NSLog(@&#8221;New Cell Made&#8221;);</p>
<p style="padding-left: 60px;">NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@&#8221;iCodeBlogCustomCell&#8221; owner:nil options:nil];</p>
<p style="padding-left: 60px;">for(id currentObject in topLevelObjects)<br />
{<br />
if([currentObject isKindOfClass:[iCodeBlogCustomCell class]])<br />
{<br />
cell = (iCodeBlogCustomCell *)currentObject;<br />
break;<br />
}<br />
}<br />
}</p>
<p style="padding-left: 60px;">
<p style="padding-left: 60px;">if(indexPath.row % 4 == 0)<br />
{<br />
[[cell authorName] setText:@&#8221;Collin Ruffenach&#8221;];<br />
[[cell articleName] setText:@&#8221;Test Article 1&#8243;];<br />
[[cell date] setText:@&#8221;May 5th, 2009&#8243;];<br />
[[cell imageView] setImage:[UIImage imageNamed:@"1.png"]];<br />
}</p>
<p style="padding-left: 60px;">else if(indexPath.row % 4 == 1)<br />
{<br />
[[cell authorName] setText:@&#8221;Steve Jobs&#8221;];<br />
[[cell articleName] setText:@&#8221;Why iPhone will rule the world&#8221;];<br />
[[cell date] setText:@&#8221;May 5th, 2010&#8243;];<br />
[[cell imageView] setImage:[UIImage imageNamed:@"2.png"]];<br />
}</p>
<p style="padding-left: 60px;">else if(indexPath.row % 4 == 2)<br />
{<br />
[[cell authorName] setText:@&#8221;The Woz&#8221;];<br />
[[cell articleName] setText:@&#8221;Why I&#8217;m coming back to Apple&#8221;];<br />
[[cell date] setText:@&#8221;May 5th, 2012&#8243;];<br />
[[cell imageView] setImage:[UIImage imageNamed:@"3.png"]];<br />
}</p>
<p style="padding-left: 60px;">else if(indexPath.row % 4 == 3)</p>
<p style="padding-left: 60px;">{<br />
[[cell authorName] setText:@&#8221;Aaron Hillegass&#8221;];<br />
[[cell articleName] setText:@&#8221;Cocoa: A Brief Introduction&#8221;];<br />
[[cell date] setText:@&#8221;May 5th, 2004&#8243;];<br />
[[cell imageView] setImage:[UIImage imageNamed:@"4.png"]];</p>
<p style="padding-left: 60px;">}</p>
<p style="padding-left: 30px;">return cell;<br />
}</p>
<h3><span style="color: #008080;"><span style="color: #993300;">The End</span></span></h3>
<p style="padding-left: 30px;">So that is it for my first new post. I will be doing many more. Let me know your thoughts on this format in the comments. If you see anything organization wise that you think should be changed/add/removed let me know. Good Luck!</p>
<p style="padding-left: 30px;">
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/05/24/custom-uitableviewcell-using-interface-builder/feed/</wfw:commentRss>
		<slash:comments>79</slash:comments>
		</item>
		<item>
		<title>EyeCue relaunched!</title>
		<link>http://icodeblog.com/2009/05/11/eyecue-relaunched/</link>
		<comments>http://icodeblog.com/2009/05/11/eyecue-relaunched/#comments</comments>
		<pubDate>Mon, 11 May 2009 21:55:13 +0000</pubDate>
		<dc:creator>rhou</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[EyeCue]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[itunes]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=784</guid>
		<description><![CDATA[<a href="/2009/05/11/eyecue-relaunched/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>EyeCue relaunched on iTunes! EyeCue has received tremendous amount of success since its original launch. We have had thousands of downloads on the daily basis. Unfortunately, quite a few users experienced crashes due to the compatibility issues in iPhone SDK 2.1 and iPhone SDK 2.2.
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F05%2F11%2Feyecue-relaunched%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F05%2F11%2Feyecue-relaunched%2F&amp;source=elctech&amp;style=normal&amp;hashtags=apple,EyeCue,game,itunes" height="61" width="50" /><br />
			</a>
		</div>
<div class="preface">
<p>EyeCue has received tremendous amount of success since its original launch.  We have had thousands of downloads on the daily basis.  Unfortunately, quite a few users experienced crashes due to the compatibility issues in iPhone SDK 2.1 and iPhone SDK 2.2.</p>
<p>In an effort the combat the incompatibility issue, we&#8217;ve recompiled the code and re-released the new and updated version in iTunes.</p>
<p>I have even made a video for it.  Check it out <a href="http://www.youtube.com/watch?v=-JxZpfzhV2Y">here</a></p>
<p>Get your copy <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=308416341&amp;mt=8">here</a></p>
<p>Giddy up!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/05/11/eyecue-relaunched/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>iPhone Game Programming Tutorial Part 3 &#8211; Splash Screen</title>
		<link>http://icodeblog.com/2009/03/18/iphone-game-programming-tutorial-part-3-splash-screen/</link>
		<comments>http://icodeblog.com/2009/03/18/iphone-game-programming-tutorial-part-3-splash-screen/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 20:01:04 +0000</pubDate>
		<dc:creator>brandontreb</dc:creator>
				<category><![CDATA[iPhone Game Programming]]></category>
		<category><![CDATA[iPhone Programming Tutorials]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/?p=703</guid>
		<description><![CDATA[<a href="/2009/03/18/iphone-game-programming-tutorial-part-3-splash-screen/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/uploads/2009/03/splash-150x150.png" class="alignleft wp-post-image tfe" alt="splash" title="splash" /></a>Ok, So it&#8217;s time to wrap up this series.  Today I will be showing you how to add a few &#8220;bells and whistles&#8221; that will make your game more complete.  Let&#8217;s start by adding a splash screen to your game [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2009%2F03%2F18%2Fiphone-game-programming-tutorial-part-3-splash-screen%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2009%2F03%2F18%2Fiphone-game-programming-tutorial-part-3-splash-screen%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<p>Ok, So it&#8217;s time to wrap up this series.  Today I will be showing you how to add a few &#8220;bells and whistles&#8221; that will make your game more complete.  Let&#8217;s start by adding a splash screen to your game (Again I truly apologize for the lack of graphics skillz. Photoshop and I are not friends).</p>
<h3>Creating a Splash Page</h3>
<p>We will be adding a splash page that will fade out into our main game screen.  Start by downloading this image and adding it to your project&#8217;s <strong>Resources</strong> Folder. Make sure you check the box to copy this image to the project&#8217;s directory.</p>
<p style="text-align: center;"><a href="/wp-content/uploads/2009/03/splash.png"><img class="alignnone size-full wp-image-704" title="splash" src="/wp-content/uploads/2009/03/splash.png" alt="splash" width="320" height="480" /></a></p>
<p style="text-align: left;">Now we need to add a View Controller to our project that will handle the Splash View.  Go ahead and add a new file to your project that is a <strong>UIViewController </strong>subclass. Name this file <strong>SplashViewController.</strong> Make sure you check to create the .h file as well.</p>
<p style="text-align: left;">
<div style="text-align: center;"><a href="/wp-content/uploads/2009/03/screenshot_01.png"><img class="alignnone size-full wp-image-705" title="screenshot_01" src="/wp-content/uploads/2009/03/screenshot_01.png" alt="screenshot_01" width="600" height="442" /></a></div>
<div style="text-align: left;">Next, we need to change our AppDelegate to load this view controller instead of our main view controller.  Open up <strong>iTennisAppDelegate.h </strong>and change it to look like this:</div>
<div style="text-align: center;"><a href="/wp-content/uploads/2009/03/screenshot_02.png"><img class="alignnone size-full wp-image-706" title="screenshot_02" src="/wp-content/uploads/2009/03/screenshot_02.png" alt="screenshot_02" width="466" height="194" /></a></div>
<div style="text-align: left;">We are basically replacing iTennisViewController with SplashViewController.  Next, open up <strong>iTennisAppDelegate.m </strong>and change it to look like this:</div>
<div style="text-align: center; "><a href="/wp-content/uploads/2009/03/screenshot_03.png"><img class="alignnone size-full wp-image-707" title="screenshot_03" src="/wp-content/uploads/2009/03/screenshot_03.png" alt="screenshot_03" width="418" height="365" /></a></div>
<div style="text-align: left; ">Again, all we are really doing is changeing iTennisViewController with SplashViewController.  This is because we want to load the splash page initially and not the main game screen.  One main difference to note here is we are allocating a new instance of the SplashViewController. We didn&#8217;t have to do that with the iTennisViewController because it was being loaded from a nib and our application initialized it for us.  Since we are building SplashViewController programatically (without a nib), we need to instantiate it.  Next, let&#8217;s implement the Splash View.  Open up <strong>SplashViewController.h</strong> and add the following code:</div>
<div style="text-align: center; "><a href="/wp-content/uploads/2009/03/screenshot_04.png"><img class="alignnone size-full wp-image-708" title="screenshot_04" src="/wp-content/uploads/2009/03/screenshot_04.png" alt="screenshot_04" width="406" height="231" /></a></div>
<div style="text-align: left; ">Let me explain what&#8217;s going on here.  First, we see an NSTimer.  This will be used to display the splash page for a certain amount of time before fading to our main game screen.  Next, there is a UIImageView.  This will simply be the imageview of our splash image.</div>
<div style="text-align: left; ">Finally, we see the <strong>iTennisViewController</strong>.  This is the view controller that we replaced inside of our application&#8217;s delegate.  We will be loading it from our splash view. Now, open up <strong>SplashViewController.m</strong> and add the following code:</div>
<div style="text-align: center; "><a href="/wp-content/uploads/2009/03/screenshot_05.png"><img class="alignnone size-full wp-image-709" title="screenshot_05" src="/wp-content/uploads/2009/03/screenshot_05.png" alt="screenshot_05" width="301" height="25" /></a></div>
<div style="text-align: left; ">This is just synthesizing all of our properties.  Now, add the following code to our <strong>l</strong><strong>oadView</strong> method:</div>
<div style="text-align: center; "><a href="/wp-content/uploads/2009/03/screenshot_07.png"><img class="alignnone size-full wp-image-711" title="screenshot_07" src="/wp-content/uploads/2009/03/screenshot_07.png" alt="screenshot_07" width="761" height="259" /></a></div>
<div style="text-align: left; ">Lot&#8217;s of new code here.  First off, since we are loading this view programatically without a nib, we have to create the view.  So we get the frame that the application is running in and use it to allocate a new view.  Then we set the view of the SplashViewController to this newly created view.  We have to create the frame to basically tell the application to create a view that is 320&#215;480.</div>
<div style="text-align: left; ">The next thing we do is create the splashImageView from the Splash.png image.  We also need to create a frame for this images.  Think of a frame as an empty container that we will put our image in.  Next we add the imageview to our main view.  This will display it immediately.</div>
<div style="text-align: left; ">Next, we initialize our view main controller by passing it the nib it will load from.  Next, the view&#8217;s alpha transparency is set to 0.0.  This makes it completely invisible.  Finally, we add it to our view.  Note that it is on top of the splashimageview but is not visible because the alpha transparency is set to 0.0.</div>
<div style="text-align: left; ">Finally, we start the timer.  This will show the splash screen for 2 seconds before calling the &#8220;fadeScreen&#8221; method.  Let&#8217;s implement the fadescreen method.  I must note that I took the fadescreen method from <a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/12998-how-fade-between-views-transitioning-through-black.html">this post</a>.</div>
<div style="text-align: left; ">Add the following code:</div>
<div style="text-align: center;"><a href="/wp-content/uploads/2009/03/screenshot_08.png"><img class="alignnone size-full wp-image-712" title="screenshot_08" src="/wp-content/uploads/2009/03/screenshot_08.png" alt="screenshot_08" width="578" height="317" /></a></div>
<div style="text-align: left;">Lots of animation stuff.  Pretty well commented so I wont go into it too much.  Basically, we fade the view out in fadeScreen, then it calls finishedFading when its done.  Finished fading fades the view back in as well as fades viewController&#8217;s view back in.  It will now display our main view.  Make sure you remove the splash from the superview or you will get a weird transition.</div>
<div style="text-align: left;">That&#8217;s it for the splash page.  You can Build and Go to see the view transition from a splash to the main game.</div>
<p>That&#8217;s all for today.  Join me next time when I will show you how to add audio to your game. If you have any questions or comments, feel free to leave them in the comments section or <a href="http://twitter.com/brandontreb">write me on Twitter</a>.</p>
<p>You can download the source for this tutorial <a href="/wp-content/uploads/2009/03/itennis-3.zip">here</a></p>
<p>Happy iCoding! </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2009/03/18/iphone-game-programming-tutorial-part-3-splash-screen/feed/</wfw:commentRss>
		<slash:comments>109</slash:comments>
		</item>
		<item>
		<title>Finding Substrings in Objective-C</title>
		<link>http://icodeblog.com/2008/11/03/finding-substrings-in-objective-c/</link>
		<comments>http://icodeblog.com/2008/11/03/finding-substrings-in-objective-c/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 05:57:00 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://icodeblog.com/2008/11/03/finding-substrings-in-objective-c/</guid>
		<description><![CDATA[<a href="/2008/11/03/finding-substrings-in-objective-c/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>It&#8217;s times like this, that I miss ruby. I&#8217;m checking a url to see if it has a substring. It would be so easy if this was ruby: absolute_url.match(/my regex/).any? In Objective C, you have to use rangeOfString which returns [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2008%2F11%2F03%2Ffinding-substrings-in-objective-c%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2008%2F11%2F03%2Ffinding-substrings-in-objective-c%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<p>It&#8217;s times like this, that I miss ruby.</p>
<p>I&#8217;m checking a url to see if it has a substring.  It would be so easy if this was ruby:
<pre>absolute_url.match(/my regex/).any?</pre>
<p>In Objective C, you have to use rangeOfString which returns a range.  If I were to run this on the string <span style="font-style: italic;">&#8220;the quick brown fox&#8221;</span> with an argument of <span style="font-style: italic;">&#8220;brown&#8221;</span> it would return <span style="font-style: italic;">{10,14}</span>.  If it&#8217;s not found, it would return <span style="font-style: italic;">{NSNotFound, 0}</span>.  Let&#8217;s use that to check to see if the range was found.  We&#8217;ll use <span style="font-style: italic;">NSMakeRange</span> to create the <span style="font-style: italic;">NSNotFound</span> range and <span style="font-style: italic;">NSEqualRanges</span> to compare them:
<pre>if(NSEqualRanges(NSMakeRange(NSNotFound, 0), [absoluteURL rangeOfString:@"my_substring"])){   NSLog(@"my_substring not found in absoluteURL %@", absoluteURL);}</pre>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2008/11/03/finding-substrings-in-objective-c/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Where for art thou daemons?</title>
		<link>http://icodeblog.com/2008/10/31/where-for-art-thou-daemons/</link>
		<comments>http://icodeblog.com/2008/10/31/where-for-art-thou-daemons/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 07:17:00 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/2008/10/31/where-for-art-thou-daemons/</guid>
		<description><![CDATA[<a href="/2008/10/31/where-for-art-thou-daemons/"><img align="left" hspace="5" width="150" src="http://www.dailygalaxy.com/photos/uncategorized/2007/07/01/female_android_2.jpg" class="alignleft wp-post-image tfe" alt="" title="" /></a>In short, they&#8217;re in Android, not the iPhone. This is a common frustration to iPhone application developers and product visionaries. You can&#8217;t run applications in the background. Think of all the features un-implemented due to this colossal disclusion. Granted, there&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2008%2F10%2F31%2Fwhere-for-art-thou-daemons%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2008%2F10%2F31%2Fwhere-for-art-thou-daemons%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dailygalaxy.com/photos/uncategorized/2007/07/01/female_android_2.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 192px; height: 192px;" src="http://www.dailygalaxy.com/photos/uncategorized/2007/07/01/female_android_2.jpg" alt="" border="0" /></a><span style="font-weight: bold;font-size:100%;" >In short, they&#8217;re in Android, not the iPhone.</span></p>
<p>This is a common frustration to iPhone application developers and product visionaries.  You can&#8217;t run applications in the background.  Think of all the features un-implemented due to this colossal disclusion.</p>
<p>Granted, there&#8217;s a reason Apple chose to omit this from their SDK.  Lucky for me and you, Android chose to pay special attention to it.  What we would call &#8220;daemons&#8221; on a standard operating system, Android refers to as &#8220;Services&#8221;.</p>
<p><span style="font-weight: bold;">Hotness!!</span></p>
<p>Now we can do a cadre of interesting things, like wait for communication from a server while we check our email or play a game of Sudoku.  Even better, we can bind other activities to these services to let us know when threads complete or to communicate with them directly from another app!</p>
<p>That  makes for one happy droid! </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2008/10/31/where-for-art-thou-daemons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Haunted App link recap&#8230;</title>
		<link>http://icodeblog.com/2008/10/30/haunted-app-link-recap/</link>
		<comments>http://icodeblog.com/2008/10/30/haunted-app-link-recap/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 15:36:00 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/2008/10/30/haunted-app-link-recap/</guid>
		<description><![CDATA[<a href="/2008/10/30/haunted-app-link-recap/"><img align="left" hspace="5" width="150" height="150" src="/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>iPhoneAppReviews says:Haunted is basically a short video with a scary ending. Do NOT show it to young children unless you want them to be in therapy for the next 20 years. Using it to scare the crap out of your [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2008%2F10%2F30%2Fhaunted-app-link-recap%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2008%2F10%2F30%2Fhaunted-app-link-recap%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.iphoneappreviews.net/2008/10/27/haunted/">iPhoneAppReviews</a> says:<br/><br />Haunted is basically a short video with a scary ending. Do NOT show it to young children unless you want them to be in therapy for the next 20 years. Using it to scare the crap out of your coworkers, though, is totally acceptable!</p>
<p>
<p><a href="http://www.iphonefootprint.com/2008/10/2008-halloween-fun-and-pranks-apps-for-iphoneipod-touch/">iPhoneAppReviews</a> says:<br/><br />Open the app and let your friend stare on the screen and just make sure that the person does not drop your iPhone or iPod touch&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2008/10/30/haunted-app-link-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RightSprite meet Android</title>
		<link>http://icodeblog.com/2008/10/28/rightsprite-meet-android/</link>
		<comments>http://icodeblog.com/2008/10/28/rightsprite-meet-android/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 04:40:00 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://icodeblog.com/2008/10/28/rightsprite-meet-android/</guid>
		<description><![CDATA[<a href="/2008/10/28/rightsprite-meet-android/"><img align="left" hspace="5" width="150" src="http://inspiredworlds.files.wordpress.com/2008/08/android.jpg" class="alignleft wp-post-image tfe" alt="" title="" /></a>Uhh, not that kind. Yes! That one! The kind that Google makes. Here at RightSprite we love new technology. Most of us here were early adopters of Ruby on Rails and jumped on the iPhone SDK as soon as we [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ficodeblog.com%2F2008%2F10%2F28%2Frightsprite-meet-android%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ficodeblog.com%2F2008%2F10%2F28%2Frightsprite-meet-android%2F&amp;source=elctech&amp;style=normal&amp;hashtags=%23iphonedev" height="61" width="50" /><br />
			</a>
		</div>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://inspiredworlds.files.wordpress.com/2008/08/android.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 160px;" src="http://inspiredworlds.files.wordpress.com/2008/08/android.jpg" alt="" border="0" /></a>Uhh, not that kind.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://latechna.com/blog/wp-content/uploads/2008/05/500px-android-logosvg.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 160px;" src="http://latechna.com/blog/wp-content/uploads/2008/05/500px-android-logosvg.png" alt="" border="0" /></a>Yes!  That one!  The kind that Google makes.</p>
<p>Here at RightSprite we love new technology.  Most of us here were early adopters of Ruby on Rails and jumped on the iPhone SDK as soon as we could.</p>
<p>Here we go again.  Google&#8217;s new mobile platform is expanding our playground even further!</p>
<p>Check back for updates and an all new RightSprite Android App.</p>
<p><span style="font-size:78%;">Google drawing inspiration from Dali?</span><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sciam.com/media/inline/91052290-CE47-36C5-6628F34FC51E972C_1.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 320px;" src="http://www.sciam.com/media/inline/91052290-CE47-36C5-6628F34FC51E972C_1.jpg" alt="" border="0" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://icodeblog.com/2008/10/28/rightsprite-meet-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
