<?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>Daze End Software</title>
	<atom:link href="http://software.dazeend.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.dazeend.org/blog</link>
	<description></description>
	<lastBuildDate>Mon, 05 Jul 2010 03:50:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The iPhone Developer Community</title>
		<link>http://software.dazeend.org/blog/2010/07/the-iphone-developer-community/</link>
		<comments>http://software.dazeend.org/blog/2010/07/the-iphone-developer-community/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 03:50:18 +0000</pubDate>
		<dc:creator>Charles Perry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.dazeend.org/blog/?p=153</guid>
		<description><![CDATA[Being an independent iPhone developer is great, but it comes with some limitations that larger software shops aren&#8217;t as constrained by. In particular, time is a resource that is always in short supply. I&#8217;m the developer, designer, and support line for Daze End Software, and unfortunately, there never seems to be enough time in the [...]]]></description>
			<content:encoded><![CDATA[<p>Being an independent iPhone developer is great, but it comes with some limitations that larger software shops aren&#8217;t as constrained by. In particular, time is a resource that is always in short supply. I&#8217;m the developer, designer, and support line for Daze End Software, and unfortunately, there never seems to be enough time in the day to get done everything that I&#8217;d like to do. So it&#8217;s nice that there&#8217;s a supportive community of indie iPhone developers that I can lean on. These guys are great. They offer a sympathetic ear when things go wrong, they offer advice when I need guidance, and occasionally they save me several hours of work.</p>
<p>Such was the situation that I encountered recently with the release of iOS 4 for the iPhone. I received a bug report from a customer that I just could not reproduce. (And as all developers know, if you can&#8217;t reproduce a bug, it&#8217;s awful hard to fix the bug.) As it turns out, the reason I couldn&#8217;t reproduce the bug is because I was in the wrong timezone. How did I figure that out? Because the community of iPhone developers is awesome and generous with their time.</p>
<p>A Google search turned up one lonely description of a problem in another developer&#8217;s app which sounded similar to the bug that had been reported in mine. I&#8217;d never met this developer before (either in real life, or online), but I took a chance and emailed him anyway. This developer, Greg, took the time to respond to my out-of-the-blue email with a detailed description of the root cause of the problem and the steps needed in order to reproduce it. He saved me hours of time in debugging — hours that I would much rather spend creating new features than debugging old ones.</p>
<p>So what&#8217;s the point of this post? It&#8217;s really just an excuse to give a shout out to Greg at <a href="http://www.moremobilesoftware.com/">More Mobile Software</a> who took the time to help out a fellow developer. Thanks Greg! And thanks also to all the other iPhone developers out there  that are helpful, supportive, and generally make iPhone development an enjoyable pursuit.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.dazeend.org/blog/2010/07/the-iphone-developer-community/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Action Lists 2.5.0 Now Available</title>
		<link>http://software.dazeend.org/blog/2010/07/action-lists-2-5-0-now-available/</link>
		<comments>http://software.dazeend.org/blog/2010/07/action-lists-2-5-0-now-available/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 21:13:57 +0000</pubDate>
		<dc:creator>Charles Perry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.dazeend.org/blog/?p=149</guid>
		<description><![CDATA[I&#8217;ve just received word from Apple that version 2.5.0 of Action Lists  has been approved. I have put Action Lists back on sale, and it should  be appearing in the App Store over the next 24 hours. This version fixes  the bugs that were reported when running under iOS 4.
I  would [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just received word from Apple that version 2.5.0 of Action Lists  has been approved. I have put Action Lists back on sale, and it should  be appearing in the App Store over the next 24 hours. This version fixes  the bugs that were reported when running under iOS 4.</p>
<p>I  would again like to apologize for the problems that many of you  encountered with Action Lists over the last several days, and for the inconvenience that it caused you. Hopefully, most of you were blissfully unaware of the problems since I removed Action Lists from the App Store, but for those of you who were affected this latest update should fix your issues and I&#8217;m sorry for the trouble that you were caused.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.dazeend.org/blog/2010/07/action-lists-2-5-0-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Action Lists Temporarily Unavailable</title>
		<link>http://software.dazeend.org/blog/2010/06/action-lists-temporarily-unavailable/</link>
		<comments>http://software.dazeend.org/blog/2010/06/action-lists-temporarily-unavailable/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 17:23:00 +0000</pubDate>
		<dc:creator>Charles Perry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.dazeend.org/blog/?p=145</guid>
		<description><![CDATA[I&#8217;ve posted all the gritty details in the forums, but I&#8217;m still getting lots of questions about Action Lists not being in the App Store. Here&#8217;s a quick explanation of what happened.
With the release of iOS 4 for the iPhone, a serious bug was discovered that didn&#8217;t exist under previous versions of the operating system. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve posted all the gritty details in the forums, but I&#8217;m still getting lots of questions about Action Lists not being in the App Store. Here&#8217;s a quick explanation of what happened.</p>
<p>With the release of iOS 4 for the iPhone, a serious bug was discovered that didn&#8217;t exist under previous versions of the operating system. In order to save my customers from experiencing problems, I have temporarily removed Action Lists from sale in the App Store. I am currently working on a fix and I will hopefully submit a new version to Apple later today or tomorrow. The decision to temporarily remove Action Lists from the App Store will undoubtedly cost me sales, but I believe it&#8217;s in the best interests I&#8217;d my customers.</p>
<p>I will make another blog post when Action Lists is again available in the App Store, and I&#8217;ll also be making periodic posts in the forums to keep people up to date. I&#8217;m very sorry for the inconvenience that this has caused all of you.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.dazeend.org/blog/2010/06/action-lists-temporarily-unavailable/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Action Lists &#8211; GTD Task Manager v2.3.3</title>
		<link>http://software.dazeend.org/blog/2010/03/action-lists-gtd-task-manager-v2-3-3/</link>
		<comments>http://software.dazeend.org/blog/2010/03/action-lists-gtd-task-manager-v2-3-3/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 22:23:41 +0000</pubDate>
		<dc:creator>Charles Perry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.dazeend.org/blog/?p=142</guid>
		<description><![CDATA[Version 2.3.3 of Action Lists has been approved by Apple and should be appearing in the App Store over the next 24 hours. This release is a bug fix release that includes these changes:

Toodledo sync now detects when you have changed your account. This will prevent disappearing contexts and projects when syncing to a new [...]]]></description>
			<content:encoded><![CDATA[<p>Version 2.3.3 of Action Lists has been approved by Apple and should be appearing in the App Store over the next 24 hours. This release is a bug fix release that includes these changes:</p>
<ul>
<li>Toodledo sync now detects when you have changed your account. This will prevent disappearing contexts and projects when syncing to a new account for the first time.</li>
<li>Fixed Toodledo so that Active tasks that have their project set to &#8216;None&#8217; on Toodledo will have their status reset to &#8216;Next Action&#8217;. This will prevent the task from disappearing in Action Lists.</li>
<li>Fixed Toodledo sync so that any changes that are made to a task during sync (like its status) are immediately pushed back to the remote side. This will keep Action Lists and Toodledo better in sync.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://software.dazeend.org/blog/2010/03/action-lists-gtd-task-manager-v2-3-3/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Action Lists 2.3.0 Now Available</title>
		<link>http://software.dazeend.org/blog/2010/02/action-lists-2-3-0-now-available/</link>
		<comments>http://software.dazeend.org/blog/2010/02/action-lists-2-3-0-now-available/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 14:19:39 +0000</pubDate>
		<dc:creator>Charles Perry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.dazeend.org/blog/?p=133</guid>
		<description><![CDATA[I&#8217;m happy to announce that a new version of Action Lists GTD Task Manager is now available in the App Store. Highlights of this version include:

An &#8220;Active&#8221; status has been added that will allow users to better plan out their projects. (Active tasks don&#8217;t appear in action lists.)
 Automatic task queuing  that promotes Active tasks [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce that a new version of Action Lists GTD Task Manager is now available in the App Store. Highlights of this version include:</p>
<ul>
<li>An &#8220;Active&#8221; status has been added that will allow users to better plan out their projects. (Active tasks don&#8217;t appear in action lists.)</li>
<li> Automatic task queuing  that promotes Active tasks to Next Actions whenever a task is completed. (This is sometimes referred to as &#8220;sequential projects&#8221;.)</li>
<li>A new &#8220;Due Soon&#8221; feature that highlights tasks as their due date is approaching.</li>
<li>Localizations. Action Lists is now available in English, German, French, Spanish, and Japanese.</li>
</ul>
<p>A full list of changes in this version is below. For instructions on how to use these new features, please see the <a title="Action Lists documentation" href="Action Lists documentation">Action Lists documentation</a>.</p>
<p><span id="more-133"></span>Version 2.3.0 is a major update that adds some features and fixes some bugs. These changes are included in version 2.3.0:</p>
<ul>
<li>Now requires iPhone OS version 3.1 or later</li>
<li>Internationalized/Localized: Now available in: English, Spanish, French, German, and Japanese</li>
<li>Added &#8220;Active&#8221; status to for tasks that are not yet a &#8220;Next Action&#8221;</li>
<li>Added &#8220;Queue Next Action&#8221; option to each project. When this is turned on, a project tries to keep a task in the Next Action status. How it works: When the option is on and a task is completed, the next Active task is made a Next Action. Future tasks are avoided unless they&#8217;re all that&#8217;s left.</li>
<li>Added feature to warn users when a task is going to be &#8220;Due Soon.&#8221; Users can define what &#8220;due soon&#8221; means through the Settings app. When a task is due soon, its due date is displayed in orange text. When a context or project contains a task that is due soon, its badge turns orange.</li>
<li>Added optional feature that automatically changes the status of an Inbox item when its project or context is set.</li>
<li>More robust Toodledo synchronization</li>
<li>Added option to only count Next Actions for Project badges. When turned on, this option allows the user to scan the project list quickly to look for projects that have &#8220;stalled&#8221; due to a lack of Next Actions.</li>
<li>&#8220;Show Future Tasks&#8221; option can now be set (or unset) for each list individually</li>
<li>Changed behavior of project badges. Badges now count recursively through the entire project hierarchy, counting only tasks.</li>
<li>Made note view automatically go into editing mode if the note is empty.</li>
<li>Added new clipboard button to the background of Quick Task screen to better expose the feature that creates tasks from the contents of the iPhone clipboard.</li>
<li>Added feature to solicit an App Store review from users</li>
<li>Several interface improvements</li>
<li>Fixed several interface bugs</li>
<li>Fixed several memory leaks</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://software.dazeend.org/blog/2010/02/action-lists-2-3-0-now-available/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lessons Learned in iPhone Localization</title>
		<link>http://software.dazeend.org/blog/2010/02/lessons-learned-in-iphone-localization/</link>
		<comments>http://software.dazeend.org/blog/2010/02/lessons-learned-in-iphone-localization/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 22:41:49 +0000</pubDate>
		<dc:creator>Charles Perry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.dazeend.org/blog/?p=45</guid>
		<description><![CDATA[As a native of a relatively typical middle-American town, it&#8217;s easy to forget that most of the world doesn&#8217;t speak English. The iPhone is an international phenomenon though, and millions of its users either don&#8217;t speak English or don&#8217;t speak English as their first language. Even though language may separate us, the intimate relationship that [...]]]></description>
			<content:encoded><![CDATA[<p>As a native of a relatively typical middle-American town, it&#8217;s easy to forget that most of the world doesn&#8217;t speak English. The iPhone is an international phenomenon though, and millions of its users either don&#8217;t speak English or don&#8217;t speak English as their first language. Even though language may separate us, the intimate relationship that people have with their iPhone is universal. iPhones go everywhere with their owners and they contain incredible amounts of personal information. People feel a connection with their iPhone, so it makes sense that they want to operate it in their mother tongue.</p>
<p>With this in mind, I&#8217;m translating the next version of <a href="http://software.dazeend.org/action_lists/index.html">Action Lists</a> into a handful of languages. For those of you unfamiliar with the process, getting your iPhone app translated actually involves two separate processes. &#8220;Internationalization&#8221; is the process of tagging the strings in your program that you want to have translated. &#8220;Localization&#8221; is the process of presenting translated versions of those strings to the user. I&#8217;m not going to go into great depth about the process of internationalizing and localizing your app (Apple has pretty good <a href="http://developer.apple.com/iPhone/library/documentation/MacOSX/Conceptual/BPInternational/BPInternational.html">documentation</a> on the subject), but I will share some of the tips I discovered while localizing Action Lists; things that I wish I had known when I started.<span id="more-45"></span></p>
<p>First of all, if you haven&#8217;t already, read <a href="http://wilshipley.com/blog/2009/10/pimp-my-code-part-17-lost-in.html">Wil Shipley&#8217;s excellent blog post</a> on his localization strategy. The main idea is to minimize the number of files that you have to maintain. In a typical app, that might be a <code class="inline">.strings</code> file for the app, another <code class="inline">.strings</code> file for the settings bundle (if you set application preferences through the Settings app), and then localized versions of each NIB file that was created in Interface Builder. As Wil points out, maintaining multiple versions of NIB files is no fun at all. Any change has to be replicated in each localized version of the NIB. His solution was to create scripts that pull out all the strings for localization. His scripts work well enough for him (as he points out, he&#8217;s localized some high profile software using them), but it still seemed like a pretty fragile set up to me. My solution to localizing NIB files was to avoid the problem altogether. I simply didn&#8217;t rely on strings set in my NIB files. Instead, I explicitly initialized each string in the NIBs using an <code class="inline">IBOutlet</code> in the source code. That way the strings in my interface were internationalized in exactly the same way as other parts of my code.</p>
<p>While we&#8217;re on the topic of NIB files, keep in mind that when a string is translated to another language, it&#8217;s length is going to change. When you use Interface Builder to layout your labels, buttons, and other interface elements that contain text, make sure that you leave more room than you think is necessary. It&#8217;s not unusual for an English string to grow up to 150% of its original length when translated to a European language. By making your buttons and labels bigger than is needed for English, you&#8217;ll make your interface a little more flexible and spend less time fixing your interface layout later.</p>
<p>Now that we have the problem of NIBs out of the way, we can turn our attention to internationalizing the source code. Internationalizing strings in your source code is a pretty straightforward process. You need to identify every string that the user might encounter, and wrap it in the <code class="inline">NSLocalizedString</code> macro. <code class="inline">NSLocalizedString</code> takes two arguments. The first is the string that you want to internationalize. The second is a comment string that the translator can read in the <code class="inline">.strings</code> file. Although you can provide <code class="inline">nil</code> as the second argument, don&#8217;t do it! Making sure that each string has a comment is going to be a bit of pain right now, but it will be a huge help later. When you turn your strings over to the translator, he&#8217;s not going to have all of the context that you have. When he sees the word &#8220;Contact,&#8221; should he translate it as a new telephone number, or the state of two things touching? It might be obvious to you, but it won&#8217;t be to your translator. So comment the heck out of your strings. Give context for the string, note any length restrictions that exist, and give synonyms for any terms that might be ambiguous. Also, if some part of the string <em>shouldn&#8217;t</em> be translated (like the app name), note that too. Really, you might as well do all this up front, because if you don&#8217;t you&#8217;re going to spend even more time sorting it all out later.</p>
<p>There&#8217;s one last step to internationalizing your app, and that&#8217;s extracting the strings in your settings bundle if you set application preferences in the Settings app. Unfortunately, there&#8217;s no really good way to automatically extract all the strings from your settings bundle that the user might see. And you definitely <em>don&#8217;t</em> want to translate the text keys that are used to identify each setting in the source code. To make this process easier, and to reduce the chance of error, I ended up writing <a href="http://software.dazeend.org/downloads/plist_strings">a perl script</a> that extracts all the user-facing strings, avoids keys that shouldn&#8217;t be translated, and creates a properly formatted <code class="inline">.strings</code> file. It also handles multiple plists in case you have submenus in your preferences. Just run the script from the command line and specify the paths to the plists in the settings bundle as arguments. You&#8217;re welcome to use the script any way you want, but I will warn you that it can be fairly described as &#8220;quick and dirty.&#8221; It doesn&#8217;t even use the <code class="inline">use strict</code> pragma. (Heresy, I know!) All that being said, it worked great for me.</p>
<p>So at this point the app is internationalized and is ready to be localized. That is, it&#8217;s ready to be translated. But translated into which languages? And translated by whom? Well, as for the first question, that&#8217;s going to vary. I decided on Spanish and French (which covers most of the Americas), as well as German and Japanese because I thought that those countries were pretty big untapped markets for my app. Ultimately though, you&#8217;re going to have to make your own decision based on your own circumstances. The second question is a lot easier to answer though. Who should translate your app? <strong>Not you.</strong></p>
<p>We&#8217;ve all seen examples of poorly translated instructions that come with cheap products. (If you haven&#8217;t, search on the term &#8220;Engrish&#8221;. You&#8217;ll see plenty of examples.) When a translation isn&#8217;t fluent, it reflects poorly on the product. It can even be laughable. And you don&#8217;t want your app to be the butt of your potential customers&#8217; jokes. Don&#8217;t be the next example of &#8220;Engrish&#8221; in a foreign land. Don&#8217;t do the translation yourself. And don&#8217;t use Google to do the translation. You want a native speaker of the language to perform the localization; someone who understands not just the grammar, but also the patterns of speech that will make your translation sound fluent to the ears of other native speakers.</p>
<p>So where do you find native speakers to do the translation? Well, you might be able to find native speaking volunteers that already use your app. Although it might be tempting to use volunteer labor to localize your app, I recommend against it. You&#8217;re going to be making a lot of demands of your translators. You&#8217;ll be going back to them again and again asking for translations with slight changes in meaning, and repeatedly asking them to make translations shorter to fit the available space in your interface elements. You really should consider paying someone for their trouble, because it will be a bother.</p>
<p>If you search the web, you can find several services that advertise their translation services. I ended up going with <a href="http://www.icanlocalize.com">icanlocalize.com</a>, and I&#8217;ve been very happy with them so far. Turn around has been fast, their prices are affordable, and they have good customer service. Whoever you go with, expect translation to be a back-and-forth process. You&#8217;ll submit your strings, and receive translated strings in return. Once you receive your translations, you&#8217;ll need to test them in your interface to make sure that they fit in the available space. After testing, you&#8217;ll undoubtedly find strings that need to be shortened or changed, and you&#8217;ll re-submit them for re-translation. And you&#8217;ll keep doing this until everything is just right.</p>
<p>There are things that you can do make this process go more smoothly, though. First of all, as I said before, make sure that every string has a comment that describes its context. That will get you off to a good start. Then be incredibly clear when you re-submit strings for re-translation. Explain the problem, suggest alternate translations (if appropriate), and in general make it as clear as possible what it is that you want fixed. And don&#8217;t forget that a picture is worth a thousand words. Give your translator screenshots of your app with the problem translation on screen. This lets him estimate how much a translation needs to be shortened, and lets him see the context of the translation so that he can choose translations that are appropriate.</p>
<p>After the translation is complete, you&#8217;re not done though. If possible, you should beta test your translations with real users that speak the languages that you have chosen for localization. Even if you don&#8217;t usually beta test your releases, you should really do it this time. Real users have domain specific knowledge that translators just don&#8217;t have. Your beta testers will be able to spot a translation that might make literal sense, but is just a little off in the context of your app. When users of your app have a common jargon or slang, beta testing your localizations becomes even more important to ensure that your translations sound fluent.</p>
<p>Finally, don&#8217;t forget to localize your App Store materials. Have your App Store description translated and then use those translations in your localized App Store page. If your app uses user supplied data, you might also want to get some dummy strings translated for use in your App Store images. And don&#8217;t forget to run these materials past your localization beta testers. Presenting yourself in the App Store using your customers&#8217; native tongue will make the best first impression and hopefully make it more likely that your foreign speaking customers will purchase your app.</p>
<p>I hope that these &quot;lessons learned&quot; prove helpful to other iPhone app developers out there, and that it makes the process go a little quicker and easier for you than it was for me. I&#8217;m not sure that all my suggestions represent best practices, but they worked well for me. I hope they work for you too.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.dazeend.org/blog/2010/02/lessons-learned-in-iphone-localization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>50,000 Syncs and Counting</title>
		<link>http://software.dazeend.org/blog/2010/01/50000-syncs-and-counting/</link>
		<comments>http://software.dazeend.org/blog/2010/01/50000-syncs-and-counting/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 02:53:02 +0000</pubDate>
		<dc:creator>Charles Perry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.dazeend.org/blog/?p=38</guid>
		<description><![CDATA[It appears that Daze End Software has hit a bit of a milestone. When I looked at my Toodledo statistics recently, I noticed that my apps have been synchronized with Toodledo over 50,000 times in the last six months. Action Lists alone has been synchronized with Toodledo over 35,000 times during the same period. Some [...]]]></description>
			<content:encoded><![CDATA[<p>It appears that Daze End Software has hit a bit of a milestone. When I looked at my Toodledo statistics recently, I noticed that my apps have been synchronized with Toodledo over 50,000 times in the last six months. Action Lists alone has been synchronized with Toodledo over 35,000 times during the same period. Some kill joys will point out that these numbers are but a drop in the bucket compared to those of some other productivity apps, but I have to say I find it pretty exciting that hundreds of people have used my tools thousands of times to help get things done.</p>
<p>Some users of my apps might read this and have some concerns that I might know a little too much about their usage habits. Let me allay those fears. The statistics that I have access to through Toodledo are only gross totals. I can see, by app, the number of synchronizations and the number of unique users, and only for the past six months. So although I can see aggregate data, there&#8217;s no way for me to tell who&#8217;s syncing or how often they&#8217;re doing it.</p>
<p>I find it heartening that there are so many people out there that find my tools helpful and integrate them into their daily lives. If you&#8217;re one of those people, thanks, and stay tuned. There are more good things planned for the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.dazeend.org/blog/2010/01/50000-syncs-and-counting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App Store B is Dead</title>
		<link>http://software.dazeend.org/blog/2010/01/app-store-b-is-dead/</link>
		<comments>http://software.dazeend.org/blog/2010/01/app-store-b-is-dead/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 18:45:07 +0000</pubDate>
		<dc:creator>Charles Perry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.dazeend.org/blog/?p=33</guid>
		<description><![CDATA[For this post to make any sense, you&#8217;ll need to have already read Marco Arment&#8217;s article about the two App Stores. If you haven&#8217;t read it, please read it now. It&#8217;s a pretty good analysis of the pressures facing iPhone developers.
Ok, now that you&#8217;re up to speed, here&#8217;s the thing: App Store B is dead. [...]]]></description>
			<content:encoded><![CDATA[<p>For this post to make any sense, you&#8217;ll need to have already read Marco Arment&#8217;s article about <a title="The Two App Stores" href="http://www.marco.org/208454730">the two App Stores</a>. If you haven&#8217;t read it, please read it now. It&#8217;s a pretty good analysis of the pressures facing iPhone developers.</p>
<p>Ok, now that you&#8217;re up to speed, here&#8217;s the thing: App Store B is dead. It doesn&#8217;t exist. At least it doesn&#8217;t anymore. The path to success using an App Store B strategy has been closed to new developers for a while. It&#8217;s closed, because even an App Store B strategy requires that customers know about your app before they purchase it, and today there&#8217;s few ways for an App Store B app to get noticed — even if it&#8217;s deserving.<span id="more-33"></span></p>
<p>This hasn&#8217;t always been the case, though. App Store B did once exist. Apps like PCalc and Things have done well with the strategy, but they got into the App Store early when <em>any</em> good app was cool and sexy and getting press. And because they got noticed, they&#8217;ve been able to build the word of mouth following that&#8217;s important for a successful App Store B strategy. Today though, the only time that a new App Store B app is likely to be discovered is when a customer sees it while browsing the New Releases list. If your app isn&#8217;t flashy, you don&#8217;t get reviews and you don&#8217;t get noticed. You certainly don&#8217;t get in the charts. And since you didn&#8217;t get reviewed, and aren&#8217;t in the charts, your app never gets found.</p>
<p>So what does this mean for iPhone developers? It means that you go where the attention is. The problem is getting noticed, and there&#8217;s two ways to do that as far as I can see. Both go through App Store A.</p>
<p>The first option is to just go with a straight App Store A strategy, as described in Marco Arment&#8217;s article. You make a big splash with your flashy app, and once the fuss has died down you move on and try to make another splash with your next app. This approach is particularly well suited to games.</p>
<p>The second option, which I&#8217;ll call &#8220;App Store B+&#8221;, is to start with an App Store A strategy until you build a reputation, then shift to App Store B for future development. By starting with flashier App Store A apps and getting attention, you begin to build a brand. And once people recognize your brand, you&#8217;re more likely to have your project mentioned in the press even if it wouldn&#8217;t have otherwise been noticed. (e.g. <a title="Twitkitteh" href="http://www.theiphoneblog.com/2009/03/14/tipb-giveaway-twitterkitteh-iphone/">Twitkitteh</a> from James Thomson, and <a title="Safety Light" href="http://daringfireball.net/linked/2009/12/29/safety-light">Safety Light</a> from Craig Hockenberry/The Iconfactory) After developing a brand through App Store A, you have the freedom to release apps that are better suited to App Store B. Use the brand recognition that you&#8217;ve built though your earlier work to draw some press and attention to your new App Store B apps — press and attention that they wouldn&#8217;t have otherwise received. The idea is that after enjoying a little App Store A-style press, a critical mass of customers will become aware of your app which can then begin to enjoy a word of mouth following and settle into App Store B sales figures that are slower, but steadier, then those in App Store A.</p>
<p>Does it matter that App Store B is dead? I think it does. I want an App Store where a developer is rewarded for building a better mousetrap; where a good app gets noticed based on its merits, not just on how flashy it is or the reputation of its author. (Yeah, I live in a land of rainbows and butterflies. Leave me alone, I like it here.) So how could App Store B be revived? One possibility would be the rise of a site that focuses on reviewing high quality non-game apps, sort of a non-game Touch Arcade that could draw attention to good apps. I&#8217;m not sure that such a site could generate the traffic needed to be successful, though. Others have suggested things like a premium App Store, which I think could work if Apple exerted a little editorial control over which apps were admitted. (Scary, I know.) Another possibility would be to once again allow updates (not just newly released apps) into the New Releases list so that App Store B apps could at least get periodic exposure as improvements are made. There would have to be some restrictions though, to prevent the abuses of the past. For instance, developers should be restricted to only two approvals per day (a paid and lite version) so that the New Releases list isn&#8217;t overrun with 50 versions of the same speed dial app, all from the same developer. Each app should also be limited to appearing in the New Releases list no more than once per month so that developers don&#8217;t have an incentive to spam the review process with insignificant changes just to get a bounce in sales. That&#8217;s not to say that developers couldn&#8217;t submit more frequently if they needed to, they just wouldn&#8217;t be rewarded for their frequent submissions.</p>
<p>In truth, I&#8217;m probably not qualified to offer business advice to Apple on how to run the App Store, especially since I&#8217;m not even sure that Apple&#8217;s interests are aligned with mine in this matter. But, as a consumer, I want an App Store that is filled with apps that I want to use over and over, and that get better over time. As a developer, I want the App Store to be perceived as a source of high quality apps that provide value to my customers. Having a path to success for developers using an App Store B strategy seems like the best way to achieve those goals.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.dazeend.org/blog/2010/01/app-store-b-is-dead/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
