<?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>Three Letter Acronym</title>
	<atom:link href="http://www.dragthing.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dragthing.com/blog</link>
	<description>Please, Not Another Indie Developer Blog</description>
	<lastBuildDate>Tue, 03 Aug 2010 14:21:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Universal cheapness</title>
		<link>http://www.dragthing.com/blog/2010/08/universal-cheapness/</link>
		<comments>http://www.dragthing.com/blog/2010/08/universal-cheapness/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 13:50:14 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[cheap bastards]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=313</guid>
		<description><![CDATA[Today, I would like to complain about the following two groups of people who are cheap: Developers Users Ok, not all of them, some of you are quite lovely. But I&#8217;ve been noticing a couple of trends of late that I think deserve comment, and a couple of people today really pushed me to the [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I would like to complain about the following two groups of people who are cheap:</p>
<ul>
<li>Developers</li>
<li>Users</li>
</ul>
<p>Ok, not all of them, some of you are quite lovely. But I&#8217;ve been noticing a couple of trends of late that I think deserve comment, and a couple of people today really pushed me to the point of anger. If I blame everybody equally, it cancels out, right?</p>
<p>Firstly, universal iPhone / iPad apps, or the lack of same &#8211; particularly in the field of games.</p>
<p>When the iPad came out, there was a slew of seperate HD versions of apps with appropriately HD pricing. &#8220;No&#8221;, said the developers, &#8220;we&#8217;re not just price gouging because there is a shiny new device out there which we think we can make a vast profit from. Look, we need to create these lovely high resolution assets. That costs real money!&#8221;.</p>
<p>And that was, on the whole, entirely true.</p>
<p>Then the iPhone 4 came out, and a lot of iPhone games have been updated recently for free with Retina display support with lovely high resolution assets. Some strangely familiar high resolution assets in some cases.</p>
<p>So, you might now be paying twice for exactly the same game, with exactly the same assets. These games are crying out to be universal apps. By all means charge more money for a universal app, that&#8217;s not the problem &#8211; I like paying money for good software &#8211; but don&#8217;t charge me a second time for the same thing.</p>
<p>Now this doesn&#8217;t apply to all games, and certainly doesn&#8217;t apply to all apps. A complex, well thought out UI on the iPhone doesn&#8217;t always scale to the iPad, and vice versa, even if they now have a similar number of pixels. But some games are pretty much identical on both. And those, my friend, should be universal apps.</p>
<p>I think what bothers me most is games that start out on the iPad, and then migrate to the iPhone. They&#8217;ve already done the hard work making it look amazing on the iPad, and I gladly paid the HD price for it. But now there&#8217;s an iPhone 4 optimised version coming and you want me to pay a second time? That makes me unhappy.</p>
<p>A recent example that did this right was <a href="http://itunes.apple.com/us/app/geometry-wars-touch/id364175436?mt=8" target="_blank">Geometry Wars</a> &#8211; they started out as an iPad app and added a universal app in a recent update. This made me feel even happier about my original iPad purchase. Pleased to the point that I&#8217;m telling you about the game now. Go buy it, it&#8217;s great fun.</p>
<p><a href="http://itunes.apple.com/us/app/osmos-for-ipad/id379323382?mt=8">Osmos</a> is another really great game I bought for my iPad, and it sounds as if they are about to bring out a separate iPhone version, rather than a universal one. That makes me feel worse about my original purchase. They are both great games from great developers, but making your customers feel happy is an important thing.</p>
<p><a href="http://itunes.apple.com/us/app/angry-birds/id343200656?mt=8" target="_blank">Angry Birds</a> is a more complex example &#8211; they&#8217;ve been great at doing lots of free updates to their iPhone version, and have earned a hell of a lot of customer loyalty from it (and a shedload of money as a result). But they also have a separate &#8220;pay again&#8221; HD iPad version, which I&#8217;m told frequently lags in updates behind the iPhone one. Boo, and boo.</p>
<p>Every time I buy a new game on the app store that isn&#8217;t universal, I sigh a little bit more, knowing it&#8217;s constrained to one device for reasons which are not always purely technical. I&#8217;m informed by the always wise <a href="http://www.neilinglis.com/" target="_blank">Neil Inglis</a> that universal apps bought in iTunes only count in the iPhone sales charts, and that could account for one reason why developers like having two separate apps. But that seems like it could be easily fixed by Apple. But then, Apple gets 30% of all the extra sales of the other versions&#8230; CUE CONSPIRACY THEORY!</p>
<p>Anyway, yes, developers are just after your money. But you know who else is cheap? Users.</p>
<p>This week, I saw a comment about my <a href="http://www.pcalc.com/" target="_blank">PCalc</a> which basically said &#8220;How come the Mac version is twice the price of the iPhone version? I think all Mac software is overpriced.&#8221;</p>
<p>No, no, NO.</p>
<p>PCalc is $19 on the Mac, $9.99 on iOS. Leaving aside the fact that buying the iOS version of PCalc gets you a code which gives you a <em>generous</em> $9 discount on the Mac one, a more correct conclusion that they could have come to is &#8220;Perhaps all iPhone software is underpriced, and it might not be a sustainable market in the long term&#8221;. Or perhaps &#8220;I wonder why people will pay more for something, the bigger a screen it comes on?&#8221;.</p>
<p>I expect Apple will bring out an App Store for Mac OS sooner rather than later. I wonder what will happen to pricing then, if it will stay the same, or be more in line with the iOS apps. And I also wonder whether Apple will be able to ask for 30% of all sales. It would be a major shake up for the Mac software market, and I&#8217;m willing to bet 59p that it will happen.</p>
<p>Finally, I got an email today from somebody who had been running the Mac version of PCalc for many years, and had been faithfully clicking the &#8220;Not Yet&#8221; button every time he launched it. He decided he wanted to pay up, but when he finally saw the price, he decided against it, because he only ever really used the widget. For all of the many years he had been running the software without paying for it.</p>
<p>Oh, and the best bit? He was an indie developer as well&#8230;</p>
<p>I think I might be too generous with the trial periods in DragThing and PCalc. When the two week trial is over, they both keep working on the whole, requesting politely that you pay, but not being too obnoxious about it. They were both created in a different age, where that approach was normal and expected. Should I change them to stop working completely as soon as the trial period expires? The user in me says no, the developer says yes.</p>
<p>What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2010/08/universal-cheapness/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Four Legs Good, Two Legs Better!</title>
		<link>http://www.dragthing.com/blog/2009/12/four-legs-good-two-legs-better/</link>
		<comments>http://www.dragthing.com/blog/2009/12/four-legs-good-two-legs-better/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 16:10:47 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[dragthing]]></category>
		<category><![CDATA[macupdate]]></category>
		<category><![CDATA[pcalc]]></category>
		<category><![CDATA[selling your soul to the highest bidder]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=306</guid>
		<description><![CDATA[&#8220;So&#8221;, I hear you thinking, &#8220;I remember James being very anti-software bundle earlier this year. He had that spat with John Casasanta and everything. Imagine my surprise when I saw this offer in my inbox this morning &#8211; both DragThing and PCalc are part of the new MacUpdate Promo Winter Bundle. Is he a just a [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;So&#8221;, I hear you thinking, &#8220;I remember James being very anti-software bundle earlier this year. He had <a href="http://www.dragthing.com/blog/?p=221">that spat with John Casasanta</a> and everything. Imagine my surprise when I saw this offer in my inbox this morning &#8211; both DragThing and PCalc are part of the new <a href="http://www.mupromo.com/?ref=1718" target="_blank">MacUpdate Promo Winter Bundle</a>. Is he a just a big capitalist sellout after all?&#8221;</p>
<p><a href="http://www.mupromo.com/?ref=1718"><img class="aligncenter" src="http://s3.amazonaws.com/tlasystems/blog/MUPromo-banner-300x250-static.jpg" alt="" width="300" height="250" /></a></p>
<p>Yes.</p>
<p>Ok, let me qualify that <em>slightly</em>.</p>
<p>Way back in June, we took part in the inaugural <a href="http://www.dragthing.com/blog/?p=213">TheMacBundles.com bundle</a>. The idea was a great one &#8211; this was a bundle <em>by</em> developers, <em>for</em> developers, with an equal split of the profits for all who took part. In practice however, it was something of a disappointment. Sales of the bundle were small, not down to the quality of the applications or people involved, but partially because it was going up against the much stronger MacUpdate bundle at the time, and partially because &#8211; in my opinion &#8211; it didn&#8217;t compare particularly favourably to the slick marketing efforts of MacHeist and MacUpdate.</p>
<p>It was mocked at the time by the ever-tactful John Casasanta of MacHeist, who basically said that without a substantial marketing budget, it was doomed. Annoyingly, he was actually right.</p>
<p>A couple of months ago, the MacUpdate people contacted me and asked if I wanted to be part of their winter bundle. What they offered per-bundle-sold wasn&#8217;t completely terrible &#8211; I&#8217;ve been offered a lot worse. Sales of DragThing have slowed a little bit of late since I&#8217;ve only done fairly <a href="http://www.dragthing.com/english/history.html">minor updates</a> recently, and I figured it couldn&#8217;t hurt to get it back into the public eye. And likewise, PCalc on the Mac has always been a good promotional tool for selling copies of <a href="http://www.pcalc.com/iphone/" target="_blank">PCalc on the iPhone</a>.</p>
<p>So, fine, let&#8217;s give it a try. It&#8217;s a good bundle of apps &#8211; I fancy getting a few of them myself. I&#8217;ve been looking forward to the point-and-click adventure game <a href="http://machinarium.net/" target="_blank">Machinarium</a> for ages, and I didn&#8217;t realise it was already out. Plus I&#8217;ve heard good things about <a href="http://www.realmacsoftware.com/socialite/" target="_blank">Socialite</a> and <a href="http://www.iwascoding.com/GarageSale/" target="_blank">GarageSale</a>, and many of the others. <a href="http://cocoatech.com/" target="_blank">Path Finder</a> is another veteran app in the bundle, and I know lots of people use that in combination with DragThing.</p>
<p>Will we make more money over the next two weeks than we would have otherwise? Am I damaging future sales of our apps? That remains to be seen. You can see the total number of sales of the bundle on the <a href="http://www.mupromo.com/?ref=1718" target="_blank">MUPromo</a><a href="http://www.mupromo.com/?ref=1718" target="_blank"> page</a>. I&#8217;m legally not allowed to tell you exactly how much of the $49.99 we&#8217;re getting, but think of a very small number. Now half it. You&#8217;re pretty much there. Feel free to multiply that by the current sales figure.</p>
<p>The bottom line is that our decades-old kitchen is due to be replaced in January, and it would be nice if this deal helped pay for it&#8230; Does that make me a capitalist?</p>
<p>Or a <em>culinarist</em>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/12/four-legs-good-two-legs-better/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Taking A Stand</title>
		<link>http://www.dragthing.com/blog/2009/10/taking-a-stand/</link>
		<comments>http://www.dragthing.com/blog/2009/10/taking-a-stand/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 14:43:52 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[censorship]]></category>
		<category><![CDATA[pcalc]]></category>
		<category><![CDATA[profanisaurus]]></category>
		<category><![CDATA[taking a stand against the man]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=300</guid>
		<description><![CDATA[You might have seen that we have a number of new PCalc releases out today, two for the iPhone, and one more for Mac OS X. On the face of it, these might look like minor upgrades to fix a couple of annoying bugs and nothing more. Let me state here, for the record, that [...]]]></description>
			<content:encoded><![CDATA[<p>You might have seen that we have a number of new PCalc releases out today, <a href="http://www.pcalc.com/itunes_store_link/tlasystems">two for the iPhone</a>, and <a href="http://www.pcalc.com/english/about.html" target="_blank">one more for Mac OS X</a>. On the face of it, these might look like minor upgrades to fix a couple of annoying bugs and nothing more. Let me state here, for the record, that nothing could be closer to the truth.</p>
<p>Given our recent controversial moves regarding <a href="http://www.dragthing.com/blog/?p=285">calculator word censorship</a>, the more conspiratorially-minded amongst you might think we are using these updates as a mere smokescreen to slip in even more draconian measures. And on the face of it you would be right &#8211; PCalc now filters over three times as much profane content as before, with significantly increased detection algorithms. Don&#8217;t think you can just throw in a decimal point in the middle of a word now, we&#8217;re wise to such tricks. We&#8217;ve even added multiple-language support.</p>
<p>But, before you condemn me, I need to get something off my <a href="http://en.wikipedia.org/wiki/Boobies" target="_blank">chest</a>.</p>
<p>Personally, I don&#8217;t like adding these features any more than you like having your calculating freedoms curtailed, so I&#8217;ve decided to take a stand against this censorship and my cruel paymasters at <a href="http://www.tla-systems.co.uk/" target="_blank">TLA Systems</a>.</p>
<p>In the latest version 1.8.1 for the iPhone and iPod touch, I&#8217;ve hidden a secret easter egg that lets you disable this disgraceful &#8220;feature&#8221; once and for all.</p>
<ol>
<li>Go into the &#8220;Advanced&#8221; section of the settings (or just the normal settings section in the Lite version).</li>
<li>Scroll all the way down to the bottom of the page.</li>
<li>Turn your phone upside-down.</li>
<li>Still keeping it upside-down, you&#8217;ll now be able to scroll slightly further to reveal a brand new option.</li>
<li>Switch censorship to &#8220;Off&#8221;.</li>
</ol>
<p><img class="aligncenter" src="http://s3.amazonaws.com/tlasystems/blog/Stand.png" alt="" width="323" height="242" /></p>
<p>I&#8217;ve also managed to sabotage the censorship completely in version 3.5.1 for Mac OS X &#8211; even if you turn your laptop or display completely upside down, the profanity filter will still fail to engage.</p>
<p>Needless to say, if word of this got out I could get in serious trouble, so this is just between us, ok?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/10/taking-a-stand/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Going Viral</title>
		<link>http://www.dragthing.com/blog/2009/10/going-viral/</link>
		<comments>http://www.dragthing.com/blog/2009/10/going-viral/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 13:41:44 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=289</guid>
		<description><![CDATA[Well, that was exciting. So, you probably all saw my little marketing effort for PCalc at the beginning of the month. It started out as a conversation a while back with some of the usual suspects at the monthly Glasgow MacMacDev developer meeting. We were discussing the recently introduced age ratings in the App Store, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, <em>that</em> was exciting.</p>
<p><img class="aligncenter" src="http://s3.amazonaws.com/tlasystems/blog/Viral.png" alt="" width="418" height="223" /></p>
<p>So, you probably all saw <a href="http://www.dragthing.com/blog/?p=285">my little marketing effort</a> for PCalc at the beginning of the month.</p>
<p><span id="more-289"></span>It started out as a conversation a while back with some of the usual suspects at the monthly Glasgow <a href="http://macmacdev.com/" target="_blank">MacMacDev</a> developer meeting. We were discussing the recently introduced age ratings in the App Store, and whether a 17+ rating on your app would actually boost sales rather than hurt them. All the Twitter clients (<a href="http://www.dragthing.com/blog/?p=277">bar one</a>) had just been given a high rating because they could connect to the treacherous unfiltered internet.</p>
<p>How could PCalc benefit from this marketing tactic? How do you make an excellent but otherwise boring scientific calculator get a 17+ rating? <a href="http://en.wikipedia.org/wiki/Calculator_spelling" target="_blank">Calculator words</a> were mentioned, with the thought of displaying <a href="http://en.wikipedia.org/wiki/Boobies" target="_blank">appropriate pictures</a>. But the idea came about to go in the other direction entirely, and actually censor any bad calculator words when the iPhone was held upside down. We were, of course, joking.</p>
<p>But it was funny, and extremely easy to implement. I thought it would make for an interesting easter egg, destined to remain undiscovered except by the occasional well-off bored teenager with an iPhone. So I spent an afternoon on it, and showed it at the next meeting. People were amused. I submitted it to the App Store and, as per the guidelines, documented the easter egg for the Apple reviewers. I don&#8217;t know whether the reviewers themselves were amused or not, but 9 days later it was approved.</p>
<p>I hadn&#8217;t done a PCalc release on the iPhone for a while, and the 1.8 version I was working on was a little dull to be honest, as far as new features went. The main thing I actually wanted to introduce wasn&#8217;t really a new feature, but a discount coupon code in the full iPhone app which was worth $9 off <a href="http://www.pcalc.com/english/about.html" target="_blank">PCalc for Mac OS X</a>. This was an idea that came from <a href="http://www.selznick.com/" target="_blank">Sanford Selznick</a> who had done something similar with his <a href="http://www.selznick.com/products/passwordwallet/index.htm" target="_blank">Password Wallet</a> application.</p>
<p>I thought it would be good to give a discount to people who were buying both, and since Apple doesn&#8217;t have a mechanism for coupons or discounts in the App Store yet, this was the only way that worked. But also, since PCalc sales on the iPhone are much higher than the Mac version, it wouldn&#8217;t hurt to give people an incentive to buy both. As it turns out, this has been a big success, generating a lot of extra sales on the Mac side.</p>
<p>But again, it&#8217;s not much of a marketing hook. I&#8217;ve talked before about the problems of getting press coverage for iPhone app updates. They are usually smaller and more frequent than desktop updates, and so there isn&#8217;t much of a story  just writing about a few extra features. The coupon code is nice for users (and indeed for us), but it&#8217;s not exactly headline news.</p>
<p>There have been a number of <a href="http://www.blog.montgomerie.net/whither-eucalyptus" target="_blank">high profile App Store rejections</a> that were considered to be censorship on the part of Apple, so the thought occurred to me that the hook for this release could actually be the easter egg itself. I quickly wrote up what I considered to be a <a href="http://www.dragthing.com/blog/?p=285">clearly satirical press release</a> and sent it out to the world. I figured it would give some of the journalists I know a little chuckle, and that would be it. I try and make my press releases at least interesting, so they hopefully stand out a little bit from the crowd.</p>
<p>Initially, it had exactly the desired effect. In the first day, a couple of sites like Rene Ritchie&#8217;s <a href="http://www.theiphoneblog.com/2009/09/30/quick-app-update-pcalc-rpn-iphone-18-censorship/" target="_blank">iPhone Blog</a> ran some small tongue-in-cheek stories, there was much tweeting, and we had a modest sales bump. Nothing spectacular, but in line with an update of this size. The coupon did prove popular as expected. Job done.</p>
<p>In the immortal words of Dr Sam Beckett, &#8220;Oh boy&#8230;&#8221;.</p>
<p>The next day, something strange happened. I started to get comments on the blog, and quite a few emails, denouncing me for capitulating to censorship. I thought, &#8220;Well, they are just playing along with the joke.&#8221;. Then, after a few more, I wasn&#8217;t exactly sure anymore&#8230;</p>
<p>A typical excerpt:</p>
<blockquote><p>I was unfamiliar with your product, and would have been thrilled to know about it until I today when I read that you&#8217;re including a profanity filter. How absurd! This type of calculator is unlikely to even be used by young children. You&#8217;ve provided censorship where none is needed. Not only will I NEVER BUY YOUR SOFTWARE, I will actively campaign against its use. Censorship has no place in academia.</p></blockquote>
<p>And also:</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 1100px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">It only censors when you flip the iPhone, but doesn&#8217;t censor when you have someone on the other side of the table looking at those numbers when it is lying on a flat surface!!! This shows the ridiculous effort of applying censorship.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 1100px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">This kind of behavior does not in any way diminish my appreciation for the app, but it does so for the makers of it, including the folks responsible at Apple for overseeing the &#8220;application process&#8221; at the App Store and not realizing the futility of their efforts in view of my previous comment above</div>
<blockquote><p>It only censors when you flip the iPhone, but doesn&#8217;t censor when you have someone on the other side of the table looking at those numbers when it is lying on a flat surface!!! This shows the ridiculous effort of applying censorship. This kind of behavior does not in any way diminish my appreciation for the app, but it does so for the makers of it, including the folks responsible at Apple for overseeing the &#8220;application process&#8221; at the App Store and not realizing the futility of their efforts in view of my previous comment above.</p></blockquote>
<p>It should be said that in both of these cases, when I explained it was intended as satire and pointed them towards my original blog post, they were embarrassedly apologetic. But then the serious press stories started to appear, outside of the cosy bubble of iPhone and Mac news. First up, we had <a href="http://www.nbcchicago.com/news/tech/5318008-is-Too-Dirty-for-the-iPhone-63149437.html" target="_blank">NBC News</a>:</p>
<blockquote><p>Perhaps out of fear of turning into the next Google Voice in Apple&#8217;s eyes, the people behind the PCalc scientific calculator for the iPhone installed a profanity filter on the latest verion of the app that blocks out anything even mildly offensive.</p>
<p>Now instead of getting a smut word when you type “5318008″ and flip your iPhone upside down, you will get a great big &#8220;Censored!&#8221; message bold enough to make even George Orwell shudder in his grave.</p></blockquote>
<p>And our own reliable <a href="http://www.mirror.co.uk/news/technology/2009/10/02/new-iphone-calculator-app-kills-off-boobies-gag-115875-21718202/" target="_blank">Daily Mirror</a>:</p>
<blockquote><p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">Yep, you read that right. Slap in the correct digits, flip your iPhone around and the PCalc will block the word with a “Censored” image. Not only does that mean no more pranking about when bored to tears at work, it takes App developer paranoia to whole new levels.</span></p></blockquote>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">By this point, traffic on the blog was spiking to the point where my server couldn&#8217;t handle the load. We had indeed gone viral. Most people seemed to get the joke though. Craig Grannell wrote a <a href="http://reverttosaved.com/2009/10/02/satire-is-dead-when-it-comes-to-iphone-boobies/" target="_blank">nice article</a> saying:</span></p>
<blockquote><p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">This is a smart, funny, satirical swipe at the recent trend towards over-zealous censorship. Unless you’re, say, Sajid Farooq of NBC, who, inexplicably takes Thomson’s joke seriously (and, sadly, he’s not alone) and states PCalc’s change would “make even George Orwell shudder in his grave”. I’m thinking Orwell would be more likely to laugh his CENSORED off.</span></p></blockquote>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">Austin Modine at The Register gets the award for <a href="http://www.theregister.co.uk/2009/10/02/iphone_calculator_censorship/" target="_blank">this piece</a>, which even had explanatory graphics:</span></p>
<blockquote><p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; "> The twisted path that led you to becoming the horrible person you are today probably began when your adolescent mind first realized you could spell &#8220;BOOBIES&#8221; on an upside-down calculator.</span></p></blockquote>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">Anyway, for the next few days, articles kept popping up, the tweets continued, and many people weren&#8217;t quite sure if I was serious or not. I do suspect that some of the articles were written based purely on reading other articles, rather than reading the original. Certainly a lot of things were written without actually emailing me to check what the real story was.</span></p>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">The lesson here is that not everybody will get the joke, even if you think it&#8217;s obvious. Perhaps it was a little too close for comfort to reality, and people wanted to believe it. Apple got a lot of heat for forcing this horrible change on me, even though I&#8217;d never actually said that. Things were getting to the point where I was vaguely expecting a late night call from Phil Schiller&#8230;</span></p>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">But, they say there&#8217;s no such thing as bad publicity. So, bottom line, what did it do for sales? Are we millionaires off the back of this publicity stunt? Or have we been blacklisted across the free world and embraced by everybody else?</span></p>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">To be completely honest, it didn&#8217;t actually do a whole lot. </span></p>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">Sales of the full PCalc tripled on the first day and have slowly now returned to normal just over a week later. Downloads of the free version increased more than tenfold, and are similarly tailing off, although not as quickly (and some of them might turn into full sales later on). That&#8217;s actually slightly worse in terms of numbers than what happened with the release of PCalc 1.7, which was just a normal release with a lot of good features, and no huge fanfare. Certainly, it wasn&#8217;t proportionate to the level of noise and hysteria involved. I think many people who read the stories didn&#8217;t even have iPhones.</span></p>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">I certainly got a lot of publicity. I&#8217;m no longer &#8220;that Twitkitteh guy&#8221;, I&#8217;m now instead &#8220;that boobies guy&#8221;. I&#8217;m not sure this is particularly conducive to selling copies of a serious product, but it doesn&#8217;t seem to have hurt us either. Lots of people know the name of PCalc when they didn&#8217;t before, and if they are looking to buy an iPhone calculator, perhaps the name recognition will help.</span></p>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">The final irony is that I spent most of the additional profits generated by this whole affair on an expensive office chair to help with occasional back problems I&#8217;ve been having. And after a few days sitting properly upright in it, my back is absolutely killing me&#8230; So, all those people who said I was a terrible person can take some solace in that.</span></p>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">I discovered a small bug with the button tracking in 1.8, so a small update has been submitted to the App Store already to fix it &#8211; but yes, it does also significantly improve the profanity filter. Should I mention that in the press release? </span></p>
<p><span style="font-family: verdana, arial, sans-serif; line-height: 16px; font-size: 12px; ">I&#8217;m kind of thinking not&#8230;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/10/going-viral/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PCalc Prevents iPhone Profanity</title>
		<link>http://www.dragthing.com/blog/2009/09/pcalc-prevents-iphone-profanity/</link>
		<comments>http://www.dragthing.com/blog/2009/09/pcalc-prevents-iphone-profanity/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 21:16:59 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[pcalc]]></category>
		<category><![CDATA[profanisaurus]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=285</guid>
		<description><![CDATA[UPDATE: Yes, this was intended as satire. Here at TLA Systems, we take our responsibility to protect innocent minds very seriously. Have you, or somebody close to you, ever turned your calculator upside down and accidentally seen a mildly suggestive word? Have you ever been in a maths class, and had to put up with groups of giggling boys [...]]]></description>
			<content:encoded><![CDATA[<p>UPDATE: Yes, this <a href="http://www.dragthing.com/blog/?p=289">was intended as satire</a>.</p>
<p>Here at <a href="http://www.tla-systems.co.uk/">TLA Systems</a>, we take our responsibility to protect innocent minds very seriously.</p>
<p>Have you, or somebody close to you, ever turned your calculator upside down and accidentally seen a mildly suggestive word? Have you ever been in a maths class, and had to put up with groups of giggling boys performing elaborate calculations that are <em>not</em> part of the lesson?</p>
<p>Yes, it&#8217;s one of the main problems affecting the calculator industry today, the so-called &#8220;calculator words&#8221;. These otherwise harmless devices can be made to display smut at the press of a few buttons. Added to that, the iPhone App Store is very strict about having inappropriate content in apps. Nobody wants their app to get a 17+ rating, or worse, to be rejected entirely.</p>
<p>Which is why we are happy to announce that the latest version of our PCalc scientific calculator for the iPhone contains a new patent-worthy profanity filter.</p>
<p>Simply enter a number such as &#8220;5318008&#8243;, turn the calculator upside down, and the offending word will be discreetly censored. Many common calculator words have been included as standard, and we plan to increase this over time via software updates.</p>
<p style="text-align: center;"><img class="alignnone" src="http://s3.amazonaws.com/tlasystems/blog/PCalc18.png" alt="" width="323" height="242" /></p>
<p>This pioneering technology is available in both the full PCalc, as well as in the totally free PCalc Lite. Ideal for classroom settings, and for the very easily offended.</p>
<p>Some people might say that this is just a humourous attempt to drum up some publicity, and we should really be concentrating on the things that make PCalc one of the most popular calculators on the App Store. Like, for example, the intuitive user interface that takes full advantage of the iPhone, the optional RPN mode, or the wealth of powerful features.</p>
<p>Or, these same people might want us to point out that this new version comes with a coupon code that&#8217;s worth $9 off the price of <a href="http://www.pcalc.com/">PCalc for Mac OS X</a>, effectively making <a href="http://www.pcalc.com/iphone/">PCalc for the iPhone</a> a mere 99c if you were thinking of buying both.</p>
<p>But we think we know our audience.</p>
<p>You can find out more details at <a href="http://www.pcalc.com/">www.pcalc.com</a> and download either of the iPhone applications <a href="http://www.pcalc.com/itunes_store_link/tlasystems">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/09/pcalc-prevents-iphone-profanity/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Twitkitteh, the safe Twitter client</title>
		<link>http://www.dragthing.com/blog/2009/07/twitkitteh-the-safe-twitter-client/</link>
		<comments>http://www.dragthing.com/blog/2009/07/twitkitteh-the-safe-twitter-client/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 16:59:35 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[twitkitteh]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=277</guid>
		<description><![CDATA[We at TLA Systems are pleased to announce that with Apple&#8217;s new App Store policy changes now in effect, Twitkitteh will very soon be the only iPhone Twitter client available to the under-17 market. Originally aimed at the the mainly feline demographic, our patent-pending &#8220;write-only&#8221; approach to Twitter &#8211; combined with a limited set of [...]]]></description>
			<content:encoded><![CDATA[<p>We at TLA Systems are pleased to announce that with Apple&#8217;s <a href="http://db.tidbits.com/article/10436" target="_blank">new App Store policy changes</a> now in effect, <a href="http://www.twitkitteh.com/" target="_blank">Twitkitteh</a> will very soon be the <em>only</em> iPhone Twitter client available to the under-17 market.</p>
<p>Originally aimed at the the mainly feline demographic, our patent-pending &#8220;write-only&#8221; approach to Twitter &#8211; combined with a limited set of fixed tweets &#8211; is now well positioned to take advantage of these new rules and expand out into the wider marketplace of puppies and teenagers.</p>
<p><img class="aligncenter" src="http://s3.amazonaws.com/tlasystems/blog/Warning.png" alt="" width="319" height="138" /></p>
<p>By protecting our users from the horrors of the frequent and intense sexual content and drug use found in those depraved applications like <a href="http://iconfactory.com/software/twitterrific" target="_blank">Twitterific</a> and <a href="http://www.atebits.com/tweetie-iphone/" target="_blank">Tweetie</a> (it says so in iTunes, so it must be true), this means we are really now the only family-friendly choice left in the whole store.†</p>
<p>Admittedly, Apple&#8217;s own iPhone applications like Safari don&#8217;t currently come with any similarly-worded warning notices, but we can only assume that it&#8217;s just a matter of time before this insignificant oversight is rectified.</p>
<p>Be assured, we take this new-found responsibility very seriously. And so do all our cats.</p>
<p>† We are also considering expanding Twitkitteh to function as a password management application for cats, because of the disgusting content we heard is present in every copy of Selznick Scientific Software&#8217;s <a href="http://www.selznick.com/products/passwordwallet/iphone/index.htm" target="_blank">PasswordWallet</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/07/twitkitteh-the-safe-twitter-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Make Your iPhone App Launch Faster</title>
		<link>http://www.dragthing.com/blog/2009/07/how-to-make-your-iphone-app-launch-faster/</link>
		<comments>http://www.dragthing.com/blog/2009/07/how-to-make-your-iphone-app-launch-faster/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 11:13:30 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[pcalc]]></category>
		<category><![CDATA[performance testing]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=246</guid>
		<description><![CDATA[So, one of the most common complaints about PCalc before 1.7 is that it took too long to launch &#8211; around four seconds on an iPhone 1st Generation. I actually got emails accusing me of having a massive ego because I was making the splash screen stay up for so long. Now, I may have [...]]]></description>
			<content:encoded><![CDATA[<p>So, one of the most common complaints about <a href="http://www.pcalc.com/iphone/" target="_blank">PCalc</a> before 1.7 is that it took too long to launch &#8211; around four seconds on an iPhone 1st Generation. I actually got emails accusing me of having a massive ego because I was making the splash screen stay up for so long. Now, I may have a massive ego anyway, but that&#8217;s not why it was happening.</p>
<p><span id="more-246"></span></p>
<p>While an iPhone app is being loaded by the OS, it displays a fixed image known as the &#8220;Default.png&#8221;. The idea is that this image looks close to how your application will appear when it is running, so the user thinks your app has launched quicker than it actually has. This image is fixed at the point the application is built, it can&#8217;t be changed by the developer afterwards (some of the Apple apps <em>do</em> change it, but that&#8217;s another story). This approach doesn&#8217;t work well for many applications.</p>
<p>Firstly, if your application can be configured in different ways, the default image isn&#8217;t going to match and it will be jarring to the users when it changes. In the initial release of PCalc, I used a &#8220;Default.png&#8221; which looked like the default vertical layout of the calculator with the screen dimmed.</p>
<p><img class="aligncenter" src="http://s3.amazonaws.com/tlasystems/blog/OldDefault.png" alt="" width="320" height="480" /></p>
<p>In later versions of PCalc I added the different key layouts and the themes, so the initial state of the calculator could look very different to the default image. So, I got complaints &#8211; people thought I was loading the calculator twice, once with the defaults and once with their settings. It felt unnecessary and confusing.</p>
<p>The other problem is that if your application takes a long time to start up, and the default image looks too much like the running application, people will tap away on it, thinking that it&#8217;s already launched. Nothing will happen and they will be frustrated. This also happened with PCalc.</p>
<p>So, I changed the default image to be a nice splashscreen with a big version of the logo like so:</p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" src="http://s3.amazonaws.com/tlasystems/blog/Default.png" alt="" width="320" height="480" /></p>
<p>Problem solved? No. The reason Apple used this default image technique (taken from Dashboard widgets) is to make the apps feel like they were launching faster. Now there was no jarring transition, but people stared at my splashscreen for four seconds before the calculator appeared and it felt like an eternity while they were waiting to start typing. And some people thought I just wanted my name in lights. As I added more and more features to PCalc, the startup got slower and slower, and people started complaining again.</p>
<p>Ok, so how did I fix this, and how can you do something similar?</p>
<p>Firstly, you need to be smarter about what work you do when your application initialises. PCalc was already pretty optimised &#8211; I don&#8217;t build the views for the horizontal layout of the calculator until you actually rotate it for example &#8211; but there was still a lot happening. The theme engine I took from <a href="http://www.dragthing.com/" target="_blank">DragThing</a> is pretty complex &#8211; all the buttons are drawn programatically from a description in an XML file. I cache lots of images so I never draw the same thing twice, so for example, once I&#8217;ve drawn the background of one button, I reuse that for the next one if it the same size. But it all adds up.</p>
<p>I needed to work out exactly which bits of the code were taking the most time during initialisation. To do this, I used the Shark and Instruments performance tools to get an idea of what code was executing at startup and what exactly was happening. You might think you know your code well, but it&#8217;s always good to look at it running to see if something is happening that you didn&#8217;t anticipate. To be honest, these tools are very powerful, but they don&#8217;t always give you simple answers.</p>
<p>Then, I fell back on a tried and tested debugging technique, the printf. I added code at the beginning of the main() function to take note of the time using CFAbsoluteTimeGetCurrent() and store it in a global variable. Then, I wrote a function that measured the time from that point, and printed out to the console how long things had taken. So I ended up with messages like:</p>
<blockquote><p>Time for Init: 0.89s<br />
Time for building layouts: 0.91s<br />
Time for  loading themes: 0.45s<br />
Time for drawing: 1.43s<br />
Total launch time: 3.68s</p></blockquote>
<p>It&#8217;s worth pointing out that there is very little point in doing performance testing against an app running in the iPhone Simulator &#8211; firstly, Macs tend to be way faster, and secondly the performance characteristics are not always the same &#8211; some things will be much slower than others on an actual iPhone. Do all your performance testing against your app running on a real device. Also, run the app a couple of times in a row &#8211; the first time the app is copied down to the device and run in the debugger it will be a good bit slower at starting up than the second time.</p>
<p>Some devices are faster than others as well. In my testing, an original iPhone took around 4 seconds to launch PCalc, an iPod Touch 2G took around 3 seconds, and an iPhone 3GS took around 2 seconds. If you are doing all your development on a 3GS or a Touch 2G, what feels fast to you might feel a good bit slower to somebody with an original iPhone. I try and do all my performance testing on my original iPhone, if it&#8217;s acceptable there, it will be amazing for everybody else.</p>
<p>Also, you want to make sure you are measuring the total startup time <em>including</em> drawing. At the end of your initialisation code when you have built all your views, and you think your app is running, the OS will call the drawRect method on any visible custom views before it displays them.</p>
<p>In the case of PCalc, this was a significant chunk of time, because drawing the LCD, for example, loaded all the images required for the numbers. And the first time I loaded an image, the OS needed to load up the required code to read a PNG file. And so on. What I did for the purposes of testing was work out the last view that was drawn, and put another call to my timing function in the drawRect so I could get the actual point in time where that was finished running.</p>
<p>Now that you have a good handle on where all the time is spent you can do something about it.</p>
<p>Here&#8217;s a good tip &#8211; if you have a routine that takes only 0.1s to run and it only runs once during startup, there is no point spending hours optimising it. Even if you can make it run twice as fast, you&#8217;ll still only be saving a small fraction of a second. Looks for the big ticket items and start with them. Don&#8217;t assume that something is slow, measure it first, or you might waste time optimising code that doesn&#8217;t need it.</p>
<p>But you might also find that you are doing things during initialisation that you don&#8217;t need to do at all. Don&#8217;t build things that you don&#8217;t need yet, try and do everything only when it&#8217;s required. For example, in PCalc, I used to initialise the conversions and constants at startup, which involved reading in all the data from various XML files. It didn&#8217;t take too long, but there was still no reason to do it at startup &#8211; now, I wait until the user actually presses the conversions or constants buttons, and do it there.</p>
<p>Anyway, after spending a week sitting measuring everything, and optimising code along the way, I managed to shave a whole second off the launch time &#8211; three seconds instead of four on my iPhone. It doesn&#8217;t seem like a lot of saving for all that work, but it did make a difference. The key is to test everything &#8211; do some benchmarking every time you make a change so you can see if your changes are helping or not.</p>
<p>Along the way, I had an another idea. Going back to the Default.png image file, I said some of the Apple applications modify it. What they do is save an image of the application when they quit and save the state of the application, that way, the default image will match the real application when it&#8217;s finished loading again. I couldn&#8217;t do this with PCalc because third-party apps can&#8217;t replace the default image.</p>
<p>But what I could do is keep the splashscreen default image, and then as quickly as possible display my own saved image before I loaded the calculator. So, I moved all the initialisation code <em>out</em> of the initialisation. When PCalc starts up now, all it does now is look for a &#8220;Loading.png&#8221; file in the documents folder and displays it in a simple image view. If it&#8217;s not present, it displays a copy of the splashscreen image. The last thing I do  is call -performSelector:afterDelay: to schedule a call of the real initialisation code later.</p>
<p>Then, because my initialisation is over and my app is now running (even though it&#8217;s not doing anything other than displaying an image), the OS hides the default image and zooms in the actual application which is showing my loading image. This happens really quickly and gets rid of the splashscreen within a second.</p>
<p>I created the loading image something like this:</p>
<blockquote>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, -webkit-fantasy;">UIImage * theLayerImage = <span style="color: #aa0d91;">NULL</span>;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px;"><span style="white-space: pre;"> </span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">UIGraphicsBeginImageContext([[UIScreen mainScreen] bounds].size);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="white-space: pre;"><span style="white-space: normal;">[the<span style="color: #aa0d91;">View</span>.layer renderInContext:UIGraphicsGetCurrentContext()];</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="white-space: pre;">theLayerImage </span>= UIGraphicsGetImageFromCurrentImageContext();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">UIGraphicsEndImageContext();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px;"><span style="white-space: pre;"> </span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">NSData *imageData =</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">[NSData dataWithData:UIImagePNGRepresentation(theLayerImage)];</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">[imageData writeToFile:pathToLoadingImage atomically:<span style="color: #aa0d91;">YES</span>];</p>
</blockquote>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, fantasy; font-size: 13px; line-height: 19px;">So, now I have an accurate, if fake, image of my application being displayed while my real initialisation code is being run. To avoid people thinking it was really running and trying to type on it before it was ready, I decided to display a little loading dialog like so.</span></p>
<p><img class="aligncenter" src="http://s3.amazonaws.com/pcalc/iphone/images/1.7/15.png" alt="" width="328" height="488" /></p>
<p>As I discovered, the UIActivityIndicatorView animation is run on a thread by the system &#8211; that means, even though my application is blocked inside its initialisation code while it starts up, the spinner will still be spinning. This looks great, and gives feedback to the user that <em>something</em> is happening at least. I wrote lots of silly startup messages which are displayed randomly, and got some great suggestions from my testers too.</p>
<p>So, I had got the startup time down to three seconds from four with all my initial optimisations. How long did it take to launch with the new loading screen? Three and a half seconds. Hmm. But it <em>felt</em> a lot faster because you saw the calculator appear almost instantly, and then there was at least some feedback that things were happening under the surface.</p>
<p>So I did some user testing. Everybody I tested it on said that the 3.5 second launch time with the loading screen was faster than the 3 second launch time with just the plain splashscreen, so it was clear that was the way to go.</p>
<p>There was another thing I hadn&#8217;t considered. I got complaints from my testers who had an iPhone 3GS or a iPod Touch 2G that they couldn&#8217;t read the messages on the loading dialog. They went past too quickly, and it felt annoying. The time it took to do all my initialisation on those devices was less than a second. So what I did was not show the loading dialog and spinner, but still display the fake cached image of the calculator.</p>
<p>Because the time is so short, it looks like the calculator appears instantly, but there a short delay before the application is really running. But most people don&#8217;t instantly tap the buttons, so I figured I might get away with it.</p>
<p>Of course, I needed to test what happened if people did tap immediately. And I made another discovery. Because I had started the application event loop running before doing my initialisation, any taps on the screen were queued up correctly. So if you tapped 1, 2, 3 on my loading picture, when the real event loop is finally running I would still get the taps and not actually miss anything.</p>
<p>The end result is that PCalc feels like it loads even faster than it should on a 3GS or a Touch 2G. I experimented with hiding the dialog on slower devices too, but the delay was just a little bit too long before you saw the results of your typing, and the magic spell was broken.</p>
<p>In any case, I think this technique of saving an image on quit and displaying that while your true initialisation happens really helps in making your application feel faster to launch. If your initialisation doesn&#8217;t take very long, you can probably skip showing any kind of loading dialog on top of it, even on a slower device.</p>
<p>That&#8217;s all for this lesson, I hope it proves helpful!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/07/how-to-make-your-iphone-app-launch-faster/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>10 is the new 10</title>
		<link>http://www.dragthing.com/blog/2009/07/10-is-the-new-10/</link>
		<comments>http://www.dragthing.com/blog/2009/07/10-is-the-new-10/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 13:44:40 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[pcalc]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=233</guid>
		<description><![CDATA[I&#8217;ve just been reading David Barnard&#8217;s &#8220;5 is the new 10&#8221; post on App Store pricing and how he&#8217;s reduced all of the AppCubby apps from $10 to $5. I can see exactly why he did it, but I&#8217;m still a little bit disappointed. Not with David, I should hasten to add. But the comment by Apple&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just been reading David Barnard&#8217;s &#8220;<a href="http://www.appcubby.com/blog/files/5_is_the_new_10.html" target="_blank">5 is the new 10</a>&#8221; post on App Store pricing and how he&#8217;s reduced all of the AppCubby apps from $10 to $5. I can see exactly why he did it, but I&#8217;m still a little bit disappointed. Not with David, I should hasten to add.</p>
<p><span id="more-233"></span></p>
<p>But the comment by Apple&#8217;s Tim Cook during the <a href="http://www.macworld.com/article/141819/2009/07/apple_financials.html" target="_blank">earnings call</a> on Tuesday in response to a question on falling prices annoyed me somewhat:</p>
<blockquote><p>Developer sets the price, so it&#8217;s up to them what to charge. They&#8217;re doing what any good business person would do, doing the elasticity analysis, and figuring out where to sell price. As install base grows, it makes more and more sense to have lower prices, but that&#8217;s totally up to developers.</p></blockquote>
<p><a href="http://www.pcalc.com/" target="_blank">PCalc</a>, as you might know, is still $10. We just released a new 1.7 update this week &#8211; the tenth release of PCalc for the iPhone &#8211; which is getting some good press and positive feedback from users. Sales have been the best we&#8217;ve seen for a while, and so far, we&#8217;ve not had any complaints about the price from our users. But I think expectations on price are moving in the wrong direction, and statements like that from Apple don&#8217;t really help matters.</p>
<p>I still don&#8217;t think that lower than $10 price points are sustainable for more niche apps like PCalc, especially if you want to see continuous development.</p>
<p>A few months ago, I <a href="http://www.dragthing.com/blog/?p=197">experimented with halving the price</a>. We hadn&#8217;t done a release for a while as I&#8217;d been away the previous month and sales had slowly fallen since the 1.5 release. I didn&#8217;t have anything ready to go at that point as I was working away on a version for (the then unreleased) iPhone OS 3.0. So, a discount made sense to try to keep PCalc in the public eye in lieu of a actual release.</p>
<p>The theory is that reducing the price will improve unit sales. The catch is of course that you don&#8217;t get as much revenue per unit. When we cut the price, I sent out press releases, and we saw a sales spike very similar to that of a new release. Over the course of the next month, sales tapered off again. We then released version 1.6, put the price went back up to $10, and saw another spike and gradual tapering off in sales.</p>
<p>Compared to the month following the release of PCalc 1.5, for the month of the price cut we saw an 82% increase in unit sales. Which sounds good, until you look at the total revenue figure, and that&#8217;s actually a <em>fall</em> of around 10% overall. In all cases I&#8217;m looking at the 31 days from date of release.</p>
<p>Compared to the month following the release of PCalc 1.6, the sale month was only a 23% increase in unit sales, or 39% <em>less</em> in total revenue.</p>
<p>So, compared to the releases before and after, halving the price to $5 failed to increase our sales by the required amount. We might have made a little more money than we would have otherwise of course &#8211; if we didn&#8217;t do the promotion and didn&#8217;t get the resultant publicity, we wouldn&#8217;t have seen any sales spike at all.</p>
<p>But in any case, it wasn&#8217;t the significant boost in sales that I expected it to be, and it doesn&#8217;t suggest to me that halving the price on a permanent basis would do us much good in the long term. We would certainly get an initial spike, but the level of sales when that has tailed off wouldn&#8217;t be twice what it is now.</p>
<p>Really, I think it depends on who your customers are, and what your product is. The market for games seems to be extremely price sensitive for example. If you have a product which has very broad consumer appeal, I can see how a lower price can help, especially if it&#8217;s at a low enough point where you&#8217;ll get impulse buys. Even I bought Peggle when it was 99c.</p>
<p>But if your app is unlikely to ever be in the top 100 because it doesn&#8217;t have that broad appeal, reducing your price is more than likely just going to cut your revenue in the long term.</p>
<p>For the normal level of sales we get with PCalc, $10 is probably the lowest price we can charge that justifies the time we currently spend working on it. Even then, as a business, we&#8217;re only just breaking even.</p>
<p>And customers, if you want to see good quality software in the app store in the long term, you should really be asking developers to put their prices <em>up</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/07/10-is-the-new-10/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New iTunes Connect bug?</title>
		<link>http://www.dragthing.com/blog/2009/06/new-itunesconnect-bug/</link>
		<comments>http://www.dragthing.com/blog/2009/06/new-itunesconnect-bug/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 14:25:20 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[itunes connect]]></category>
		<category><![CDATA[pcalc]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=229</guid>
		<description><![CDATA[Update, 01:36am &#8211; this bug was just fixed in iTunes Connect, and PCalc has been submitted correctly. Thanks Apple! Original post: I&#8217;m currently trying to submit an update to PCalc for iPhone, built with the GM iPhone 3.0 SDK, and it&#8217;s failing. The &#8220;Contact Us&#8221; section of iTunes Connect doesn&#8217;t actually let you contact anybody, [...]]]></description>
			<content:encoded><![CDATA[<p>Update, 01:36am &#8211; this bug was just fixed in iTunes Connect, and PCalc has been submitted correctly. Thanks Apple!</p>
<p>Original post:</p>
<p>I&#8217;m currently trying to submit an update to PCalc for iPhone, built with the GM iPhone 3.0 SDK, and it&#8217;s failing. The &#8220;Contact Us&#8221; section of iTunes Connect doesn&#8217;t actually let you contact anybody, except for very specific problems, so I&#8217;m at a loss at how to proceed. I throw myself on the mercy of the crowd.</p>
<p><span id="more-229"></span></p>
<p>I&#8217;m clicking &#8220;Manage Your Applications&#8221;, then &#8220;Update Application&#8221; for the app in question. After I fill in the version number and release notes, upload the app, and tick the &#8220;tested with iPhone OS 3.0&#8243; checkbox, when I click &#8220;Save Changes&#8221; it says:</p>
<p>&#8220;The binary you uploaded was invalid. The bundle identifier is already in use by a different software package.&#8221;</p>
<p>I am uploading the right application, and the bundle identifier is identical to that of the application I&#8217;m trying to update. I did however manage to update the free &#8220;PCalc Lite&#8221; app, which was built in exactly the same way.</p>
<p>What I wonder is if because I have a &#8220;com.pcalc.mobile.lite&#8221; bundle ID for PCalc Lite, it won&#8217;t accept the &#8220;com.pcalc.mobile&#8221; ID for the full version because it considers it in use &#8211; it&#8217;s worked fine up until now of course.</p>
<p>Could it really be doing a comparison of &#8220;com.pcalc.mobile&#8221; and &#8220;com.pcalc.mobile.lite&#8221; but using the length from the first string for the comparison?</p>
<p>Somebody else is experiencing the same thing today it seems:</p>
<p><a href="https://devforums.apple.com/thread/18807?tstart=0">https://devforums.apple.com/thread/18807?tstart=0</a></p>
<p>I realise the chance of getting an answer this week (let alone a fix) is going to be next to impossible, but this is precisely the week it&#8217;s needed if I&#8217;m going to submit the build in time for the 3.0 rollout. Sigh&#8230;</p>
<p>The Info.plist file for the app looks like:</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />
&lt;!DOCTYPE plist PUBLIC &#8220;-//Apple//DTD PLIST 1.0//EN&#8221; &#8220;http://www.apple.com/DTDs/PropertyList-1.0.dtd&#8221;&gt;<br />
&lt;plist version=&#8221;1.0&#8243;&gt;<br />
&lt;dict&gt;<br />
&lt;key&gt;CFBundleDevelopmentRegion&lt;/key&gt;<br />
&lt;string&gt;en&lt;/string&gt;<br />
&lt;key&gt;CFBundleDisplayName&lt;/key&gt;<br />
&lt;string&gt;PCalc&lt;/string&gt;<br />
&lt;key&gt;CFBundleExecutable&lt;/key&gt;<br />
&lt;string&gt;PCalc&lt;/string&gt;<br />
&lt;key&gt;CFBundleIdentifier&lt;/key&gt;<br />
&lt;string&gt;com.pcalc.mobile&lt;/string&gt;<br />
&lt;key&gt;CFBundleInfoDictionaryVersion&lt;/key&gt;<br />
&lt;string&gt;6.0&lt;/string&gt;<br />
&lt;key&gt;CFBundleName&lt;/key&gt;<br />
&lt;string&gt;PCalc&lt;/string&gt;<br />
&lt;key&gt;CFBundlePackageType&lt;/key&gt;<br />
&lt;string&gt;APPL&lt;/string&gt;<br />
&lt;key&gt;CFBundleResourceSpecification&lt;/key&gt;<br />
&lt;string&gt;ResourceRules.plist&lt;/string&gt;<br />
&lt;key&gt;CFBundleSignature&lt;/key&gt;<br />
&lt;string&gt;P©al&lt;/string&gt;<br />
&lt;key&gt;CFBundleSupportedPlatforms&lt;/key&gt;<br />
&lt;array&gt;<br />
&lt;string&gt;iPhoneOS&lt;/string&gt;<br />
&lt;/array&gt;<br />
&lt;key&gt;CFBundleVersion&lt;/key&gt;<br />
&lt;string&gt;1.6&lt;/string&gt;<br />
&lt;key&gt;DTPlatformName&lt;/key&gt;<br />
&lt;string&gt;iphoneos&lt;/string&gt;<br />
&lt;key&gt;DTSDKName&lt;/key&gt;<br />
&lt;string&gt;iphoneos3.0&lt;/string&gt;<br />
&lt;key&gt;MinimumOSVersion&lt;/key&gt;<br />
&lt;string&gt;2.2&lt;/string&gt;<br />
&lt;key&gt;UIStatusBarStyle&lt;/key&gt;<br />
&lt;string&gt;UIStatusBarStyleBlackTranslucent&lt;/string&gt;<br />
&lt;/dict&gt;<br />
&lt;/plist&gt;</p></blockquote>
<p>The current app details in iTunesConnect say:</p>
<table class="meta-data" border="0" cellspacing="0" cellpadding="0" width="100%" align="center">
<tbody>
<tr>
<td class="metadata-field-details-label">Application Name :</td>
<td class="metadata-field-details-name">PCalc RPN Calculator</td>
</tr>
<tr>
<td class="metadata-field-details-label">Apple ID :</td>
<td class="metadata-field-details-name">284666222</td>
</tr>
<tr>
<td class="metadata-field-details-label">Bundle Identifier :</td>
<td class="metadata-field-details-name">com.pcalc.mobile</td>
</tr>
<tr>
<td class="metadata-field-details-label">Localizations :</td>
<td class="metadata-field-details-name">( &#8220;English&#8221; )</td>
</tr>
<tr>
<td class="metadata-field-details-label">Prerendered Icon Flag :</td>
<td class="metadata-field-details-name">false</td>
</tr>
<tr>
<td class="metadata-field-details-label">Original Zip File Name :</td>
<td class="metadata-field-details-name">PCalc.zip</td>
</tr>
<tr>
<td class="metadata-field-details-label">Bundle Short Version String :</td>
<td class="metadata-field-details-name"></td>
</tr>
<tr>
<td class="metadata-field-details-label">Bundle Version :</td>
<td class="metadata-field-details-name">1.5</td>
</tr>
<tr>
<td class="metadata-field-details-label">Minimum OS Requirements :</td>
<td class="metadata-field-details-name">2.1</td>
</tr>
</tbody>
</table>
<p>I&#8217;m at a loss&#8230; Any thoughts?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/06/new-itunesconnect-bug/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bundlewars, The Liveblog.</title>
		<link>http://www.dragthing.com/blog/2009/06/bundlewars-the-liveblog/</link>
		<comments>http://www.dragthing.com/blog/2009/06/bundlewars-the-liveblog/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 08:01:52 +0000</pubDate>
		<dc:creator>James Thomson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[bundles]]></category>
		<category><![CDATA[john casasanta]]></category>
		<category><![CDATA[macheist]]></category>

		<guid isPermaLink="false">http://www.dragthing.com/blog/?p=221</guid>
		<description><![CDATA[So, it seems that I&#8217;ve annoyed John Casasanta, director of MacHeist, with my discussion about bundles and taking part in the bundle at TheMacBundles.com. I just got the following in my inbox: James and Jon: I&#8217;ve just posted my rebuttal to your blog posts in the MacHeist forums: http://www.macheist.com/forums/viewtopic.php?pid=324361#p324361 For what it&#8217;s worth, I&#8217;ve been [...]]]></description>
			<content:encoded><![CDATA[<p>So, it seems that I&#8217;ve annoyed John Casasanta, director of <a href="http://www.macheist.com/">MacHeist</a>, with my <a href="http://www.dragthing.com/blog/?p=213">discussion about bundles</a> and taking part in the bundle at <a href="http://TheMacBundles.com">TheMacBundles.com</a>.</p>
<p><span id="more-221"></span></p>
<p>I just got the following in my inbox:</p>
<blockquote><p>James and Jon:</p>
<p>I&#8217;ve just posted my rebuttal to your blog posts in the MacHeist forums:</p>
<p><a href="http://www.macheist.com/forums/viewtopic.php?pid=324361#p324361">http://www.macheist.com/forums/viewtopic.php?pid=324361#p324361</a></p>
<p>For what it&#8217;s worth, I&#8217;ve been a user of DragThing for years, James, and that&#8217;s one of the reasons we wanted it included in MacHeist 3. You chose not to participate and now you&#8217;re making several false statements about us and other bundle promoters.</p>
<p>So, to reiterate what I wrote in my post, it&#8217;s completely your right to partake in whatever bundle you wish&#8230; or to not partake in any. BUT&#8230; it&#8217;s your RESPONSIBILITY to not make false statements. I&#8217;m seriously hoping that you&#8217;re now rethinking the false, damaging statements that you&#8217;ve made and that you&#8217;ll post a retraction. The statements I made in my post are FACTUAL.</p>
<p>I love how you&#8217;re all on your high-horse about fairness, farmers market and crap, yet you ALL have ZERO ISSUE with posting outright lies. Ethics and morality, people&#8230;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
John Casasanta</p></blockquote>
<p>His referenced post on the MacHeist forums states:</p>
<blockquote><p>I still have to take serious issue with outright false statements like:</p>
<p>&#8220;Instead of most of the profits going to a third-party company with a background in marketing&#8230;&#8221;</p>
<p>&#8220;&#8230;instead of getting way less than a dollar per copy, or &#8211; even worse &#8211; only getting a flat fee regardless of the number of copies sold&#8230;&#8221;</p>
<p>&#8220;So if it sells, say, a couple of thousand copies in total, that&#8217;s a much better return than we might see from many tens of thousands of sales of some other bundles.&#8221;</p>
<p>&#8220;Those people usually reap the bulk of the profits from the sale, passing only a small percentage of the sale price on to the developers of the software.&#8221;</p>
<p>Overwhelmingly, the profits go to charity. The developers got the bulk of the earnings. We paid our staff. And the principals earned a fair amount, considering the effort we put into things.</p>
<p>So if Mr. DragThing and Sir Default Folder choose this &#8220;fair&#8221; bundle over ours or MUPromo, that&#8217;s totally their right. They simply shouldn&#8217;t go around spreading complete and utter bullshit, though.</p>
<p>All of our &#8220;slick, fancy, Madison Ave. marketing&#8221; does, indeed count for something&#8230; this new bundle still has the bonus app offer for when 2,000 bundles are sold, and I suspect that this offer will last the duration of the bundle. So I&#8217;ve heard that the devs are getting like $5 per bundle sold or something. Assume that they&#8217;ll sell around 1,000 bundles or so (I&#8217;m basing this estimate on what I heard the last MacBundleBox sold at like 800 or something) and that means that each dev will make around $5,000 from this promo.</p>
<p>Compare that with MacHeist 3, where each dev, at minimum, made what most people would consider a really good year&#8217;s salary for two weeks of a bit of an extra support load. And that&#8217;s saying a lot in this crappy economy.</p>
<p>If devs want the &#8220;FAIREST BUNDLE EVAR&#8221; then they can just continue selling a &#8220;bundle of 1&#8243; at 100% price.</p>
<p>Adapt or die&#8230;</p></blockquote>
<p>So, aside from the fact that I wasn&#8217;t singling out MacHeist specifically, I feel I have to respond. Here&#8217;s what I just emailed back to him.</p>
<blockquote><p>That&#8217;s very interesting John. I&#8217;ll give you two concrete examples:</p>
<p>I was offered a fixed fee of $1200 (later increased to $2000) by Stephen Christopher in February to include PCalc as a bonus app in MacHeist 3. You will probably argue that it wasn&#8217;t intended as a &#8220;full&#8221; member of the bundle, but from my perspective, you wanted to give away an unlimited number of copies of my application for a fixed fee.</p>
<p>Calling it a &#8220;marketing opportunity&#8221; doesn&#8217;t change the fact that you are paying a tiny amount to a developer to boost the popularity of your bundle significantly. That is exactly the kind of behaviour that I objected to in my post, and was what drove me to participate in this bundle as they seemed to be genuinely trying to do something different.</p>
<p>Phill Ryu offered me $2 per copy for DragThing last year for MacHeist 2 in February 2008, again as a bonus app, which I did decline. You didn&#8217;t ask me about including DragThing this year, so I don&#8217;t know exactly how much you were planning to offer this time around. But you say I chose not to participate this year which is &#8211; in your own words &#8211; &#8220;an outright lie&#8221;, as I was never asked anything about including DragThing in MacHeist 3.</p>
<p>I have been offered similarly low &#8211; and lower &#8211; amounts from other bundles to take part. Did any of the participants in MacHeist 3 get around $5 per copy sold as every single developer is from this bundle? Are all the participants getting the same amount? That, in my book, is a pretty good definition of fair.</p>
<p>You say &#8220;adapt or die&#8221; in your post. That is exactly my fear. If developers &#8211; and by that I mean ALL developers &#8211; can&#8217;t sell their software at a fair price that will support them in the long term, then they *will* start to die out. If eight or ten developers made a decent wage out of Mac Heist 3 &#8211; and I take your word for that &#8211; and, let&#8217;s say, another eight or ten do the same from MacUpdate, then what happens to the other thousands of developers out there who are trying to sell their software, but nobody is buying it because they are waiting to see if it turns up in another bundle?</p>
<p>I don&#8217;t think this bundle is perfect either, not by a long shot, but I believe it comes from a goal to support developers first and that&#8217;s why I took part.</p>
<p>I can only speak for the experiences I have had.</p>
<p>James</p></blockquote>
<p>The conversation has subsequently moved to the MacHeist forums &#8211; you can find the thread <a href="http://www.macheist.com/forums/viewtopic.php?pid=324361#p324361">here</a>. Rather than copy everything in three places, I&#8217;m off to the lions&#8217; den&#8230; See you there?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dragthing.com/blog/2009/06/bundlewars-the-liveblog/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 2.233 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-22 17:54:41 -->

