<?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>cSquirrel</title>
	<atom:link href="http://csquirrel.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://csquirrel.com</link>
	<description></description>
	<lastBuildDate>Sun, 14 Feb 2010 18:04:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>NSConference 2010: Money well spent</title>
		<link>http://csquirrel.com/nsconference-2010-money-well-spent/</link>
		<comments>http://csquirrel.com/nsconference-2010-money-well-spent/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 00:22:42 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://csquirrel.com/?p=499</guid>
		<description><![CDATA[What you get when you put together a bunch of Mac/iPhone nerds from all over the world in place? Great event known as &#8220;NSConference&#8221;

To me it was a great introduction into the world of Mac and iPhone development. Being a newbie to the platform I doubted I can blend in the crowd of people with [...]]]></description>
			<content:encoded><![CDATA[<p>What you get when you put together a bunch of Mac/iPhone nerds from all over the world in place? Great event known as &#8220;NSConference&#8221;<br />
<!-more--><br />
To me it was a great introduction into the world of Mac and iPhone development. Being a newbie to the platform I doubted I can blend in the crowd of people with much more experience than me. That wasn&#8217;t a problem at all. There was no silly question to ask, and no reason to be shy and everyone was very chatty and friendly as could. For me it was great opportunity to meet the community, attach faces to twitter handles and have couple of beers. Not to mention great speakers and the technical presentations. </p>
<p>The fact that NSConference was divided into Mac (first two days) and iPhone (third day) was not a best idea. Plenty of people have chosen the latter only because they were scared the former is too much &#8220;mac only&#8221;. It wasn&#8217;t. My advice to Mac Developer Network for next year: Don&#8217;t repeat this mistake. Let the people to choose session they have interest in. I have found all the sessions from both parts very valuable, although lots of topics were outside of my area of interest. I still dig through records discovering things I may need and the community driven notes  (kudos to authors of great <a href="http://www.subethaedit.net/">SubEthaEdit</a>) created by attendees over network during the sessions are great. Not only helped me to recap all the details but also brought a whole new point of view on the topics:<br />
<img src="http://csquirrel.com/wp-content/uploads/x2_9c19b9-copy.jpg"/><br />
The only regret I have is that I decided to drive from home everyday. It appears I missed a lot of <a href="http://twitter.com/#search?q=lickahoctor" target="_new">fun</a> not staying in the hotel overnight :) </p>
<p>Following is a list of detailed write-ups  and great photos I know. If you want to contribute to this list, please do so in the comments. I will update accordingly.</p>
<ul>
<li>Alex Blewitt (<a href="http://twitter.com/alblue" target="_new">@alblue</a>) described all three days in details: <a href="http://alblue.blogspot.com/2010/02/nsconference-2010-day-1.html" target="_new"/>day 1</a>, <a href="http://alblue.blogspot.com/2010/02/nsconference-2010-day-2.html" target="_new"/>day 2</a>, <a href="http://alblue.blogspot.com/2010/02/nsconference-2010-day-3.html" target="_new"/>day 3</a></li>
<li>Alexander Repty (<a href="http://twitter.com/arepty" target="_new">@arepty</a>) created a great <a href="http://alexrepty.com/archives/179-NSConference-2010-UK.html" target="_new">blog entry</a> and did nice <a href="http://www.flickr.com/photos/alexrepty/sets/72157623253034969/" target="_new">photos</a>
<li>Stefaan Lesage (<a href="http://twitter.com/StefaanLesage" target="_new">@StefaanLesage</a>) shared thoughts on <a href="http://cocoaheads.be/wordpress/2010/02/nsconference-2010-workshop-the-world-according-to-gemmell/" target="_new">workshop</a> and all days of the conference: <a href="http://cocoaheads.be/wordpress/2010/02/nsconference-2010-day-1/" target="_new">day 1</a>, <a href="http://cocoaheads.be/wordpress/2010/02/nsconference-2010-day-2/" target="_new">day 2</a>, <a href="http://cocoaheads.be/wordpress/2010/02/nsconference-day-3-iphone-conference/" target="_new">day 3</a></li>
<li>Michael Dales (<a href="http://twitter.com/mdales" target="_new">@mdales</a>) shot plenty of <a href="http://mdales.smugmug.com/Events/NSConference-2010/11142583_pT9m7#780892569_ASVZb" target="_new">great photos</a> with his camera.
<li>Alex Rozanski (<a href="http://twitter.com/Perspx" target="_new">@perspx</a>) describes <a href="http://perspx.com/blog/archives/1193/the-world-according-to-gemmell/" target="_new">workshop</a>, <a href="http://perspx.com/blog/archives/1210/nsconference-2010-mac-developer-conference-day-1/" target="_new">day 1</a> and <a href="http://perspx.com/blog/archives/1253/nsconf-2010-mac-developer-conference-day-2/" target="_new">day 2</a></li>
<li>Sven-S. Porst covers Mac part of the conference <a href="http://earthlingsoft.net/ssp/blog/2010/02/nsconference_day_1" target="_new">day 1</a> and <a href="http://earthlingsoft.net/ssp/blog/2010/02/nsconference_day_2" target="_new">day 1</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/nsconference-2010-money-well-spent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New GOOM Radio</title>
		<link>http://csquirrel.com/goomradio/</link>
		<comments>http://csquirrel.com/goomradio/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 23:06:17 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[entertainment]]></category>

		<guid isPermaLink="false">http://csquirrel.com/wp/?p=257</guid>
		<description><![CDATA[The internet is full of the radio stations but many of them are nothing but poor quality sound sources. With New GOOM Radio you wan&#8217;t feel robbed. It&#8217;s free and it&#8217;s high quality selection of the best music backed by goomradio.com




Pick a radio station from best of the best
Browse the cover flow view presenting you [...]]]></description>
			<content:encoded><![CDATA[<p>The internet is full of the radio stations but many of them are nothing but poor quality sound sources. With New GOOM Radio you wan&#8217;t feel robbed. It&#8217;s free and it&#8217;s high quality selection of the best music backed by <a href="http://goomradio.com" target="_new">goomradio.com</a></p>
<hr size="1" noshade="noshade" color="#1e2220" />
<table width="100%" border="0">
<tr>
<td valign="top">
<h2>Pick a radio station from best of the best</h2>
<p>Browse the cover flow view presenting you variety of music styles.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/goomradio_full1.jpg" rel="prettyPhoto[257]" title="Browse the cover flow view presenting you variety of music styles."><img src="http://csquirrel.com/wp-content/uploads/2010/01/goomradio_mini1.png" width="120" height="120" border="0"/></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/goomradio_full2.jpg" rel="prettyPhoto[257]" title="Built-in news reader powered by GOOM Radio RSS service will bring you the latest news. Just click'n'read."><img src="http://csquirrel.com/wp-content/uploads/2010/01/goomradio_mini2.png" width="120" height="120" border="0" /></a></td>
<td>
<h2>Read the latest news</h2>
<p>Built-in news reader powered by GOOM Radio RSS service will bring you the latest news. Just click&#8217;n'read.</p>
</td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td>
<h2>Now playing what?</h2>
<p>No need to wonder. Current song details are displayed on the top of the player together with messages fetched from associated Twitter account.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/goomradio_full3.jpg" rel="prettyPhoto[257]" title="No need to wonder, Current song details are displayed on the top of the player together with messages fetched from associated Twitter account."><img src="http://csquirrel.com/wp-content/uploads/2010/01/goomradio_mini3.png" width="120" height="120" border="0" /></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/goomradio_full4.jpg" rel="prettyPhoto[257]" title=Facebook, Twitter, Email - choose one and share the radio with the rest of the world. If you really like it there's favourites list waiting to be filled up"><img src="http://csquirrel.com/wp-content/uploads/2010/01/goomradio_mini4.png" width="120" height="120" border="0" /></a></td>
<td>
<h2>Care to share?</h2>
<p>Facebook, Twitter, Email &#8211; choose and share the radio with the rest of the world. If you really like it there&#8217;s favourites list waiting to be filled up.</p>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/goomradio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TapFighter</title>
		<link>http://csquirrel.com/tap-fighter/</link>
		<comments>http://csquirrel.com/tap-fighter/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 22:47:57 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[entertainment]]></category>

		<guid isPermaLink="false">http://csquirrel.com/wp/?p=253</guid>
		<description><![CDATA[Simple way to relax yourself on a boring meeting, bus stop or anywhere else. This brilliant game connects Chess and Street Fighter. Sound impossible? It isn&#8217;t at all.
Pick your fighter, pick your moves and send the challenge to a friend. He/She will pick a fighter and moves and the match will happen in turn based [...]]]></description>
			<content:encoded><![CDATA[<p>Simple way to relax yourself on a boring meeting, bus stop or anywhere else. This brilliant game connects Chess and Street Fighter. Sound impossible? It isn&#8217;t at all.</p>
<p>Pick your fighter, pick your moves and send the challenge to a friend. He/She will pick a fighter and moves and the match will happen in turn based style. If you can predict opponent&#8217;s moves you can win.  </p>
<p><center><a href="http://eepurl.com/gPNr" target="_new"><img src="http://csquirrel.com/wp-content/uploads/tapfighter-sigup.jpg" border="0"/></a></center></p>
<hr size="1" noshade="noshade" color="#1e2220" />
<table width="100%" border="0">
<tr>
<td valign="top">
<h2>A quickie against machine?</h2>
<p>You can play a series of fast games against your device. It&#8217;s just right if you have few spare minutes.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/tapfighter_full1.jpg" rel="prettyPhoto[253]" title="You can play a series of fast games against your device. It's just right if you have few spare minutes."><img src="http://csquirrel.com/wp-content/uploads/tapfighter_mini1.png" width="120" height="120" border="0"/></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td><a href="http://csquirrel.com/wp-content/uploads/tapfighter_full2.jpg" rel="prettyPhoto[253]" title=t's your choice. Select a fighter that matches you the best. The attack/defense moves palette if crafted in a such way that everyone have equal change to win... or loose :)"><img src="http://csquirrel.com/wp-content/uploads/tapfighter_mini2.png" width="120" height="120" border="0" /></a></td>
<td>
<h2>Always wanted to be a girl?</h2>
<p>It&#8217;s your choice. Select a fighter that matches you the best. The attack/defense moves palette if crafted in a such way that everyone have equal change to win&#8230; or loose :) </p>
</td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td>
<h2>Eye candies</h2>
<p>Detailed and high quality animation will please your eyes. The sound will take care of your ears.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/tapfighter_full3.jpg" rel="prettyPhoto[253]" title="Detailed and high quality animation will please your eyes. The sound will take care of your ears."><img src="http://csquirrel.com/wp-content/uploads/tapfighter_mini3.png" width="120" height="120" border="0" /></a></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/tap-fighter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gastronauci</title>
		<link>http://csquirrel.com/gastronauci/</link>
		<comments>http://csquirrel.com/gastronauci/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 13:22:22 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://csquirrel.com/wp/?p=211</guid>
		<description><![CDATA[Together with gastronauci.pl and the macoscope.net team we work on soon to be released mobile application with access to 20000 reviews for over 8000 restaurants in more than 1000 cities across Poland. Whether you want to have a posh dinner or a quick lunch Gastronauci is to help.




Great places are easy to find.
Eat where the [...]]]></description>
			<content:encoded><![CDATA[<p>Together with <a href="http://gastronauci.pl" target="_blank">gastronauci.pl</a> and the <a href="http://macoscope.net" target="_blank">macoscope.net</a> team we work on soon to be released mobile application with access to 20000 reviews for over 8000 restaurants in more than 1000 cities across Poland. Whether you want to have a posh dinner or a quick lunch Gastronauci is to help.</p>
<hr size="1" noshade="noshade" color="#1e2220" />
<table width="100%" border="0">
<tr>
<td>
<h2>Great places are easy to find.</h2>
<p>Eat where the locals do. Don&#8217;t waste your time in an overpriced restaurant when the best place may be just around the corner. Easy search will help you.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/gastronauci_full1.jpg" rel="prettyPhoto[211]" title="Eat where the locals do. Don't waste your time in an overpriced restaurant when the best place may be just around the corner. Easy search will help you."><img src="http://csquirrel.com/wp-content/uploads/2010/01/gastronauci_mini1.png" width="120" height="120" border="0" /></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/gastronauci_full2.jpg" rel="prettyPhoto[211]" title="You say what's your favourite cuisine and we give you a list of places -  simple as that. Thanks to the tons of reviews we are sure there is something waiting for you."><img src="http://csquirrel.com/wp-content/uploads/2010/01/gastronauci_mini2.png" width="120" height="120" border="0" /></a></td>
<td>
<h2>What fancies you the most?</h2>
<p>You say what&#8217;s your favourite cuisine and we give you a list of places &#8211;  simple as that. Thanks to the tons of reviews we are sure there is something waiting for you.</p>
</td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td>
<h2>Need an idea for the evening?</h2>
<p>Get inspired with others comments, because here everyone&#8217;s your food mate. Easy access to latest reviews is a blessing when you&#8217;re short on time.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/gastronauci_full3.jpg" rel="prettyPhoto[211]"  title="Get inspired with others comments, because here everyone's your food mate. Easy access to latest reviews is a blessing when you're short on time."><img src="http://csquirrel.com/wp-content/uploads/2010/01/gastronauci_mini3.png" width="120" height="120" border="0" /></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td>
<ul>
<li>
<p>search with free text location</p>
</li>
<li>
<p>search with GPS location</p>
</li>
<li>
<p>organise favourites collection</p>
</li>
</ul>
</td>
<td>
<ul>
<li>
<p>read reviews and check notes</p>
</li>
<li>
<p>browse your foodies</p>
</li>
<li>
<p>read latest reviews</p>
</li>
</ul>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/gastronauci/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calineczka</title>
		<link>http://csquirrel.com/calineczka/</link>
		<comments>http://csquirrel.com/calineczka/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 04:23:18 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://csquirrel.com/wp/?p=169</guid>
		<description><![CDATA[This nice application will be serving you as a best gateway to the world of microblogging, connecting you with the community gathered around Blip.pl.
Everything you may ever need to share your life on-the-go is a tap of a finger away from you. Send, receive, comment and share photos and much more! 




Shoot and send photos [...]]]></description>
			<content:encoded><![CDATA[<p>This nice application will be serving you as a best gateway to the world of microblogging, connecting you with the community gathered around <a href="http://www.blip.pl" target="_blank">Blip.pl</a>.<br />
Everything you may ever need to share your life on-the-go is a tap of a finger away from you. Send, receive, comment and share photos and much more! </p>
<hr size="1" noshade="noshade" color="#1e2220" />
<table width="100%" border="0">
<tr>
<td>
<h2>Shoot and send photos wherever you are</h2>
<p>Either use the built-in camera or pick a picture from the library you always carry with you. Whichever you choose you may be sure the picture will be shared with your followers. </p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_full1.png" rel="prettyPhoto[169]" title="Either use the built-in camera or pick a picture from the library you always carry with you. Whichever you choose you may be sure the picture will be shared with your followers."><img src="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_mini1.png" width="120" height="120" border="0"/></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_full2.png" rel="prettyPhoto[169]" title="Wherever you are, whoever you are… as long as you have internet connection you will be able to read the latest out-and-abouts from all your friends. That's just for the starters… "><img src="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_mini2.png" width="120" height="120" border="0" /></a></td>
<td>
<h2>Access the timeline anytime you want</h2>
<p>Wherever you are, whoever you are… as long as you have internet connection you will be able to read the latest out and about from all your friends. That&#8217;s just for the starters… </p>
</td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td>
<h2>Who&#8217;s that?</h2>
<p>Wonder no more… learn about the people you get messages from. All the information presented in a convenient way. Tap, tap and you have access to his/her dashboard and all the followers and followed people. No mystery here.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_full3.png" rel="prettyPhoto[169]" title="Wonder no more… learn about the people you get messages from. All the information presented in a conveinient way. Tap, tap and you have access to his/her dashboard and all the followers and followed people. No mystery here."><img src="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_mini3.png" width="120" height="120" border="0" /></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_full4.png" rel="prettyPhoto[169]" title="You will never get bored, thanks to the list of public messages from everyone. That's right… everyone's voice in one place. Are you buzz freak tough enough to handle the crowd's voice?  "><img src="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_mini4.png" width="120" height="120" border="0" /></a></td>
<td>
<h2>Are you crazy about buzz?</h2>
<p>You will never get bored, thanks to the list of public messages from everyone. That&#8217;s right… everyone&#8217;s voice in one place. Are you buzz freak tough enough to handle the crowd&#8217;s voice?  </p>
</td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td>
<h2>Where are my mates?</h2>
<p>List of your friends will help you in many ways. Starting with point and tap access to the details through the list of their messages to the writing aid &#8211; it&#8217;s all designed to serve youb the best.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_full5.png" rel="prettyPhoto[169]"  title="List of your friends will help you in many ways. Starting with point and tap access to the details through the list of their messages to the writing aid - it's all designed to serve youb the best."><img src="http://csquirrel.com/wp-content/uploads/2010/01/calineczka_mini5.png" width="120" height="120" border="0" /></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td valign="top">
<ul>
<li>
<p>Landscape keyboard</p>
</li>
<li>
<p>Browse tagged messages</p>
</li>
<li>
<p>Add/remove followed people</p>
</li>
</ul>
</td>
<td valign="top">
<ul>
<li>
<p>Autorefresh: Just sit and watch.</p>
</li>
<li>
<p>Edit photos: crop, scale, improve.</p>
</li>
<li>
<p>Save photos to your library.</p>
</li>
</ul>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/calineczka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CARtoteka</title>
		<link>http://csquirrel.com/cartoteka/</link>
		<comments>http://csquirrel.com/cartoteka/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 04:15:47 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://csquirrel.com/wp/?p=166</guid>
		<description><![CDATA[Did your car ever let you down? A garage turned to be a scam? Repair cost you a fortune? Never worry again. CARtoteka will help you finding the best  pick in your area.
This  mobile application powered by the community is the best tool you can  have to find and organise your driver&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Did your car ever let you down? A garage turned to be a scam? Repair cost you a fortune? Never worry again. CARtoteka will help you finding the best  pick in your area.</p>
<p>This  mobile application powered by the community is the best tool you can  have to find and organise your driver&#8217;s life. Find a garage, read  reviews, access details, review locations on the map… and this is only  the basics.</p>
<hr size="1" noshade="noshade" color="#1e2220" />
<table width="100%" border="0">
<tr>
<td>
<h2>New in town?</h2>
<p>Just passing through? That doesn&#8217;t mean you can&#8217;t have the best inside view on the local market. Intuitive search interface will lead you to a list of the best of the best garages in the area.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/cartoteka_full1.png" rel="prettyPhoto[166]" title="Or maybe just  passing through? That doesn't mean you can't have the best inside view  on the local garages market. Intuitive search interface will lead you  to the list of best of the best in the local area."><img src="http://csquirrel.com/wp-content/uploads/2010/01/cartoteka_mini1.png" width="120" height="120" border="0" /></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/cartoteka_full2.png" rel="prettyPhoto[166]" title="Don't be afraid, just check the reviews from other people. They know what they say, it's their own genuine experience speaking."><img src="http://csquirrel.com/wp-content/uploads/2010/01/cartoteka_mini2.png" width="120" height="120" border="0" /></a></td>
<td>
<h2>Should I leave my car there?</h2>
<p>Don&#8217;t be afraid, just check the reviews from other people. They know what they say, it&#8217;s their own genuine experience speaking.</p>
</td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td>
<h2>The favourtites collection</h2>
<p>Sure nobody  likes to fix car. But it&#8217;s a good idea to visit a trustworthy garage  from time to time, just to check if your beast is in it&#8217;s best shape;)  Favourites collection helps you to keep the best garages close to you  and contact them very quickly.</p>
</td>
<td><a href="http://csquirrel.com/wp-content/uploads/2010/01/cartoteka_full3.png" rel="prettyPhoto[166]"  title="Sure nobody  likes to fix car. But it's a good idea to visit a trustworthy garage  from time to time, just to check if your beast is in it's best shape;)  Favourites collection helps you to keep the best garages close to you  and contact them very quickly."><img src="http://csquirrel.com/wp-content/uploads/2010/01/cartoteka_mini3.png" width="120" height="120" border="0" /></a></td>
</tr>
</table>
<hr  size="1" noshade="noshade" color="#1e2220"/>
<table width="100%" border="0">
<tr>
<td align="top">
<ul>
<li>search with free text location</li>
<li>search with GPS location</li>
<li>organise favourites collection</li>
</ul>
</td>
<td valign="top">
<ul>
<li>read reviews and check notes</li>
<li>send contact emails</li>
<li>share the best picks with others</li>
</ul>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/cartoteka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In-App Purchase: Programming Overview</title>
		<link>http://csquirrel.com/in-app-purchase-programming-overview/</link>
		<comments>http://csquirrel.com/in-app-purchase-programming-overview/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 00:55:35 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://csquirrel.com/?p=386</guid>
		<description><![CDATA[In-App purchase is a big thing for all the iPhone developers. Not only it helps to tease users to try and buy but also can help to reduce piracy. This is why you should consider it in your next application.

Outline
This post is continuation of In-App Purchase: Quick Overview. This part focus on programming details. The [...]]]></description>
			<content:encoded><![CDATA[<p>In-App purchase is a big thing for all the iPhone developers. Not only it helps to tease users to try and buy but also can help to reduce piracy. This is why you should consider it in your next application.<br />
<span id="more-386"></span></p>
<h2>Outline</h2>
<p>This post is continuation of <a href="http://csquirrel.com/in-app-purchase/" target="_new">In-App Purchase: Quick Overview</a>. This part focus on programming details. The outline of the steps to create and sell products is:</p>
<ul>
<li>create a test user in iTunes Connect Portal,</li>
<li>define the application in the Developer Portal and enable in-app purchases,</li>
<li>register new application in iTunes Connect Portal and a product (products) for it,</li>
<li>develop the store within your application.</li>
</ul>
<h2>Create a test user in iTunes Connect Portal</h2>
<p>Go to iTunes Connect Portal, (https://itunesconnect.apple.com), and click the option “Manage Users”, then choose “In App Purchase Test User” option and add a new User. Following screen shots will leave no doubts</p>
<hr />
<table>
<tbody>
<tr>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/test_user-step1.jpg" rel="prettyPhoto[386]"><img src="http://csquirrel.com/wp-content/uploads/test_user-step1-thumbnail.jpg" border="0" alt="" width="110" height="125" /></a></td>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/test_user-step2.jpg" rel="prettyPhoto[386]"><img src="http://csquirrel.com/wp-content/uploads/test_user-step2-thumbnail.jpg" border="0" alt="" width="110" height="125" /></a></td>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/test_user-step2a.jpg" rel="prettyPhoto[386]"><img src="http://csquirrel.com/wp-content/uploads/test_user-step2a-thumbnail.jpg" border="0" alt="" width="110" height="125" /></a></td>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/test_user-step3.jpg" rel="prettyPhoto[386]"><img src="http://csquirrel.com/wp-content/uploads/test_user-step3-thumbnail.jpg" border="0" alt="" width="110" height="125" /></a></td>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/test_user-step4.jpg" rel="prettyPhoto[386]"><img src="http://csquirrel.com/wp-content/uploads/test_user-step4-thumbnail.jpg" border="0" alt="" width="110" height="125" /></a></td>
</tr>
</tbody>
</table>
<hr />
<h2>Define the application in the Developer Portal and enable in-app purchases.</h2>
<p>Go to Developer Program Portal (http://developer.apple.com) and select “App IDs” section. The next step will be create a new App ID. Select the top right button “New App ID”. In bundle identifier I recommend to use a string like this, “com.yourcompany.appname”.</p>
<p>Developer Program Portal -&gt; App IDs -&gt; New App ID.</p>
<h2>3.- Create the new App on in iTunes Connect Portal, and Register a product for this App.</h2>
<p>Now we create the app on iTunes Connect. Again go to iTunes Connect Portal and select “manage your applications”. On left top you can see the “add new application” button, click it, and follow the steps. On Pricing step, it’s very important that you select a payment application (Not free), cause the app purchases are only available on this kind of App.</p>
<p>iTunes Connect -&gt; Manage your Applications -&gt; Add new Application</p>
<p>Once the App has been created, you can see it on “Manage your applications”. To add In-app purchase, select the button “Manage in-app purchase”. In this page, you can create your app purchases using the top left button, “Create New”.</p>
<p>iTunes Connect -&gt; Manage your Applications -&gt; Manage in-app purchase.</p>
<p>* If your application is free, you can’t see this option</p>
<h2>4.- Develop the store in your App.</h2>
<p>This is the final step to use store kit. First of all it’s very important decide your application store model. Depending on how many items your store offers and how often you add new items, you may want to use one of two basic models: self-contained or downloadable content. In this tutorial we use a self-contained model.</p>
<p>In XCode, when you set up the project, make sure to link to StoreKit.framework.</p>
<p>Store Kit does not allow your application to patch itself or download additional code. For this the new feature must already exist in your application waiting to be unlocked</p>
<h2>4.1.- Get the in-app purchase.</h2>
<p>If you want to check the in-app purchase on your iphone app.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://csquirrel.com/wp-content/plugins/wp-codebox/wp-codebox.php?p=386&amp;download=DummyView.h">DummyView.h</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3866"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p386code6"><pre class="objc" style="font-family:monospace;"><span style="color: #6e371a;">#import &lt;UIKit/UIKit.h&gt;</span>
<span style="color: #6e371a;">#import &lt;StoreKit/StoreKit.h&gt;</span>
&nbsp;
<span style="color: #a61390;">@interface</span> DummyView <span style="color: #002200;">:</span> UIView  <span style="color: #002200;">&#123;</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> requestProductData;
<span style="color: #a61390;">@end</span></pre></td></tr></table></div>


<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://csquirrel.com/wp-content/plugins/wp-codebox/wp-codebox.php?p=386&amp;download=DummyView.m">DummyView.m</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3867"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
</pre></td><td class="code" id="p386code7"><pre class="objc" style="font-family:monospace;"><span style="color: #6e371a;">#import “DummyView.h”</span>
&nbsp;
<span style="color: #a61390;">@implementation</span> DummyView
&nbsp;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>initWithFrame<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>CGRect<span style="color: #002200;">&#41;</span>frame <span style="color: #002200;">&#123;</span>
<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>self <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>super initWithFrame<span style="color: #002200;">:</span>frame<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
<span style="color: #002200;">&#91;</span>self requestProductData<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span>
<span style="color: #a61390;">return</span> self;
<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>dealloc <span style="color: #002200;">&#123;</span>
<span style="color: #002200;">&#91;</span>super dealloc<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> requestProductData
<span style="color: #002200;">&#123;</span>
SKProductsRequest <span style="color: #002200;">*</span>request<span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>SKProductsRequest alloc<span style="color: #002200;">&#93;</span> initWithProductIdentifiers<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSSet_Class/"><span style="color: #400080;">NSSet</span></a> setWithObject<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;com.yourcompany.product &quot;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;
request.delegate <span style="color: #002200;">=</span> self;
<span style="color: #002200;">&#91;</span>request start<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">//***************************************</span>
<span style="color: #11740a; font-style: italic;">// PRAGMA_MARK: Delegate Methods</span>
<span style="color: #11740a; font-style: italic;">//***************************************</span>
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>productsRequest<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>SKProductsRequest <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>request didReceiveResponse<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>SKProductsResponse <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>response
<span style="color: #002200;">&#123;</span>
<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> <span style="color: #002200;">*</span>myProduct <span style="color: #002200;">=</span> response.products;
<span style="color: #11740a; font-style: italic;">// populate UI</span>
<span style="color: #a61390;">for</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">int</span> i<span style="color: #002200;">=</span><span style="color: #2400d9;">0</span>;i<span style="color: #002200;">&amp;</span>lt;<span style="color: #002200;">&#91;</span>myProduct count<span style="color: #002200;">&#93;</span>;i<span style="color: #002200;">++</span><span style="color: #002200;">&#41;</span>
<span style="color: #002200;">&#123;</span>
SKProduct <span style="color: #002200;">*</span>product <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>myProduct objectAtIndex<span style="color: #002200;">:</span>i<span style="color: #002200;">&#93;</span>;
NSLog<span style="color: #002200;">&#40;</span>@”Name<span style="color: #002200;">:</span> <span style="color: #002200;">%</span>@ <span style="color: #002200;">-</span> Price<span style="color: #002200;">:</span> <span style="color: #002200;">%</span>f”,<span style="color: #002200;">&#91;</span>product localizedTitle<span style="color: #002200;">&#93;</span>,<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>product price<span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span>;
NSLog<span style="color: #002200;">&#40;</span>@”Product identifier<span style="color: #002200;">:</span> <span style="color: #002200;">%</span>@”, <span style="color: #002200;">&#91;</span>product productIdentifier<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span>
<span style="color: #002200;">&#125;</span>
&nbsp;
<span style="color: #a61390;">@end</span></pre></td></tr></table></div>

<h2>4.2.- Buy a in-app purchase.</h2>
<p>First of all you need register a transaction observer with the payment queue. For this you must create a instance class like this.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://csquirrel.com/wp-content/plugins/wp-codebox/wp-codebox.php?p=386&amp;download=CustomStoreObserver.h">CustomStoreObserver.h</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3868"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code" id="p386code8"><pre class="objc" style="font-family:monospace;"><span style="color: #6e371a;">#import &lt;Foundation/Foundation.h&gt;</span>
<span style="color: #6e371a;">#import &lt;StoreKit/StoreKit.h&gt;</span>
&nbsp;
<span style="color: #a61390;">@interface</span> CustomStoreObserver <span style="color: #002200;">:</span> <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/"><span style="color: #400080;">NSObject</span></a> <span style="color: #002200;">&#123;</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>paymentQueue<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>SKPaymentQueue <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>queue updatedTransactions<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>transactions;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> failedTransaction<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>SKPaymentTransaction <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>transaction;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> restoreTransaction<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>SKPaymentTransaction <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>transaction;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> completeTransaction<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>SKPaymentTransaction <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>transaction;
&nbsp;
<span style="color: #a61390;">@end</span></pre></td></tr></table></div>


<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://csquirrel.com/wp-content/plugins/wp-codebox/wp-codebox.php?p=386&amp;download=CustomStoreObserver.m">CustomStoreObserver.m</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3869"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
</pre></td><td class="code" id="p386code9"><pre class="objc" style="font-family:monospace;"><span style="color: #6e371a;">#import “CustomStoreObserver.h”</span>
&nbsp;
<span style="color: #a61390;">@implementation</span> CustomStoreObserver
&nbsp;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>paymentQueue<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>SKPaymentQueue <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>queue updatedTransactions<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>transactions
<span style="color: #002200;">&#123;</span>
<span style="color: #a61390;">for</span> <span style="color: #002200;">&#40;</span>SKPaymentTransaction <span style="color: #002200;">*</span>transaction <span style="color: #a61390;">in</span> transactions<span style="color: #002200;">&#41;</span>
<span style="color: #002200;">&#123;</span>
<span style="color: #a61390;">switch</span> <span style="color: #002200;">&#40;</span>transaction.transactionState<span style="color: #002200;">&#41;</span>
<span style="color: #002200;">&#123;</span>
<span style="color: #a61390;">case</span> SKPaymentTransactionStatePurchased<span style="color: #002200;">:</span>
<span style="color: #002200;">&#91;</span>self completeTransaction<span style="color: #002200;">:</span>transaction<span style="color: #002200;">&#93;</span>;
<span style="color: #a61390;">break</span>;
<span style="color: #a61390;">case</span> SKPaymentTransactionStateFailed<span style="color: #002200;">:</span>
<span style="color: #002200;">&#91;</span>self failedTransaction<span style="color: #002200;">:</span>transaction<span style="color: #002200;">&#93;</span>;
<span style="color: #a61390;">break</span>;
<span style="color: #a61390;">case</span> SKPaymentTransactionStateRestored<span style="color: #002200;">:</span>
<span style="color: #002200;">&#91;</span>self restoreTransaction<span style="color: #002200;">:</span>transaction<span style="color: #002200;">&#93;</span>;
<span style="color: #a61390;">default</span><span style="color: #002200;">:</span>
<span style="color: #a61390;">break</span>;
<span style="color: #002200;">&#125;</span>
<span style="color: #002200;">&#125;</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> failedTransaction<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>SKPaymentTransaction <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>transaction
<span style="color: #002200;">&#123;</span>
<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>transaction.error.code <span style="color: #002200;">!=</span> SKErrorPaymentCancelled<span style="color: #002200;">&#41;</span>
<span style="color: #002200;">&#123;</span>
<span style="color: #11740a; font-style: italic;">// Optionally, display an error here.</span>
<span style="color: #002200;">&#125;</span>
<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>SKPaymentQueue defaultQueue<span style="color: #002200;">&#93;</span> finishTransaction<span style="color: #002200;">:</span> transaction<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> restoreTransaction<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>SKPaymentTransaction <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>transaction
<span style="color: #002200;">&#123;</span>
<span style="color: #11740a; font-style: italic;">//If you want to save the transaction</span>
<span style="color: #11740a; font-style: italic;">// [self recordTransaction: transaction];</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">//Provide the new content</span>
<span style="color: #11740a; font-style: italic;">// [self provideContent: transaction.originalTransaction.payment.productIdentifier];</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">//Finish the transaction</span>
<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>SKPaymentQueue defaultQueue<span style="color: #002200;">&#93;</span> finishTransaction<span style="color: #002200;">:</span> transaction<span style="color: #002200;">&#93;</span>;
&nbsp;
<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> completeTransaction<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>SKPaymentTransaction <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>transaction
<span style="color: #002200;">&#123;</span>
<span style="color: #11740a; font-style: italic;">//If you want to save the transaction</span>
<span style="color: #11740a; font-style: italic;">// [self recordTransaction: transaction];</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">//Provide the new content</span>
<span style="color: #11740a; font-style: italic;">//[self provideContent: transaction.payment.productIdentifier];</span>
&nbsp;
<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>SKPaymentQueue defaultQueue<span style="color: #002200;">&#93;</span> finishTransaction<span style="color: #002200;">:</span> transaction<span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #002200;">&#125;</span>
&nbsp;
<span style="color: #a61390;">@end</span></pre></td></tr></table></div>

<p>And in DummyView.m you can add a button with this Event Method to buy in-app purchase.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p386code10'); return false;">View Code</a> OBJC</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p38610"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p386code10"><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> subscribe<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span> sender<span style="color: #002200;">&#123;</span>
SKPayment <span style="color: #002200;">*</span>payment <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>SKPayment paymentWithProductIdentifier<span style="color: #002200;">:</span>productIdentifier<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>SKPaymentQueue defaultQueue<span style="color: #002200;">&#93;</span> addPayment<span style="color: #002200;">:</span>payment<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span></pre></td></tr></table></div>

<p>This is a simple tutorial to take a first look to Store Kit. I hope that it will be usefull for you.<br />
<!--</p>
<h2>A bit of voodoo magic</h2>
<p>The other day I was working on In-App purchase for one of our products. The StoreKit API and the code flow to perform a successful transaction is a piece of cake, the real show stopper was lack of the information how to create and use a test user for test purchases. Apple&#8217;s is very brief on this. The documenation briefly says you should go and create a test user using iTunes Connect. There is a good chance you will fail very fast, because they miss a very important piece.</p>
<hr /><a href="http://csquirrel.com/wp-content/uploads/in-app_purchase_failure.jpg" rel="prettyPhoto[386]" title="One false move, and this is all you get while testing in-app purchase."><img src="http://csquirrel.com/wp-content/uploads/in-app_purchase_failure-thumbnail.jpg" border="0" alt="store-kit-overview-thumbnail.jpg" width="110" height="125" /></a><br />
<hr />
&#8211;></p>
<h2>Resources</h2>
<ul>
<li><a href="http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html" target="_new">iPhone Dev Center: In App Purchase Programming Guide</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/in-app-purchase-programming-overview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>In-App Purchase: Quick Overview</title>
		<link>http://csquirrel.com/in-app-purchase/</link>
		<comments>http://csquirrel.com/in-app-purchase/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 15:14:31 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://csquirrel.com/wp/?p=3</guid>
		<description><![CDATA[In-App purchase is a big thing for all the iPhone developers. Not only it helps to tease users to try and buy but also can help to reduce piracy. This is why you should consider it in your next application.

Thanks to the Store Kit framework purchase you can easily split your application into chunks and [...]]]></description>
			<content:encoded><![CDATA[<p>In-App purchase is a big thing for all the iPhone developers. Not only it helps to tease users to try and buy but also can help to reduce piracy. This is why you should consider it in your next application.<br />
<span id="more-3"></span><br />
Thanks to the Store Kit framework purchase you can easily split your application into chunks and sell it bit by bit. The most important thing is that users download application for free and play with limited functionality, when they are satisfied they will use In-App purchase to pay for the full version. This is much better than releasing &#8220;full&#8221; and &#8220;lite&#8221; versions separately. If you work on game you may think of selling extra levels, if your app is an utility tool this can be paid access to extra features. I&#8217;m sure you&#8217;ve got the idea now.</p>
<h2>Brief intro</h2>
<p>The way the Store Kit works makes it very tempting to use it. Within iTunes Connect portal you have to define pieces you want to sell. Then in the application you will refer to these bits selling them to the user. No worries, this is the AppStore who will process payments and return to you transaction details. </p>
<hr width="90%"/><center><a href="http://csquirrel.com/wp-content/uploads/store-kit-overview.jpg" rel="prettyPhoto[3]" title="Basic rules behind the Store Kit are very simple. Send the request and the AppStore will process the payments and return the result of the transaction."><img src="http://csquirrel.com/wp-content/uploads/store-kit-overview-thumbnail.jpg" alt="store-kit-overview-thumbnail.jpg" border="0" width="110" height="125"/></a><br />
<hr width="90%"/></center></p>
<h2>Built-in vs Server product model</h2>
<p>In-App purchase was designed not only to help you selling your application but also to support selling virtual products like subscriptions. This lead us to two group of products recognised by Apple:  </p>
<ul>
<li><b>Built-In:</b> everything you sell is built in to the application (eg. game levels, pro features),</li>
<li><b>Server:</b> you sell the goods provided by external server you provide (eg. e-books, subscriptions)</li>
</ul>
<p>The latter obviously requires extra mile on the server side. This is the receipt validation and enabling the content to the user. Check the following two diagrams from the official guide.<br />
<center><br />
<hr width="90%"/>
<table>
<tr>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/built_in_store_diagram.jpg" rel="prettyPhoto[3]" title="Built-In Product: Everything you sell is built in to the application (eg. game levels, pro features)"><img src="http://csquirrel.com/wp-content/uploads/built_in_store_diagram-thumbnail.jpg" alt="store-kit-overview-thumbnail.jpg" border="0" width="110" height="125" /></a></td>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/store_transactions.jpg" rel="prettyPhoto[3]" title="Server product: You sell the goods provided by external server (eg. e-books, subscriptions)."><img src="http://csquirrel.com/wp-content/uploads/store_transactions-thumbnail.jpg" alt="store-kit-overview-thumbnail.jpg" border="0" width="110" height="125" /></a></td>
</tr>
</table>
<hr width="90%"/></center></p>
<h2>Temptation is the key</h2>
<p>Apart from the technical side there is also a big gain from In-App purchase for marketing. Users who will try an application for free and like it are more likely to buy full version, there is no doubt here. But this also opens another window of opportunity: If you are selling more than a simple upgrade you may offer discounts to the users. The game <a href="http://rolando2.ngmoco.com/" target="_new">Roland 2</a> from ngmoco:) is a very good example. They offer you the game and first level for free. Then you may either buy single levels one by one or buy all of them at once with a discount. On the top of that there is a very nice preview of every level thus users know exactly what they buy. Compare this to a text alert telling you the feature you are trying to access is available only in pro version, which one will squeeze your wallet better?<br />
<center><br />
<hr width="90%"/>
<table>
<tr>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/built-it_bad_exposure.jpg" rel="prettyPhoto[3]" title="Alert window is not convincing if it comes to sales."><img src="http://csquirrel.com/wp-content/uploads/built-it_bad_exposure-thumbnail.jpg" alt="store-kit-overview-thumbnail.jpg" border="0" width="110" height="125" /></a></td>
<td align="center"><a href="http://csquirrel.com/wp-content/uploads/built-it_good_exposure.jpg" rel="prettyPhoto[3]" title="Sexy look can boost sales."><img src="http://csquirrel.com/wp-content/uploads/built-it_good_exposure-thumbnail.jpg" alt="store-kit-overview-thumbnail.jpg" border="0" width="110" height="125" /></a></td>
</tr>
</table>
<hr width="90%"/></center></p>
<h2>Summary</h2>
<p>The In App Purchase can be a powerful weapon in your hands. It can improve your sales and decrease piracy in a significant way if you use it wisely. If you polish the free version and show the users what they will get then success will be inevitable. </p>
<p>If you are curious about StoreKit development details please read <a href="http://csquirrel.com/in-app-purchase-programming-overview/" target="_new">In-App Purchase: Programming Overview</a></p>
<h2>Resources</h2>
<ul>
<li><a href="http://csquirrel.com/in-app-purchase-programming-overview/" target="_new">In-App Purchase: Programming Overview</a></li>
<li><a href="http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html" target="_new">iPhone Dev Center: In App Purchase Programming Guide</a></li>
<li><a href="http://www.mobilecrunch.com/2009/10/15/in-app-purchase-in-free-apps-a-shot-across-the-bow-of-iphone-piracy/" target="_new">Mobile Crunch: In-App Purchase In Free Apps: A Shot Across The Bow of iPhone Piracy?</a></li>
<li><a href="http://www.mobilemarketingmagazine.co.uk/2009/10/developers-welcome-apples-inapp-purchase-move.html" target="_new">Mobile Marketing Magazine: Developers Welcome Apple&#8217;s In-app Purchase Move</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/in-app-purchase/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Welcome</title>
		<link>http://csquirrel.com/welcome/</link>
		<comments>http://csquirrel.com/welcome/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 18:07:14 +0000</pubDate>
		<dc:creator>ciukes</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://csquirrel.com/?p=486</guid>
		<description><![CDATA[We just want to say &#8220;Hi!&#8221;.

Although this is the beginning of our journey through iPhone/Mac world we already have achievements we are proud of.
We invite you to join cSquirrel reader and watch our steps.
]]></description>
			<content:encoded><![CDATA[<p>We just want to say &#8220;Hi!&#8221;.<br />
<span id="more-486"></span><br />
Although this is the beginning of our journey through iPhone/Mac world we already have achievements we <a href="http://csquirrel.com/oursoftware/">are proud of</a>.</p>
<p>We invite you to join cSquirrel reader and watch our steps.</p>
]]></content:encoded>
			<wfw:commentRss>http://csquirrel.com/welcome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

