<?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>Scott Means &#187; iPhone</title>
	<atom:link href="http://smeans.com/category/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://smeans.com</link>
	<description>Ripping the envelope of software development, one technology at a time.</description>
	<lastBuildDate>Tue, 06 Oct 2009 13:47:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Core data model migration on the iPhone.</title>
		<link>http://smeans.com/2009/08/02/core-data-model-migration-on-the-iphone/</link>
		<comments>http://smeans.com/2009/08/02/core-data-model-migration-on-the-iphone/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 21:39:21 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=196</guid>
		<description><![CDATA[Doing something as simple as adding a new attribute to an entity in your Core Data model will break your application when it comes to opening older persistent data stores. Core Data has some support for automatic migration, documented in the &#8220;Introduction to Core Data Model Versioning and Data Migration Programming Guide&#8221; (whew!) in the [...]]]></description>
			<content:encoded><![CDATA[<p>Doing something as simple as adding a new attribute to an entity in your Core Data model will break your application when it comes to opening older persistent data stores. Core Data has some support for automatic migration, documented in the &#8220;Introduction to Core Data Model Versioning and Data Migration Programming Guide&#8221; (whew!) in the Lightweight Migration section. Unfortunately, there are crucial steps that are not mentioned in this section. Kudos to Grouchal on Stack Overflow for giving us the <a href="http://stackoverflow.com/questions/1018155/what-do-i-have-to-do-to-get-core-data-to-automatically-migrate-models/1219911#1219911">rest of the story</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2009/08/02/core-data-model-migration-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roll-your-own iPhone framework.</title>
		<link>http://smeans.com/2009/06/06/roll-your-own-iphone-framework/</link>
		<comments>http://smeans.com/2009/06/06/roll-your-own-iphone-framework/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 16:05:34 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=179</guid>
		<description><![CDATA[After starting work on my latest iPhone app (#6 or so), I finally decided it was time to get more efficient with my existing library of code. I&#8217;ve been building various helper classes for manipulating bitmaps, etc, and I wanted to be able to share them between my apps in a more organized way.
As usual, [...]]]></description>
			<content:encoded><![CDATA[<p>After starting work on my latest iPhone app (#6 or so), I finally decided it was time to get more efficient with my existing library of code. I&#8217;ve been building various helper classes for manipulating bitmaps, etc, and I wanted to be able to share them between my apps in a more organized way.</p>
<p>As usual, there isn&#8217;t much on the web about this, but I eventually tracked down a couple of useful articles to get me started:</p>
<ul>
<li><a href="http://github.com/keremk/iphone-static-library-project-template/tree/master">keremk&#8217;s iphone-static-library-project-template</a></li>
<li><a href="http://blog.stormyprods.com/2008/11/using-static-libraries-with-iphone-sdk.html">Building static libraries with the iPhone SDK</a></li>
</ul>
<p>The first article shows you how to add your own custom project type template to XCode so you can easily create shared iPhone libraries. The second one shows you how to reference your new library from your application. With a little trial-and-error I now have a nice shared lib of iPhone classes. Pretty soon, who knows, maybe Apple will allow dynamic linking and we can move iPhone development into the 80s!</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2009/06/06/roll-your-own-iphone-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone programming: fun with grayscale images.</title>
		<link>http://smeans.com/2009/06/03/iphone-programming-fun-with-grayscale-images/</link>
		<comments>http://smeans.com/2009/06/03/iphone-programming-fun-with-grayscale-images/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 17:55:21 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=177</guid>
		<description><![CDATA[So I was trying to do something that I thought was simple. I needed to convert an image from full color to grayscale in my iPhone application, and I easily found the CGColorSpaceCreateDeviceGray method which seemed to put me on the right track. But the complication came when I tried to use this color space [...]]]></description>
			<content:encoded><![CDATA[<p>So I was trying to do something that I <em>thought</em> was simple. I needed to convert an image from full color to grayscale in my iPhone application, and I easily found the <span style="font-family: monospace">CGColorSpaceCreateDeviceGray</span> method which seemed to put me on the right track. But the complication came when I tried to use this color space with <span style="font-family: monospace">CGBitmapContextCreate</span>. I got this error in the console:</p>
<pre>&lt;Error&gt;: CGBitmapContextCreate: unsupported parameter combination:
8 integer bits/component; 16 bits/pixel; 1-component colorspace;
kCGImageAlphaPremultipliedLast; 1472 bytes/row.</pre>
<p>So the combination of parameters was incorrect. But which one was at fault? Thankfully, I found a helpful <a href="http://lists.apple.com/archives/Carbon-dev/2007/Jun/msg00014.html">post</a> on the web that led me to this article:</p>
<p><a href="http://developer.apple.com/qa/qa2001/qa1037.html">CGBitmapContextCreate Supported Color Spaces</a></p>
<p>Very handy. Wish that this table were actually included in the documentation for the <span style="font-family: monospace">CGBitmapContextCreate</span> method. Imagine how useful that would be! So, for your convenience, here is a function to create a grayscale copy of a <span style="font-family: monospace">UIImage</span>:</p>
<pre>UIImage *createGrayCopy(UIImage *source)
{
	int width = source.size.width;
	int height = source.size.height;

	CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();

	CGContextRef context = CGBitmapContextCreate (nil,
						 width,
						 height,
						 8,      // bits per component
						 0,
						 colorSpace,
						 kCGImageAlphaNone);

	CGColorSpaceRelease(colorSpace);

	if (context == NULL) {
		return nil;
	}

	CGContextDrawImage(context,
		CGRectMake(0, 0, width, height), source.CGImage);

	UIImage *grayImage = [UIImage imageWithCGImage:CGBitmapContextCreateImage(context)];
	CGContextRelease(context);

	return grayImage;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2009/06/03/iphone-programming-fun-with-grayscale-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A day with the Jester.</title>
		<link>http://smeans.com/2009/05/30/a-day-with-the-jester/</link>
		<comments>http://smeans.com/2009/05/30/a-day-with-the-jester/#comments</comments>
		<pubDate>Sat, 30 May 2009 21:47:52 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://smeans.com/?p=159</guid>
		<description><![CDATA[I just finished one of the most interesting software development projects ever this week. After responding to a note posted to the Atlanta iPhone Developer Meetup group I ended up trading emails with JD Howard, author of the Naughty Jester blog. JD wanted an iPhone app to help connect with his readers, but he didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://naughtyjester.com"><img src="http://smeans.com/wp-content/uploads/2009/05/jesterimage1-143x150.jpg" alt="The Naughty Jester" title="The Naughty Jester" width="143" height="150" class="alignright size-thumbnail wp-image-161" /></a>I just finished one of the most interesting software development projects ever this week. After responding to a note posted to the <a href="http://www.meetup.com/atliphonedev/">Atlanta iPhone Developer Meetup group</a> I ended up trading emails with JD Howard, author of the <a href="http://naughtyjester.com">Naughty Jester</a> blog. JD wanted an iPhone app to help connect with his readers, but he didn&#8217;t have a big budget and he didn&#8217;t have a lot of time. He wanted to &#8220;drive down and knock an app out&#8221; in a day or so.</p>
<p>Never one to pass up a challenge, I told him to come on down. I was careful to set his expectations as low as possible, because one day really isn&#8217;t enough time to do a meaningful application. All I could promise was that at the end we would have something to submit to the iTunes App Store, and he was OK with that.</p>
<p>So at approximately 3:00 PM on Monday (Memorial Day), JD pulled up to my house in Columbia, SC. The trip took him 5 hours, instead of the 3 that he had originally thought. After a brief meet &#038; greet (plus various social networking connections, which I guess are the modern equivalent of <a href="http://en.wikipedia.org/wiki/Visiting_card">calling cards</a>), we sat down to do a quick mockup of his site.</p>
<p>We used a new tool that I really, really like: <a href="http://www.balsamiq.com/products/mockups">Balsamique Markups</a>. It&#8217;s a very nice WYSIWYG tool for laying out web pages, applications, and iPhone apps. For OCD perfectionists (which many developers are), I find the cartoony graphics strangely freeing. It really lets me lay out the gist of something without getting sucked into the minutiae of a full design.</p>
<p>We agreed on a basic application that would:
<ul>
<li>display his blog in a browser control</li>
<li>let the user forward a link to a friend</li>
<li>take the user to a newsletter signup</li>
<li>take the user to feedburner</li>
</ul>
<p>The one rule of iPhone development is that the things you think will be simple will be hard, and the things you think will be hard will be easy. We had a browser window up and running with his blog in it within 30 minutes. But producing a decent-looking home button image took almost an hour.</p>
<p>Possibly the most interesting part of the project was having someone I&#8217;d never met come and crash at my house while developing an application. My mother (who lives with me) was a little leery of the idea at first. &#8220;What if he&#8217;s an axe murderer?&#8221;</p>
<p>After JD and I had been working for a while and I mentioned this to him, he assured her that he was not an axe murderer, which I&#8217;m not sure had the desired effect. I put it to her like this &#8220;It&#8217;s like we&#8217;re running a bed &#038; breakfast, with iPhone development on the side.&#8221; Hmmmm&#8230;.</p>
<p>In any case, working with JD was a real pleasure, and we had some interesting conversations over cigars at the end of the day. Now, let&#8217;s all keep our fingers crossed that Apple will be kind and merciful and approve the app!</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2009/05/30/a-day-with-the-jester/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone ringtone relief.</title>
		<link>http://smeans.com/2008/05/08/iphone-ringtone-relief/</link>
		<comments>http://smeans.com/2008/05/08/iphone-ringtone-relief/#comments</comments>
		<pubDate>Thu, 08 May 2008 16:53:53 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/2008/05/08/iphone-ringtone-relief/</guid>
		<description><![CDATA[I was really starting to get irked at Apple because it seems like they want me to pay $1.00 (ok, $.99) every time I want to turn one of my songs into a ringtone. I&#8217;ve already paid for these songs once and now every time I want to play 18 seconds of it I have [...]]]></description>
			<content:encoded><![CDATA[<p>I was really starting to get irked at Apple because it seems like they want me to pay $1.00 (ok, $.99) every time I want to turn one of my songs into a ringtone. I&#8217;ve already paid for these songs once and now every time I want to play 18 seconds of it I have to pay another $1? Crazy.</p>
<p>This guy is a genius. I just tried this <a href="http://www.edzachary.com/2007/12/make-free-iphone-ringtones-using-itunes.html">Make Free Ringtones</a> tutorial and it worked like a champ. Go Ed Zachary!</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2008/05/08/iphone-ringtone-relief/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WTF, Steve.</title>
		<link>http://smeans.com/2008/03/04/wtf-steve/</link>
		<comments>http://smeans.com/2008/03/04/wtf-steve/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 21:51:24 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/2008/03/04/wtf-steve/</guid>
		<description><![CDATA[So last night I&#8217;m trying to add a number on my iPhone, and all of my contacts disappear! I called the helpful Apple support folks, and they had me resync with my PC and my last backup was restored to the phone. Very disconcerting. I probably lost 20 contacts in the deal.
]]></description>
			<content:encoded><![CDATA[<p>So last night I&#8217;m trying to add a number on my iPhone, and all of my contacts disappear! I called the helpful Apple support folks, and they had me resync with my PC and my last backup was restored to the phone. Very disconcerting. I probably lost 20 contacts in the deal.</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2008/03/04/wtf-steve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s almost time!</title>
		<link>http://smeans.com/2008/02/28/its-almost-time/</link>
		<comments>http://smeans.com/2008/02/28/its-almost-time/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 14:04:16 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/2008/02/28/its-almost-time/</guid>
		<description><![CDATA[Apple is finally ready to tell us about the iPhone SDK. Put it on your calendars, March 6th at 10:00 AM PST. If the thing didn&#8217;t cost $400+ I would have JailBroken it already. Let&#8217;s keep our fingers crossed, and hope that I won&#8217;t have to donate a lung or anything to get my SDK [...]]]></description>
			<content:encoded><![CDATA[<p>Apple is finally <a href="http://informationweek.com/blog/main/archives/2008/02/apple_to_host_i.html">ready to tell us about the iPhone SDK</a>. Put it on your calendars, March 6th at 10:00 AM PST. If the thing didn&#8217;t cost $400+ I would have <a href="http://www.tuaw.com/2007/08/08/iphone-hacking-101-jailbreaking/">JailBroken</a> it already. Let&#8217;s keep our fingers crossed, and hope that I won&#8217;t have to donate a lung or anything to get my SDK license.</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2008/02/28/its-almost-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anticipation&#8230; it&#8217;s making me wait.</title>
		<link>http://smeans.com/2008/02/25/anticipation-its-making-me-wait/</link>
		<comments>http://smeans.com/2008/02/25/anticipation-its-making-me-wait/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 18:37:56 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/2008/02/25/anticipation-its-making-me-wait/</guid>
		<description><![CDATA[Ok, so I&#8217;ve been patiently (at least as far as y&#8217;all know) waiting for the February iPhone SDK release that was promised last October. Well, here it is February 23rd and no SDK. According to the Businessweek blog it may be 1-3 weeks late. I&#8217;ve pretty much exhausted what can/should be done using DHTML and [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so I&#8217;ve been patiently (at least as far as y&#8217;all know) waiting for the <a href="http://www.engadget.com/2007/10/17/apple-planning-iphone-sdk-for-february/">February iPhone SDK release</a> that was promised last October. Well, here it is February 23rd and no SDK. According to the Businessweek blog it may be <a href="http://www.businessweek.com/technology/ByteOfTheApple/blog/archives/2008/02/the_iphone_sdk.html">1-3 weeks late</a>. I&#8217;ve pretty much exhausted what can/should be done using DHTML and Javascript, and I&#8217;m itching to get my hands into the warm, steaming guts of my phone. So to speak.</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2008/02/25/anticipation-its-making-me-wait/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s alive!</title>
		<link>http://smeans.com/2007/10/22/its-alive/</link>
		<comments>http://smeans.com/2007/10/22/its-alive/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 14:20:11 +0000</pubDate>
		<dc:creator>smeans</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smeans.com/2007/10/22/its-alive/</guid>
		<description><![CDATA[My latest creation is ready for late-night TV. Hopefully it&#8217;ll be ready for prime time soon, but one step at a time. For your enjoyment, go play my Internet rock, paper, scissors game. It&#8217;s designed for the iPhone, but you can play it on IE or Safari. Right now you need to have an opponent [...]]]></description>
			<content:encoded><![CDATA[<p>My latest creation is ready for late-night TV. Hopefully it&#8217;ll be ready for prime time soon, but one step at a time. For your enjoyment, go play my Internet <a href="http://www.smbconsultants.com/iphone/rps_game.html">rock, paper, scissors</a> game. It&#8217;s designed for the iPhone, but you can play it on IE or Safari. Right now you need to have an opponent to play, but maybe I&#8217;ll be adding an AI in the near future. Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://smeans.com/2007/10/22/its-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
