<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>iPhone Development Blog</title>
	
	<link>http://iPhoneIncubator.com/blog</link>
	<description>Tips and Tricks for iPhone SDK Developers</description>
	<lastBuildDate>Mon, 01 Mar 2010 01:54:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/IphoneDevelopment" /><feedburner:info uri="iphonedevelopment" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Conferences Of Interest To iPhone Developers</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/UJTRRpUPVQ8/conferences-of-interest-to-iphone-developers</link>
		<comments>http://iPhoneIncubator.com/blog/general/conferences-of-interest-to-iphone-developers#comments</comments>
		<pubDate>Sat, 27 Feb 2010 01:53:41 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[conference]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=440</guid>
		<description><![CDATA[Even though we just received a foot of fresh powder snow, conference season is already here. Are there any conferences you should/must attend as an iPhone developer? The answer will of course depend on your personal situation. I don&#8217;t like to travel much, but I really enjoy meeting fellow developers and to put faces to [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/general/conferences-of-interest-to-iphone-developers">Conferences Of Interest To iPhone Developers</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Even though we just received a foot of fresh powder snow, conference season is already here. Are there any conferences you should/must attend as an iPhone developer? The answer will of course depend on your personal situation. I don&#8217;t like to travel much, but I really enjoy meeting fellow developers and to put faces to blog signatures and Twitter handles. So here are some upcoming conferences where you might meet me.</p>
<h3><a href="http://www.mobileworldcongress.com/">Mobile World Congress</a></h3>
<p>This conference took place in Barcelona February 15-18. We had one of our developers speaking there, and at least one of our clients was there too. This is mainly a business conference and the focus is not on the iPhone. Apple is not one of the exhibitors. Microsoft was there in big force showing off an early build of Windows Phone 7 Series (<a href="http://www.geekculture.com/joyoftech/joyarchives/1355.html">nice name</a>!). Global telecom companies announced a planned Super App Store where the unstated goal is to take away some of the power from Apple. (Good luck with that.)</p>
<h3><a href="http://nsconference.com/">NSConference</a></h3>
<p>Traditionally a Mac developer&#8217;s conference with some of the world&#8217;s best Mac developers as speakers. This year they added a day devoted to iPhone programming. The 2010 conference has already taken place and Jeff LaMarche has a nice <a href="http://iphonedevelopment.blogspot.com/2010/02/nsconference.html">write-up</a>. </p>
<h3><a href="http://www.ctiawireless.com/info/">CTIA Wireless &#8211; March 23-25, 2010 &#8211; Las Vegas, NV</a></h3>
<p>This is the U.S. counterpart to Mobile World Congress. It takes place in Las Vegas every year. Like MWC it&#8217;s primarily a business conference, but with more focus on the U.S. market.</p>
<p>Don&#8217;t expect to learn any new Cocoa Touch skills here. But if you need a tax deductible reason to go to Vegas, this might fit the bill. Or if you just want to speak your mind to the AT&#038;T executives Ralph de la Vega and Randall Stephenson, they&#8217;ll be there.</p>
<h3><a href="http://www.360idev.com/">360|iDev &#8211; April 11-14, 2010 &#8211; San Jose, CA</a></h3>
<p>I was a speaker at 360|iDev in Denver last summer and I really enjoyed the conference. It&#8217;s a small and intimate conference where you really get a chance to interact with both speakers and attendees. Both attendees and speakers were top-notch, and I learned a lot as well as made valuable connections.</p>
<p>The early bird pricing is already sold out. But the regular cost for three jam-packed days of sessions is still very reasonable.</p>
<p>Unfortunately I will probably not be able to attend this conference. I&#8217;ve got a few iPad projects that need to be wrapped up right around that time.</p>
<h3><a href="http://www.voicesthatmatter.com/iphone2010/">Voices That Matter &#8211; iPhone Developer&#8217;s Conference &#8211; April 24-25 &#8211; Seattle, WA</a></h3>
<p>I have not been to this conference before, but the speaker lineup looks really good. The first day has a whole track devoted to UI design. This is something that I&#8217;ve been deeply involved in recently when porting iPhone apps to the iPad. (&#8221;Porting&#8221; is probably the wrong word here. &#8220;Redesigning the user experience from scratch&#8221; is more accurate.) On the second day there are several sessions that I plan to attend: Cocoa Design Patterns, Memory Management, Performance Tuning and Effective Networking. You can&#8217;t learn enough about these topics, and the opportunity to learn from some of the best in the business can&#8217;t be passed up.</p>
<p>Early bird pricing is available through March 12. And if you use the discount code &#8220;PHBLOGS&#8221; you&#8217;ll save an additional $100.</p>
<p>Full disclosure: I&#8217;ve been offered a complimentary ticket to the conference. If my schedule does not allow me to go, I will give the ticket away to a lucky reader here on the blog.</p>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/general/conferences-of-interest-to-iphone-developers">Conferences Of Interest To iPhone Developers</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/UJTRRpUPVQ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/general/conferences-of-interest-to-iphone-developers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/general/conferences-of-interest-to-iphone-developers</feedburner:origLink></item>
		<item>
		<title>Handling the Return Key in a UITextView</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/xLs7bHYng1Q/handling-the-return-key-in-a-uitextview</link>
		<comments>http://iPhoneIncubator.com/blog/windows-views/handling-the-return-key-in-a-uitextview#comments</comments>
		<pubDate>Fri, 19 Feb 2010 07:24:51 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Windows & Views]]></category>
		<category><![CDATA[UITextField]]></category>
		<category><![CDATA[UITextView]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=437</guid>
		<description><![CDATA[In a previous post I presented a framework for creating a data entry screen. That code focused mainly on UITextFields and allowed the user to move to the next field by tapping the Return key on the keyboard.
What if you have one or more UITextViews on your data entry screen because you want the user [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/windows-views/handling-the-return-key-in-a-uitextview">Handling the Return Key in a UITextView</a></p>
]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://iPhoneIncubator.com/blog/windows-views/how-to-create-a-data-entry-screen">previous post</a> I presented a framework for creating a data entry screen. That code focused mainly on UITextFields and allowed the user to move to the next field by tapping the Return key on the keyboard.</p>
<p>What if you have one or more UITextViews on your data entry screen because you want the user to be able to enter multiple lines of text? Well the UITextView handles the Return key internally and adds a new line to the text being entered, just like you would expect when you&#8217;re writing text in a text editor. And there is no equivalent of textFieldShouldReturn for UITextView.</p>
<p>If you don&#8217;t care about newlines in the entered text and you just want to exit the field when the Return key is tapped, then add the following method to the UITextViewDelegate:</p>
<pre name="code" class="c">- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
  BOOL shouldChangeText = YES;

  if ([text isEqualToString:@"\n"]) {
    // Find the next entry field
    BOOL isLastField = YES;
    for (UIView *view in [self entryFields]) {
      if (view.tag == (textView.tag + 1)) {
        [view becomeFirstResponder];
        isLastField = NO;
        break;
      }
    }
    if (isLastField) {
      [textView resignFirstResponder];
    }

    shouldChangeText = NO;
  }

  return shouldChangeText;
} </pre>
<p>The shouldChangeTextInRange method is called after each keystroke is received by the UITextView, but before it&#8217;s shown on screen. If the text is a &#8220;\n&#8221; character (the Return key) then we either set first responder to the next field, or hide the keyboard in the case that this is the last field. (The entryFields method is explained in the <a href="http://iPhoneIncubator.com/blog/windows-views/how-to-create-a-data-entry-screen">previous post</a>.) Return NO if a return character was detected since we don&#8217;t want the new line to show up in the UITextView, otherwise return YES and the text will be processed and shown in the UITextView as normal.</p>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/windows-views/handling-the-return-key-in-a-uitextview">Handling the Return Key in a UITextView</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/xLs7bHYng1Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/windows-views/handling-the-return-key-in-a-uitextview/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/windows-views/handling-the-return-key-in-a-uitextview</feedburner:origLink></item>
		<item>
		<title>Memory Management and nil</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/_FCHEKwp_Dg/memory-management-and-nil</link>
		<comments>http://iPhoneIncubator.com/blog/memory-management/memory-management-and-nil#comments</comments>
		<pubDate>Fri, 12 Feb 2010 22:50:31 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Memory Management]]></category>
		<category><![CDATA[CFRelease]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[retain]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=432</guid>
		<description><![CDATA[It is a good practice to set a variable to nil after you release it:
[myVariable release], myVariable = nil;
If you don&#8217;t do this then you may experience bugs that are difficult to track down. Say that you inadvertently refer to myVariable after it has been released. Sometimes the memory pointed to by myVariable still has [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/memory-management/memory-management-and-nil">Memory Management and nil</a></p>
]]></description>
			<content:encoded><![CDATA[<p>It is a good practice to set a variable to nil after you release it:</p>
<pre name="code" class="c">[myVariable release], myVariable = nil;</pre>
<p>If you don&#8217;t do this then you may experience bugs that are difficult to track down. Say that you inadvertently refer to myVariable after it has been released. Sometimes the memory pointed to by myVariable still has the old content of your object, and your app will run fine. Sometimes that memory location has been overwritten with something else, and you&#8217;ll get an unpredictable result.</p>
<p>One nice characteristic of Objective-C is that you can send messages to nil objects without error. (Unlike Java, for example, where NullPointerException is probably the <a href="http://geekandpoke.typepad.com/geekandpoke/2010/01/pair-programming.html">most common exception</a> thrown.) So if you have set myVaraible to nil and you then try to send a message to it with [myVariable something] then it will not fail. Nothing will happen of course, but at lest nothing will happen every time, which is much easier to track down than indeterministic behavior.</p>
<p>One might argue that sending a message to a nil object is the result of faulty code. Your code should know if an object is valid or nil. But here&#8217;s a simple counter-example:<br />
If your class has properties with a retain declaration, then you should release those properties in the dealloc method. In many cases setting the value of a property to nil is perfectly valid. And thus sending release to that nil property in dealloc should be ok.</p>
<p>Keep in mind that the above conventions apply to Objective-C. If you&#8217;re calling Core Foundation functions you need to be more careful when dealing with nil.</p>
<p>For example, if you call the following function with a nil parameter, it will fail:</p>
<pre name="code" class="c">CFRelease(contactFirstName);</pre>
<p>Before calling CFRelease you need to check the parameter value like this:</p>
<pre name="code" class="c">if (contactFirstName) CFRelease(contactFirstName);</pre>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/memory-management/memory-management-and-nil">Memory Management and nil</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/_FCHEKwp_Dg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/memory-management/memory-management-and-nil/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/memory-management/memory-management-and-nil</feedburner:origLink></item>
		<item>
		<title>Zinio is the #1 News App</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/Govyx8tfgg0/zinio-is-the-1-news-app</link>
		<comments>http://iPhoneIncubator.com/blog/self-promotion/zinio-is-the-1-news-app#comments</comments>
		<pubDate>Thu, 11 Feb 2010 05:11:43 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Self Promotion]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=422</guid>
		<description><![CDATA[Today the Zinio app rocketed up to the #1 slot in the News category for free apps. It is ranked ahead of NYTimes, Yahoo!, NPR and USA Today. Pretty cool.
The app allows you to read magazines on your iPhone. The magazine pages are rendered just like they appear in the dead tree version of the [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/self-promotion/zinio-is-the-1-news-app">Zinio is the #1 News App</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Today the Zinio app rocketed up to the #1 slot in the News category for free apps. It is ranked ahead of NYTimes, Yahoo!, NPR and USA Today. Pretty cool.</p>
<p>The app allows you to read magazines on your iPhone. The magazine pages are rendered just like they appear in the dead tree version of the magazine, or you can select a text mode where you lose the overall layout of the page, but the text fills the screen and is much easier to read.</p>
<p>If you live outside the United States then physical magazine subscriptions from the U.S. are typically <em>very</em> expensive due to the postage. (You used to be able to select surface mail, which was much cheaper. But then it took three months for the magazine to arrive. I always wondered what kind of surface vessel took 3 months to cross the Atlantic to Europe. I guess those ships have been retired because surface mail is no longer an option.) With a digital subscription from Zino you get the bits immediately and for a much more reasonable price. And you can read the magazines on your iPhone, another mobile device, or on your computer.</p>
<p>It&#8217;s a really nice app. <a href="http://itunes.apple.com/us/app/id342582783?mt=8">Check it out</a>.</p>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/self-promotion/zinio-is-the-1-news-app">Zinio is the #1 News App</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/Govyx8tfgg0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/self-promotion/zinio-is-the-1-news-app/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/self-promotion/zinio-is-the-1-news-app</feedburner:origLink></item>
		<item>
		<title>iPad – First Impressions</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/YEG01JN8SxE/ipad-first-impressions</link>
		<comments>http://iPhoneIncubator.com/blog/general/ipad-first-impressions#comments</comments>
		<pubDate>Thu, 28 Jan 2010 05:10:45 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=409</guid>
		<description><![CDATA[After watching the highly anticipated presentation of Apple&#8217;s latest creation, here are my initial impressions from a developer&#8217;s point of view. Apologies in advance for the very long post and the somewhat random order of information. My mind is in hyperdrive thinking about all the new possibilities.
The iPad and the iPhone are very different
The iPad [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/general/ipad-first-impressions">iPad &#8211; First Impressions</a></p>
]]></description>
			<content:encoded><![CDATA[<p>After watching the highly anticipated presentation of Apple&#8217;s latest creation, here are my initial impressions from a developer&#8217;s point of view. Apologies in advance for the very long post and the somewhat random order of information. My mind is in hyperdrive thinking about all the new possibilities.</p>
<h3>The iPad and the iPhone are very different</h3>
<p>The iPad is not portable in the same way that the iPhone and iPod Touch is. You will not pull out the iPad from your back pocket and interact with a 2-minute app while you&#8217;re waiting in line at Starbucks. When thinking about apps for the iPad you have to think about how this device will be used.</p>
<p>The iPad is the new home computer. I see it being shared among members of a family to surf the web, consume media or look up information while watching a show. Or even interacting with the show in real-time. You don&#8217;t walk to another room to &#8220;use the computer&#8221;; it&#8217;s always laying around in your house, ready to be picked up and used where you are. Of course much of this applies to the iPhone as well. But one big difference is that the iPhone is very personal in that the screen is too small to share. The iPad screen seems big enough that you can have shared experiences around it. How about sitting around an iPad and playing a board game, where the computer takes care of the boring parts like keeping score and enforcing the rules?</p>
<p>I can also see a big role for the iPad in schools and educational settings. Schools that today have a computer in the classroom often have it shoved off in a corner or a special computer area, where students go to do &#8220;computer tasks&#8221;. An iPad can be integrated into the classroom and with the teacher-student interactions in a much more natural way. Given Apple&#8217;s long history in the educational market, I&#8217;m a bit surprised there was no mention of this. Maybe they&#8217;ll do a special school related event later with iTextbook and some other features targeted directly at the educational market.</p>
<p>As an app developer you need to realize that the iPad is not an iPhone. The same apps, user scenarios and UI designs that make sense on the iPhone, probably don&#8217;t translate well to the iPad. While there is sure to be an initial flood of iPhone apps &#8220;adapted&#8221; for the iPad, I think that in the long run the really successful iPad apps will be those that really take advantage of the unique characteristics of this device.</p>
<h3>App development</h3>
<p>Apple is really encouraging developers to create universal binaries that will run on all devices and that adapt to the current run-time environment. This has some interesting consequences. On the positive side for developers is that you only have to maintain one build. For customers this approach is also a good thing because they don&#8217;t have to manage different versions of the same app for their array of devices. (You know people will want an iPad in <em>addition</em> to their iPhone.) The economic drawback of this for us developers is that customers who have already purchased your iPhone app will get the iPad upgrade for free.</p>
<p>The bar for apps is going to be much higher on the iPad than the iPhone/iPod Touch. A silly app that just does one simple thing might be a fun gag on a device that you can pull out of your pocket and show your friends. But it&#8217;s going to fall flat on the larger capabilities of the iPad. I think people will expect more. However that doesn&#8217;t mean that app developers won&#8217;t try.</p>
<p>Relying on pixel doubling is not going to cut it. You need to adapt your apps to make use of the larger screen and the new SDK features. This may lead to a natural segregation of apps in the App Store: those apps where the developers actively invest in upgrades, and those that are more or less abandoned. Personally I think that would be a good thing.</p>
<p>Also, the bar for app <em>developers</em> is going to be much higher on the iPad. The learning curve for getting into iPhone development is not that steep. And if you don&#8217;t want to learn Objective-C and Cocoa Touch, then you can outsource development for a reasonable cost. Creating an app that works well on both the iPad and the iPhone is a whole new level. This requires that you have given separation of concerns some serious thought, you have a solid model-view-controller design, etc. Of course you can ignore this advice and forge ahead anyway. But given the conditional coding required to adapt to the two device classes, you are very likely to end up with a big pile of spaghetti code.</p>
<p>The new SDK 3.2 comes with a new NDA, so I can&#8217;t talk about any new features. But at a first glance there is a lot of new stuff to learn. It&#8217;s going to be an intense 60 days to master this new SDK.</p>
<h3>Hardware</h3>
<p>The iPad screen resolution is 1024 x 768. This is a 4:3 aspect ratio, instead of the 3:2 ratio of the iPhone and 16:9 for HDTV sets. So when you play HD content in landscape mode you&#8217;ll get black bars above and below the video. This is something to keep in mind when you create full screen video content for the iPad. The new SDK seems to support video playback that does not take over the entire screen, (finally!), so another option could be to play videos in portrait mode at 768 x 432 (=16:9) and leave the bottom half of the screen for other content. I&#8217;m guessing that the reason for the iPad screen size is that a more elongated device would feel awkward in your hands.</p>
<p>The lack of a camera is disappointing. The focus of the iPad seems to be on media consumption. And there&#8217;s plenty of new territory to explore here to keep us busy for quite some time. I wouldn&#8217;t be surprised if Apple included a camera in a future model. That would make the iPad a real communication and collaboration device. But then again, maybe they&#8217;re reserving that for the iPhone. Remember the fuss around the &#8220;missing&#8221; camera in the latest generation iPod Touch.</p>
<p>The Apple A4 processor is a big deal. Reports from people who got to test the iPad after the presentation say that the iPad is blazing fast. How could you even consider writing a suite of productivity apps for the device if it didn&#8217;t have the necessary horsepower. This bodes really well for app developers. How many times have you been hamstrung by the lack of CPU power in the iPhone? Now whole new horizons open up. And for the 4th generation iPhone coming later in the year, would you be surprised if it was powered by the A4 processor (or a close sibling)?</p>
<p>And since Apple designed the A4, they own it. How many other mobile device manufacturers have their own chip design company in-house? How are they going to compete? The iPhone showed that it&#8217;s all about the software. After almost 3 years competitors have yet to achieve the same usability and supreme user experience as the iPhone. Now add in a super-blazing-fast CPU (that nobody else can get their hands on) and the type of applications you can create on Apple&#8217;s devices just took another huge leap forward.</p>
<h3>Content</h3>
<p>By not including Flash on the iPad (no surprise in that) Apple has put another nail in the coffin of proprietary web technologies. If the iPad is the new home entertainment complement that sits on a kitchen or coffee table, people will avoid web sites that rely on Flash when they search the web for entertainment or information related to the show they&#8217;re watching. Before, you could maybe get away with a web site that did not support mobile devices. But with iPad media consumption devices that number in the millions that is no longer an option.</p>
<p>I&#8217;ve spent a lot of time building ebook and comic book readers for clients. So I can speak with some authority when I say that Apple has spent <em>a lot</em> of time and money building iBook. It is by far the best presentation of traditional books on an electronic device that I&#8217;ve seen. Kindle and Nook look very pale (literally) in comparison. I consider this to be state of the art for Book 1.5. The next step is to take books to another level: Book 2.0. Now that we have the hardware device, it is time to really innovate.</p>
<p>There was no mention of DRM for ebooks, but I assume that Apple will add an additional layer of Fairplay in the EPUB files that you purchase from the iBookstore (as allowed by the EPUB specification). DRM is a huge concern for people who buy a lot of books. Traditional books are compatible with almost all readers (=humans). But when you buy DRM locked ebooks for your Kindle, Nook or Sony device, you are tied to that vendor forever for reading your ebooks. Apple actually has a leg up in this race because there is a Kindle app for the iPhone. So if you have purchased Kindle ebooks in the past you can read them on your iPad. It will be interesting to see if Amazon will create an iPad version of their reader. My guess is that they will. In the long run it has to be more attractive for Amazon to deliver digital content vs. being in the hardware business competing with Apple and Sony.</p>
<p>I&#8217;m a little bit surprised that Apple just focused on traditional books. No mention of magazines, newspapers or textbooks. If the NY Times demo was any indication, then Apple will leave this area to individual publishers. That&#8217;s good for us developers since we get to build apps for each one.</p>
<h3>The new gold rush</h3>
<p>The work Apple has done with creating iWork for the iPad is nothing short of amazing. It&#8217;s hard to tell how <em>useful</em> productivity apps will be on a tablet until you get your hands on a device for a longer period of time. But I&#8217;m disappointed in the price level and the expectations Apple sets by &#8220;giving away&#8221; the iWork apps for $9.99 each. That means we remain stuck in dollar-app mode. (I&#8217;m convinced that Apple really likes dollar-app pricing. More on that in a future blog post.)</p>
<p>At $499 this is a mass market device. Apple will sell a lot of these devices. Dedicated ebook readers like the Kindle and the Nook will have a tough time to justify their existence. Kindle recently announced a SDK for their device, and Nook is built on Android so there&#8217;s a theoretical possibility that they&#8217;ll come out with and SDK too. Meanwhile Apple has over 100k developers with current skills and who are just itching to dig in and build new apps for this device.</p>
<p>I fully agree with Scott Forstall: This is going to be another app developer gold rush. It&#8217;s going to be fun!</p>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/general/ipad-first-impressions">iPad &#8211; First Impressions</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/YEG01JN8SxE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/general/ipad-first-impressions/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/general/ipad-first-impressions</feedburner:origLink></item>
		<item>
		<title>Register URLs in Mobile Safari Dynamically?</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/TRI6BHSQGgE/register-urls-in-mobile-safari-dynamically</link>
		<comments>http://iPhoneIncubator.com/blog/application-preferences/register-urls-in-mobile-safari-dynamically#comments</comments>
		<pubDate>Thu, 14 Jan 2010 07:10:33 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Application Preferences]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=407</guid>
		<description><![CDATA[We all know about the feature to register a custom URL scheme in Info.plist so that when Safari tries to open myapp://some?parameters, your app will be launched. This is very useful, but has it&#8217;s clear limitations.
Today I downloaded Apple&#8217;s new MobileMe Gallery app. At one point the app asked me if I wanted to always [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/application-preferences/register-urls-in-mobile-safari-dynamically">Register URLs in Mobile Safari Dynamically?</a></p>
]]></description>
			<content:encoded><![CDATA[<p>We all know about the feature to register a custom URL scheme in Info.plist so that when Safari tries to open myapp://some?parameters, your app will be launched. This is very useful, but has it&#8217;s clear limitations.</p>
<p>Today I downloaded Apple&#8217;s new MobileMe Gallery app. At one point the app asked me if I wanted to always open MobileMe galleries in the app, instead of showing the web version. When I said &#8220;sure&#8221;, the app launched Safari which greeted me with a page that exclaimed: &#8220;Safari is now configured to use the MobileMe Gallery app.&#8221;</p>
<p>The result of this magic trick is that now when I go to a URL like this: http://gallery.me.com/something/000000, Safari launches the MobileMe Gallery app.</p>
<p>This is different from the custom URL scheme registration we all know and love:</p>
<ul>
<li>A new URL scheme was not registered, it uses http:</li>
<li>Not all URLs starting with http: were taken over, just those associated with MobileMe galleries.</li>
<li>The registration was done dynamically.</li>
<li>I had a say in if I wanted this to happen or not.</li>
<li>It seems to rely on some undocumented feature in Mobile Safari.</li>
</ul>
<p>Why would this be useful in your own apps?</p>
<ul>
<li>On a web page you can create a link that will launch your app on the device if it has been installed. If the app is not installed you can display a web page that entices the user to purchase the app from the App Store.</li>
<li>Say you have a news reader app and you share a link to a news story with a friend via email. If your friend also has the app installed then the news story can display nicely in the app. If not, then Safari will be launched and your friend will see the web version of the news story.</li>
</ul>
<p>With custom URL schemes both of the above scenarios would require two different links and force the user to select the right one based on their situation. Tap the wrong link and you&#8217;ll get an error message. Not pretty.</p>
<p><del datetime="2010-01-28T16:48:29+00:00">Apple, can you please document and expose this functionality to us mere mortals?</del><br />
<strong>Update:</strong> Turns out that this feature does not rely on any private API:s. Read Brian&#8217;s comment below to learn how it&#8217;s done.</p>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/application-preferences/register-urls-in-mobile-safari-dynamically">Register URLs in Mobile Safari Dynamically?</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/TRI6BHSQGgE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/application-preferences/register-urls-in-mobile-safari-dynamically/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/application-preferences/register-urls-in-mobile-safari-dynamically</feedburner:origLink></item>
		<item>
		<title>iPhone Predictions for 2009 – Scorecard</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/CVeUJOadWe8/iphone-predictions-for-2009-scorecard</link>
		<comments>http://iPhoneIncubator.com/blog/general/iphone-predictions-for-2009-scorecard#comments</comments>
		<pubDate>Fri, 01 Jan 2010 04:04:17 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[predictions]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=397</guid>
		<description><![CDATA[All so called analysts should be required to follow up on their predictions and show to the world how accurate they were. Since I don&#8217;t make a living as an analyst, I&#8217;m happy to give you my scorecard for my 2009 predictions.
Push API
The Push API was indeed introduced in 2009. This was an easy prediction.
MobileMe [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/general/iphone-predictions-for-2009-scorecard">iPhone Predictions for 2009 &#8211; Scorecard</a></p>
]]></description>
			<content:encoded><![CDATA[<p>All so called analysts should be required to follow up on their predictions and show to the world how accurate they were. Since I don&#8217;t make a living as an analyst, I&#8217;m happy to give you my scorecard for my <a href="http://iPhoneIncubator.com/blog/general/iphone-predictions-for-2009">2009 predictions</a>.</p>
<h3>Push API</h3>
<p>The Push API was indeed introduced in 2009. This was an easy prediction.</p>
<h3>MobileMe API</h3>
<p>I still think it would make sense for Apple to lock in users closer to the iPhone/Apple/MobileMe world by providing a MobileMe API for the iPhone. But nothing close to this was revealed in 2009. A clearly missed prediction.</p>
<h3>More APIs</h3>
<p>We definitely saw new APIs for the iPhone in 2009, including video recording and iTunes music access. We would all have liked to see more, specifically more access to the phone part of the iPhone, but I&#8217;m still going to claim this as a win.</p>
<h3>No Major Hardware Releases</h3>
<p>The new iPhone and iPod Touch releases were exactly as I described them: incremental improvements.</p>
<h3>Better App Store</h3>
<p>Apple did introduce keywords for the App Store as well as one new top list that isn&#8217;t &#8220;completely tilted towards $0.99 apps&#8221;. But I wouldn&#8217;t call the organization of the App Store &#8220;vastly improved&#8221;. I&#8217;ll claim half a point for this one.</p>
<h3>More App Store Commerce</h3>
<p>&#8220;Apple will introduce more commerce options for the App Store, e.g. subscriptions and separate billing for content.&#8221; I think I hit the bulls-eye on this one! Keep in mind that I made this prediction before In App Purchase was announced even to developers under NDA.</p>
<h3>No Trials</h3>
<p>Time limited trials were not introduced in 2009. With In App Purchase for free apps I think we got a bit closer to trials, but that also came with other headaches. I think most developers would agree that we don&#8217;t yet have a good system for creating trials for iPhone apps.</p>
<h3>Summary</h3>
<p>A total score of 5.5 out of 7. Not too bad. Maybe I should make a living as an analyst. <img src='http://iPhoneIncubator.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Stay tuned for my 2010 predictions coming next week. In the meantime, have a safe and Happy New Year!</p>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/general/iphone-predictions-for-2009-scorecard">iPhone Predictions for 2009 &#8211; Scorecard</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/CVeUJOadWe8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/general/iphone-predictions-for-2009-scorecard/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/general/iphone-predictions-for-2009-scorecard</feedburner:origLink></item>
		<item>
		<title>Do Not Trust The System Clock</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/bEHYiuoalpI/do-not-trust-the-system-clock</link>
		<comments>http://iPhoneIncubator.com/blog/debugging/do-not-trust-the-system-clock#comments</comments>
		<pubDate>Wed, 30 Dec 2009 01:18:29 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[NSDate]]></category>
		<category><![CDATA[timeIntervalSince1970]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=395</guid>
		<description><![CDATA[On the eve of the decade I thought it might be fitting with a cautionary tale about dates and time.
An iPhone app that I was developing had to send data to a server. Among the data items was a timestamp. 
As a best practice during development, the app was tested on several types of devices [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/debugging/do-not-trust-the-system-clock">Do Not Trust The System Clock</a></p>
]]></description>
			<content:encoded><![CDATA[<p>On the eve of the decade I thought it might be fitting with a cautionary tale about dates and time.</p>
<p>An iPhone app that I was developing had to send data to a server. Among the data items was a timestamp. </p>
<p>As a best practice during development, the app was tested on several types of devices with different versions of the OS. It was working great. Except on one particular iPhone.</p>
<p>There was nothing obviously different about this device. Same hardware and same OS as on other devices that were working fine. We restarted the device and reinstalled the app several times. Still it refused to communicate properly with the server.</p>
<p>I&#8217;ll spare you the details of the hours of debugging that followed, and skip directly to the solution&#8230;</p>
<p>Sending timestamps between different systems is a common area of confusion and errors. For this app we had settled on expressing the time in the number of seconds since the <a href="http://en.wikipedia.org/wiki/Unix_time">Unix epoch</a> (January 1, 1970). This value was then to be sent as a URL parameter in a HTTP GET request. This is a convenient way to transmit a timestamp between systems since most programming languages have ways to create a date + time object from this long value.</p>
<p>If you print out [[NSDate date] timeIntervalSince1970] you will see a 10 digit number. And that was what the server was expecting. However, if you look at the number (1262122135 as I&#8217;m writing this) you&#8217;ll notice that it wasn&#8217;t that long ago when the value went from 9 to 10 digits. In fact, this happened on the 9th of September 2001 at 01:46:40 GMT.</p>
<p>Upon further examination the obstinate iPhone that refused to run the app correctly, had its system clock set to early 2001. Thus the server call contained a 9 digit timestamp, instead of the expected 10 digits. This caused the failure when running the app.</p>
<p>The moral of the story: Never trust any data that you do not fully control. User input is a category that is so obvious that most developers always validate it. The system clock can also be set by the user and should therefore not be implicitly trusted.</p>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/debugging/do-not-trust-the-system-clock">Do Not Trust The System Clock</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/bEHYiuoalpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/debugging/do-not-trust-the-system-clock/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/debugging/do-not-trust-the-system-clock</feedburner:origLink></item>
		<item>
		<title>Google Analytics for iPhone Apps</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/T9FeO4ypOWU/google-analytics-for-iphone-apps</link>
		<comments>http://iPhoneIncubator.com/blog/general/google-analytics-for-iphone-apps#comments</comments>
		<pubDate>Sat, 19 Dec 2009 01:37:12 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Analytics]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=391</guid>
		<description><![CDATA[Google Analytics is a powerful web analytics solution used by thousands of web sites. Like most Google products it&#8217;s free for most users.
Earlier I had toyed with the idea of adding a small UIWebView to each screen in an iPhone app to make use of Google Analytics. Since that would have been a kludge, I [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/general/google-analytics-for-iphone-apps">Google Analytics for iPhone Apps</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://analytics.google.com">Google Analytics</a> is a powerful web analytics solution used by thousands of web sites. Like most Google products it&#8217;s free for most users.</p>
<p>Earlier I had toyed with the idea of adding a small UIWebView to each screen in an iPhone app to make use of Google Analytics. Since that would have been a <a href="http://en.wikipedia.org/wiki/Kludge">kludge</a>, I was happy to see that Google has <a href="http://analytics.blogspot.com/2009/11/new-feature-spotlight-google-analytics.html">introduced</a> a native iPhone library that interfaces with Google Analytics.</p>
<p>Why would you choose Google Analytics over the many existing analytics solutions for the iPhone, <a href="http://www.pinchmedia.com/">Pinch Media</a>, <a href="http://medialets.com/publishers/medialytics.php/">Medialets</a>, <a href="http://www.mobclix.com/developer/analytics">Mobclix</a>, et. al?</p>
<ul>
<li>Google Analytics tracks user behavior, whereas most other services just track number of users with a particular attribute or who have done a particular action.</li>
<li>Google Analytics lets you slice and dice data in a seemingly infinite number of ways.</li>
<li>If you&#8217;re not using Location Services in your app to report the location of the user, then the analytics tool has to rely on IP address lookup for the location. Google has a much better database for this. (Note that determining a location by IP address is reasonably accurate when users are on WiFi, but all bets are off when users are on a mobile network.)</li>
<li></li>
<li></li>
</ul>
<p>There are some drawbacks with the current version of Google Analytics:</p>
<ul>
<li>The current version is 0.7 which means that there are some rough edges and bugs.</li>
<li>The simulator is identified as an iPhone device is the stats. This is not a big deal since the number of users on the simulator (i.e. you) should be dwarfed by the number of actual customers.</li>
<li>Another minor issue is that all devices are reported as supporting Java. <img src='http://iPhoneIncubator.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>The OS version is not reported anywhere.</li>
<li>It&#8217;s not possible to tell Google Analytics the exact location of the user, should you know that from Location Services.</li>
<li>It&#8217;s not possible to create custom segmentations. This is a really powerful feature of GA, and it would be nice if that was exposed through the iPhone library.</li>
<li>If you&#8217;re not familiar with Google Analytics, it can be a daunting experience to explore and understand all the stats reported.</li>
</ul>
<p>So which solution should you choose? My recommendation is both. I use both Google Analytics and Pinch Media, and I find that they complement each other well.</p>
<p>Adding Google Analytics to your iPhone app is easy.</p>
<ol>
<li>Download the library <a href="http://code.google.com/apis/analytics/docs/tracking/mobileAppsTracking.html">here</a>. See the very bottom of the page for the download link. (There used to be a regular <a href="http://code.google.com/p/gaformobileapps/">Google Code project</a> for this library, but that mysteriously disappeared.)</li>
<li>Add the libGoogleAnalytics.a static library and the GANTracker.h header file to your project.</li>
<li>Add the framworks required by Google Analytics. If you already have another analytics library installed, then you probably already have the necessary frameworks added.</li>
<li>Add a few lines of code to initialize the tracking and then a few lines where you want to track a page view or an event. See the included sample project for examples.</li>
</ol>
<p>If you&#8217;re going to use more than one analytics service, you should consolidate the calls to each service in one place. Below are two methods that I use for Google Analytics and Pinch Media. Note that since Pinch Media doesn&#8217;t have any concept of page views, that method only calls Google Analytics, whereas both services track events.</p>
<pre name="code" class="c">- (void)trackPageview:(NSString *)pageName {
  // Google Analytics
  NSError *gaError;
  if (![[GANTracker sharedTracker] trackPageview:pageName withError:&#038;gaError]) {
    NSLog(@"GA trackPageView Error: %@", [gaError localizedDescription]);
  }
}

- (void)trackEvent:(NSString *)category
            action:(NSString *)action
             label:(NSString *)label
             value:(NSInteger)value {

  // Google Analytics
  NSError *gaError;
  if (![[GANTracker sharedTracker] trackEvent:category
                                       action:action
                                        label:label
                                        value:value
                                    withError:&#038;gaError]) {
    NSLog(@"GA trackEvent Error: %@", [gaError localizedDescription]);
  }

  // PinchMedia
  NSString *subBeaconName = [NSString stringWithFormat:@"%@ - %@ - %@", category, action, (label ? label : @"")];
  @try {
    [[Beacon shared] startSubBeaconWithName:subBeaconName timeSession:NO];
  } @catch (NSException * e) {
    NSLog(@"Error starting SubBeacon %@ : %@", subBeaconName, [e description]);
  }
}</pre>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/general/google-analytics-for-iphone-apps">Google Analytics for iPhone Apps</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/T9FeO4ypOWU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/general/google-analytics-for-iphone-apps/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/general/google-analytics-for-iphone-apps</feedburner:origLink></item>
		<item>
		<title>Looking for a PCI Compliance Testing Consultant With iPhone Experience</title>
		<link>http://feedproxy.google.com/~r/IphoneDevelopment/~3/mRbgNd-0ncg/looking-for-a-pci-compliance-testing-consultant-with-iphone-experience</link>
		<comments>http://iPhoneIncubator.com/blog/security/looking-for-a-pci-compliance-testing-consultant-with-iphone-experience#comments</comments>
		<pubDate>Tue, 15 Dec 2009 21:35:57 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://iPhoneIncubator.com/blog/?p=386</guid>
		<description><![CDATA[An iPhone application that we&#8217;re developing for a client handles credit card information on the device. Therefore we need to have the app tested and certified against the Payment Application Data Security Standard (PA-DSS).
Unfortunately the consultant we had lined up for the testing self-destructed.
Do you know anyone in this business with experience testing iPhone apps? [...]<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/security/looking-for-a-pci-compliance-testing-consultant-with-iphone-experience">Looking for a PCI Compliance Testing Consultant With iPhone Experience</a></p>
]]></description>
			<content:encoded><![CDATA[<p>An iPhone application that we&#8217;re developing for a client handles credit card information on the device. Therefore we need to have the app tested and certified against the Payment Application Data Security Standard (<a href="http://en.wikipedia.org/wiki/PA-DSS">PA-DSS</a>).</p>
<p>Unfortunately the consultant we had lined up for the testing self-destructed.</p>
<p>Do you know anyone in this business with experience testing iPhone apps? Are you a PCI consultant looking for a gig? Please let me know in the comments below. Thanks!</p>
<p>Post from <a href="http://iPhoneIncubator.com/blog">iPhone Development Blog</a> Copyright &copy; 2009 Nick Dalton - <a href="http://iPhoneIncubator.com/blog/portfolio">iPhone Developer</a><br/><br/><a href="http://iPhoneIncubator.com/blog/security/looking-for-a-pci-compliance-testing-consultant-with-iphone-experience">Looking for a PCI Compliance Testing Consultant With iPhone Experience</a></p>
<img src="http://feeds.feedburner.com/~r/IphoneDevelopment/~4/mRbgNd-0ncg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://iPhoneIncubator.com/blog/security/looking-for-a-pci-compliance-testing-consultant-with-iphone-experience/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://iPhoneIncubator.com/blog/security/looking-for-a-pci-compliance-testing-consultant-with-iphone-experience</feedburner:origLink></item>
	</channel>
</rss>
