<?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>Think Ultimate</title>
	<atom:link href="http://thinkultimate.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://thinkultimate.com</link>
	<description>One developer. Ultimate possibilities.</description>
	<lastBuildDate>Wed, 09 May 2012 22:29:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>URL Schemes</title>
		<link>http://thinkultimate.com/2012/05/url-schemes/</link>
		<comments>http://thinkultimate.com/2012/05/url-schemes/#comments</comments>
		<pubDate>Mon, 07 May 2012 23:39:07 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://thinkultimate.com/?p=618</guid>
		<description><![CDATA[Both ThinkUltimate and ThinkDialer have support for URL schemes. That is, you can open them with a URL. For ThinkMessenger you can: Open the app: thinksms: Send a text: thinksms:5555555555?body=bodytext Open the inbox: thinkmessengerfolder:inbox For ThinkDialer you can: Open the App: thinkdialer:dial Call a phone number: thinkdialer:+18005555555]]></description>
			<content:encoded><![CDATA[<p>Both ThinkUltimate and ThinkDialer have support for URL schemes. That is, you can open them with a URL.</p>
<h2>For ThinkMessenger you can:</h2>
<h3>Open the app:</h3>
<pre><a href="thinksms:">thinksms:</a></pre>
<h3>Send a text:</h3>
<pre><a href="thinksms:5555555555?body=Hello">thinksms:5555555555?body=bodytext</a></pre>
<h3>Open the inbox:</h3>
<pre><a href="thinkmessengerfolder:inbox">thinkmessengerfolder:inbox</a></pre>
<h2>For ThinkDialer you can:</h2>
<h3>Open the App:</h3>
<pre><a href="thinkdialer:dial">thinkdialer:dial</a></pre>
<h3>Call a phone number:</h3>
<pre><a href="thinkdialer:+18005555555">thinkdialer:+18005555555</a></pre>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2012/05/url-schemes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We&#8217;re back baby!</title>
		<link>http://thinkultimate.com/2012/02/were-back-baby/</link>
		<comments>http://thinkultimate.com/2012/02/were-back-baby/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 00:29:44 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://thinkultimate.com/?p=586</guid>
		<description><![CDATA[After an unfortunately long time being out of the App Store due to issues with Push Notifications, ThinkMessenger is back up and better than ever. What happened? In December I started to transition my developer account from a personal one, which listed apps in the store under my name, to a business one. This is [...]]]></description>
			<content:encoded><![CDATA[<p>After an unfortunately long time being out of the App Store due to issues with Push Notifications, ThinkMessenger is back up and better than ever.</p>
<h3>What happened?</h3>
<p>In December I started to transition my developer account from a personal one, which listed apps in the store under my name, to a business one. This is a fairly routine operation with a set procedure, however when the transition was suppose to start, I lost access to my account.</p>
<p>Shortly there after it became apparent that new push registrations were not going through to Apple&#8217;s server. So existing users continued to use the app without problems, but new users and anyone who uninstalled or disabled notifications, were not able to use notifications. Needless to say, I got <em>a lot</em> of emails from users who could not figure out what was going wrong. To avoid any more users experiencing problems, I chose to remove ThinkMessenger from sale until I could get the problem fixed.<span id="more-586"></span></p>
<p>I contacted Apple Developer Support, who nearly immediately took responsibility and labeled the issue as a bug on their end. However, after a month, they still had not found a solution. Eventually one support specialist recommended that I remove my access to all other developer accounts (other companies I have done work for). While this wasn&#8217;t easy, once I did Apple was able to push the change through and I once again had access to my account and, at least on new builds, notifications were working again.</p>
<h3>What else is new?</h3>
<p><a title="ThinkMessenger in the App Store" href="http://gvmessenger.com/itunes" onclick="pageTracker._trackPageview('/outgoing/gvmessenger.com/itunes?referer=');">ThinkMessenger 1.4.0</a> includes the following improvements:</p>
<ul>
<li>Added ability to send a message while another one was being sent</li>
<li>If a reply is not added to the current conversation, the new conversation is shown</li>
<li>Fixed unsent message saving</li>
<li>Fixed bug that caused the notification sound from playing on launch</li>
<li>Moved logout button to settings</li>
<li>Fixed crash that would happen if the user received a empty text</li>
<li>Feedback form now includes device info</li>
<li>Made push notification registration more stable and reliable</li>
<li>Added notice for Google Apps users to setup push notifications manually</li>
<li>Added Voice Over support</li>
<li>Fixed bug with the user’s contact photo</li>
<li>Fixed issue with audio route in voicemail</li>
<li>Fixed issues with proximity sensor</li>
<li>Added call and contact buttons to the top of conversations</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2012/02/were-back-baby/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DBF Reader</title>
		<link>http://thinkultimate.com/2011/04/dbf-reader/</link>
		<comments>http://thinkultimate.com/2011/04/dbf-reader/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 22:43:19 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://thinkultimate.com/?p=531</guid>
		<description><![CDATA[When I was going through my files today I came across a project that at one time had been very useful. It is a DBF file editor for the Mac. I decided to upload the code to Github for anyone who might likewise have a need for it. Download Back when I was working at [...]]]></description>
			<content:encoded><![CDATA[<p>When I was going through my files today I came across a project that at one time had been very useful. It is a DBF file editor for the Mac. I decided to upload the code to <a title="Github repository" href="https://github.com/davbeck/DBF-Reader" onclick="pageTracker._trackPageview('/outgoing/github.com/davbeck/DBF-Reader?referer=');">Github</a> for anyone who might likewise have a need for it.</p>
<p><a class="button download" href="https://github.com/downloads/davbeck/DBF-Reader/DBF%20Reader.zip" onclick="pageTracker._trackPageview('/outgoing/github.com/downloads/davbeck/DBF-Reader/DBF_20Reader.zip?referer=');">Download</a></p>
<p>Back when I was working at a mining company writing custom GIS software, I got very familiar with the <a title="dBase Wikipedia article" href="http://en.wikipedia.org/wiki/DBase" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/DBase?referer=');">dBase</a> file format or DBF files since they are used along with shape files to store information about geographic data.</p>
<p>At the same time my dad was switching to the Mac and we were slowly pulling him away from his dependence on Parallels. One of the antiquated technologies he was hesitant to part with was a database of his sermons and illustrations that was in dBase (dating back to 1990).</p>
<p>So, as a loving son I put my knowledge of the format to work and created this little tool. It worked out for him until recently when he made the wise decision to purchase <a title="FileMaker" href="http://www.filemaker.com/" onclick="pageTracker._trackPageview('/outgoing/www.filemaker.com/?referer=');">a real database program</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2011/04/dbf-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What it&#8217;s like to be a 3rd party Google Voice Developer</title>
		<link>http://thinkultimate.com/2011/03/what-its-like-to-be-a-3rd-party-google-voice-developer/</link>
		<comments>http://thinkultimate.com/2011/03/what-its-like-to-be-a-3rd-party-google-voice-developer/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 06:03:03 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Google Voice]]></category>
		<category><![CDATA[Think Messenger for Google Voice]]></category>

		<guid isPermaLink="false">http://thinkultimate.com/?p=506</guid>
		<description><![CDATA[I love Google Voice. I developed Think Messenger not because I wanted to make money or market to a large group, but because I wanted to use it. In fact, I used it for months before Apple approved it for the App Store. However, developing an application for the service, has been interesting to say [...]]]></description>
			<content:encoded><![CDATA[<p>I love Google Voice. I developed <a title="Think Messenger" href="http://thinkultimate.com/think-messenger/">Think Messenger</a> not because I wanted to make money or market to a large group, but because I wanted to use it. In fact, <a title="Google Voice Messenger Status" href="http://thinkultimate.com/2010/07/gvmessenger-status/">I used it for months before Apple approved it</a> for the App Store. However, developing an application for the service, has been interesting to say the least.</p>
<p>Apps, whether they are first party or third, have to use an API to connect to any online service. Twitter for example has a very good public API, which has caused many developers to write apps to use the service. This breaks down to a set of URLs for getting information and performing actions on the server.</p>
<p>Google Voice has no public API. None. Other Google Services do, like Gmail or Google Reader, but Google Voice has yet to officially support any third party software of any kind. Pretty shocking when you consider how many tools there are.<br />
<span id="more-506"></span></p>
<p>So how do all of these apps interact with the Google Voice server? Well while there may be no public API, the Google Voice website still has to connect to the server with a private API. Basically all the Google Voice apps except for Google&#8217;s own, use the Google Voice website in the background and show a clean interface to the user up front. That is trickier to do than it may sound.</p>
<p>The first step is to figure out how the website talks to the server. This takes some clever reverse engineering. I personally used Safari&#8217;s excellent <a title="Safari Web Developer Tools" href="http://developer.apple.com/technologies/safari/developer-tools.html" onclick="pageTracker._trackPageview('/outgoing/developer.apple.com/technologies/safari/developer-tools.html?referer=');">web developer tools</a> to monitor requests made. That looked like me pressing a button, looking at what got sent to the server when I did that, and then trying to reproduce that result.</p>
<p>This causes a lot of problems because while I may be able to get it to work, there are still a lot of things about the API that I just do not understand, especially when it comes to the authentication process (logging in). It was that reason that made me switch to using a web login a la OAuth in 1.2. The number one complaint for the app is login problems, probably caused by something I don&#8217;t understand or missed about the API.</p>
<p>However, even once I had figured out how to connect to the server, there was still a very big problem, one that to some extent does not have a fix. That is, the API that the website uses is only used by the website, and was only meant to be used by the website. So you are limited to what the website does.</p>
<p>There are 2 different websites for Google Voice (well 3, but the old mobile version is useless for third parties), the desktop version and the mobile version. Think Messenger used the desktop version prior to 1.2, and the mobile version from that point on. Both have limitations.</p>
<p>The desktop version serves the data in a very odd fashion. It&#8217;s <a title="HTML" href="http://en.wikipedia.org/wiki/HTML" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/HTML?referer=');">HTML</a> fragments in <a title="JSON" href="http://en.wikipedia.org/wiki/Json" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Json?referer=');">JSON</a> inside of <a title="XML" href="http://en.wikipedia.org/wiki/XML" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/XML?referer=');">XML</a>. <a title="Inception" href="http://en.wikipedia.org/wiki/Inception" target="_blank" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Inception?referer=');">Christopher Nolan</a> would be proud. I on the other hand couldn&#8217;t be more frustrated. Parsing XML and JSON isn&#8217;t too bad, but pulling data out of HTML is messy. There is a lot of extra parts to it for layout, and it can change with little notice. What&#8217;s more, that is 3 different parts I have to parse, which means 3 different libraries my code has to link to and 3 different libraries I have to learn how to use. And on top of all that, it takes forever to parse. The time it takes to load is 80% parsing on the phone and only 20% download time. I had to use multithreading to keep the interface responsive (which on a brighter note, makes Think Messenger ready to take advantage of the iPad 2&#8242;s dual core processor). It also lacks certain data; individual times for each message are not in a readable format.</p>
<p>So why would Google use such a cumbersome interface to their server? Because for what they are using it for, it is actually faster. The website doesn&#8217;t have to convert data into a view, it just puts the response from the server right on the page. The people who designed it never planned on any other use for it.</p>
<p>The mobile API is a lot nicer to work with. It returns data in a well formatted JSON document. When I switched to using it in 1.2, I was able to remove hundreds if not thousands of lines of code. And less code means less bugs.</p>
<p>But the mobile API has problems of it&#8217;s own. For instance, when you do an action, like archiving a conversation or sending a message, it doesn&#8217;t send you back the results of what you have done. You can see this on the mobile website. If you send a reply you have to hit refresh to see the message. The fix is to refresh after everything that could make a change, causing an increase in data usage and battery consumption (it&#8217;s still quit minimal compared to something like watching a video).</p>
<p>Another limitation that was easy to overcome is that the mobile website won&#8217;t let you send a message to multiple recipients. The fix? Send to each recipient individually. Rather than tell the server to send to John, Frank and Matt, you tell the server to send to John, then send it to Frank, then send it to Matt. Again extra data usage but fixable.</p>
<p>One problem that I have yet to overcome is that the mobile website does not really support replies. If you hit the text button on a conversation, you open the new message interface with the person&#8217;s info filled in the to field. What this means is that occasionally when you send a reply in the app, it won&#8217;t show up. Instead it will be added to the most recent conversation with that person or to a new conversation. I have already had several complaints from beta testers that they thought that the message didn&#8217;t get sent. Again, there isn&#8217;t much I can do without official support from Google.</p>
<p>Then there are the feature requests I get that I have no control over. Things like people wanting messages grouped by sender rather than conversation. I actually agree with this one, but it would not be very wise to go against the core of how Google Voice works.</p>
<p>Another common request is support for sending pictures. Google Voice does not support this at all. If you try to send a picture to a Google Voice number, it will tell you that it sent just fine, but the recipient will never have any indication that someone even tried to send them anything. Likewise there just isn&#8217;t any way to send a picture to someone. However, <a title="Sean Kovacs on Twitter" href="https://twitter.com/seankovacs" onclick="pageTracker._trackPageview('/outgoing/twitter.com/seankovacs?referer=');">Sean Kovacs</a> of <a title="iTunes Link" href="http://itunes.apple.com/us/app/gv-mobile/id392608246?mt=8" onclick="pageTracker._trackPageview('/outgoing/itunes.apple.com/us/app/gv-mobile/id392608246?mt=8&amp;referer=');">GV Mobile+</a> did find a workaround similar to Twitter by uploading the image to a photo sharing site and including the link in the message. Admittedly, it&#8217;s something I never thought of doing. It still has it&#8217;s downsides, like only being viewable by people with smart phones, and you still can&#8217;t receive regular MMS, but it is a good example of how developers have to think outside of the box to make a good Google Voice app.</p>
<p>Push notifications are another beast entirely. Most service providers don&#8217;t provide support for notifications anyway. The only two examples I can think of are Facebook and Twitter. But Google Voice ads the additional caveat that you don&#8217;t have official access to your users accounts. I will write more about Push Notifications at another time.</p>
<p>With all the problems though, it has been a rewarding experience. I have also had to reverse engineer for <a title="iPhone Video Screen Capture" href="http://thinkultimate.com/2009/10/iphone-screen-capture/">iPhone Video Screen Capture</a>. You tend to learn a lot when you look deep into the workings of a professional product.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2011/03/what-its-like-to-be-a-3rd-party-google-voice-developer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GVMessenger 1.1</title>
		<link>http://thinkultimate.com/2010/12/gvmessenger-1-1/</link>
		<comments>http://thinkultimate.com/2010/12/gvmessenger-1-1/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 23:42:39 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Google Voice]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Think Messenger for Google Voice]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=466</guid>
		<description><![CDATA[Version 1.1 of Messenger for Google Voice was released on November 30, 2010. Added native support for iPad Changed minimum iOS version to 3.2 Changed base SDK to 4.2 Fixed bug that caused music to stop playing when a message was sent or received Replaced Three20 message controller to a custom message controller fixing several [...]]]></description>
			<content:encoded><![CDATA[<p>Version 1.1 of Messenger for Google Voice was released on November 30, 2010.</p>
<h1><a class="app-store" href="itms://itunes.apple.com/us/app/messenger-for-google-voice/id372709006?mt=8"></a></h1>
<ul>
<li>Added native support for iPad</li>
<li>Changed minimum iOS version to 3.2</li>
<li>Changed base SDK to 4.2</li>
<li>Fixed bug that caused music to stop playing when a message was sent or received</li>
<li>Replaced Three20 message controller to a custom message controller fixing several bugs related to starting a new conversation and allowing Three20 to be removed completely from the app, cutting the size in half</li>
<li>Fixed error handling when starting a new reply</li>
<li>Fixed a bug that caused saved replies to keep showing up</li>
<li>Changed the names in the inbox to take up as much room as possible without overlapping the date and resize when it runs out of room</li>
<li>Added vibration when receiving push notifications when the app is open</li>
<li>Made opening conversations faster</li>
<li>Made scrolling through the inbox faster</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2010/12/gvmessenger-1-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Beta Testers Needed</title>
		<link>http://thinkultimate.com/2010/11/beta-testers-needed/</link>
		<comments>http://thinkultimate.com/2010/11/beta-testers-needed/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 01:47:27 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Beta]]></category>
		<category><![CDATA[Google Voice]]></category>
		<category><![CDATA[Think Messenger for Google Voice]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=457</guid>
		<description><![CDATA[Messenger for Google Voice version 1.1 is now in public beta. This new version brings native iPad support as well as several bug fixes. I am looking for 10 beta testers, 5 iPhone/iPod Touch testers, and 5 iPad testers. If you are interested, send a list of your devices with UDID and the email address [...]]]></description>
			<content:encoded><![CDATA[<p>Messenger for Google Voice version 1.1 is now in public beta. This new version brings native iPad support as well as several bug fixes. I am looking for 10 beta testers, 5 iPhone/iPod Touch testers, and 5 iPad testers.</p>
<p>If you are interested, send a list of your devices with UDID and the email address you use with Google Voice. You can find the UDID by connecting the device to your computer and clicking on it&#8217;s serial number in iTunes. If I choose to use you, I will then send you a copy of the beta.</p>
<p><span id="more-457"></span></p>
<p>Please only request to be a tester if you already use the app regularly and can commit to testing the app thoroughly. You will need to send me any crash logs and problems you encounter.</p>
<p><span style="text-decoration: underline;"><strong>I am no longer accepting new beta testers. Thank you.</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2010/11/beta-testers-needed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Voice Messenger Status</title>
		<link>http://thinkultimate.com/2010/07/gvmessenger-status/</link>
		<comments>http://thinkultimate.com/2010/07/gvmessenger-status/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 04:13:24 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Google Voice]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Think Messenger for Google Voice]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=385</guid>
		<description><![CDATA[Time since Google Voice Messenger was submitted to Apple for approval: Update September 22, 2010: Messenger for Google Voice, is now available in the App Store. Most apps take about a week to get approved. This is what Apple claims, and my own experiences with Bubble Burster have been even better. However, I recently submitted [...]]]></description>
			<content:encoded><![CDATA[<h4>Time since Google Voice Messenger was submitted to Apple for approval:</h4>
<p style="text-align: center">
<span class="count-around">
	<input type="hidden" value="1274802300" class="start-time" />
	<input type="hidden" value="1285168380" class="end-time" />
	
	
	
	<input type="hidden" value="true" class="show-weeks" />
	<input type="hidden" value="true" class="show-days" />
	<input type="hidden" value="true" class="show-hours" />
	<input type="hidden" value="true" class="show-minutes" />
	<input type="hidden" value="true" class="show-seconds" />
	
	
	<!-- whitespace be dambed
	--><!--
	--><span class="number weeks">
		<span class="value">17</span>
		<span class="label">weeks</span>
	</span><!--
	--><span class="number days">
		<span class="value">0</span>
		<span class="label">days</span>
	</span><!--
	--><span class="number hours">
		<span class="value">23</span>
		<span class="label">hours</span>
	</span><!--
	--><span class="number minutes">
		<span class="value">28</span>
		<span class="label">minutes</span>
	</span><!--
	--><span class="number seconds">
		<span class="value">0</span>
		<span class="label">seconds</span>
	</span><!--
	-->
</span>
</p>

<script type="text/javascript" src="http://thinkultimate.com/wp-content/plugins/count-around/script.js"></script>
<p>Update September 22, 2010: Messenger for Google Voice, is now <a href="http://gvmessenger.com/itunes" onclick="pageTracker._trackPageview('/outgoing/gvmessenger.com/itunes?referer=');">available in the App Store</a>.</p>
<p>Most apps take about a week to get approved. This is what Apple claims, and my own experiences with <a href="http://bubble.davidbeckblog.com/" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com/?referer=');">Bubble Burster</a> have been even better. However, I recently submitted an app that has taken a little longer. When I started it in January, I figured there was a very likely chance that Apple would not allow it. I started the project knowing full well it may never make me any money, because I wanted to be able to use it myself.<br />
<span id="more-385"></span></p>
<p>I submitted the app, <a href="http://davidbeckblog.com/google-voice-messenger/" onclick="pageTracker._trackPageview('/outgoing/davidbeckblog.com/google-voice-messenger/?referer=');">Google Voice Messenger</a>, to Apple on May 25, 2010. On June 2, 2010, the status went from &#8220;Waiting For Review&#8221; to &#8220;In Review&#8221;. That day, according to my analytics software, they opened the App twice on two different devices. That night, I received an email that read as follows.</p>
<blockquote><p>Dear David Beck,</p>
<p>We are currently reviewing an app that you submitted for inclusion on the App Store, and want to let you know that the review process will require additional time. We apologize for the delay and will provide you with an update on the status of your app as soon as possible.</p>
<p>Application Name: Google Voice Messenger</p>
<p>Application Version Number: 1.0</p>
<p>Application SKU: 100012010</p>
<p>Application Apple ID:372709006</p>
<p>If you have any questions or concerns regarding this notice please contact us at appreview@apple.com .</p>
<p>Sincerely,</p>
<p>The iPhone Developer Program</p></blockquote>
<p>This is a fairly common letter to receive from Apple, and given that it was the beginning of WWDC, their biggest event of the year where they introduced the iPhone 4, it&#8217;s no surprise that there were a surge of these letters. Following that there was the release of iOS 4.0 and the iPhone 4 itself. Needless to say Apple was a little bit busy. Nevertheless, while most apps were delayed about a week, I am still awaiting a reply.</p>
<p>On June 18, 2010, I sent the following letter to Apple.</p>
<blockquote><p>Dear App Review Team,</p>
<p>I received a notice that you would require more time to review my App, Google Voice Messenger on June 2, 2010. That was more than 2 weeks ago and more than 3 weeks since I first submitted the App. Is there any specific problems that I should know about? Can you give me any time frame for when it will be approved?</p>
<p>David Beck</p></blockquote>
<p>A few days later, I recieved a standerd reply.</p>
<blockquote><p>Dear Mr. Beck,</p>
<p>Thank you for the email. We apologize for the delay. Your application is still in review but is requiring unexpected additional time. You will be updated with further status as soon as we are able.</p>
<p>We appreciate your continued patience.</p>
<p>Best Regards,</p>
<p>Melody<br />
iPhone Developer Program</p></blockquote>
<p>Apple is nothing but consistent.</p>
<p>On July 8, 2010, out of desperation and friends prodding me, I sent an email to Steve Jobs asking him for any information. In order to maximize my chances I kept it short, sweet and to the point.</p>
<blockquote><p>I uploaded my app, &#8220;Google Voice Messenger&#8221; 6 weeks ago. What is taking so long? Do you have to approve it personally?</p>
<p>David Beck</p></blockquote>
<p>As expected, I have yet to receive a response. Perhaps he couldn&#8217;t download the email because he was holding his phone wrong.</p>
<p>If you aren&#8217;t aware, Google themselves got their <a href="http://techcrunch.com/2009/07/27/apple-is-growing-rotten-to-the-core-and-its-likely-atts-fault/" onclick="pageTracker._trackPageview('/outgoing/techcrunch.com/2009/07/27/apple-is-growing-rotten-to-the-core-and-its-likely-atts-fault/?referer=');">Google Voice app rejected</a> a year ago. The reason Apple cited was that the app “duplicate features that come with the iPhone,” but many surmised that AT&amp;T, the exclusive carrier for the iPhone in the US, had something to do with it.</p>
<p>Why did I even hope that my app would get approved? First and foremost, if you are to believe Apple, their reasoning was that the dialer looked and acted exactly like the built in phone. The problem here is that Google Voice is not a standalone phone service; it requires a phone to route calls through. This means that when you place a call in the Google Voice app, it opens the system phone app that looks just like the app you were just using. This obviously could get very confusing.</p>
<p>My app is a little different in this regard. First, it isn&#8217;t a dialer or a phone. It only focuses on text messages. Text messages don&#8217;t need to be routed through a phone and can be done completely over the internet, and more importantly, completely from within a single app. A user could hide the built in texting app and completely replace it with mine.</p>
<p>The other reason that Apple could have banned the app is if someone at AT&amp;T dennied it. This is definitely a possibility as AT&amp;T would be losing minutes and text messages to Google. Having said that, AT&amp;T has started to loosen the restrictions on their network. In October of 2009, 4 months after Google Voice was banned from the App Store, <a href="http://www.att.com/gen/press-room?pid=4800&amp;cdvn=news&amp;newsarticleid=27207" onclick="pageTracker._trackPageview('/outgoing/www.att.com/gen/press-room?pid=4800_amp_cdvn=news_amp_newsarticleid=27207&amp;referer=');">AT&amp;T lifted the ban on VOIP over the  3G network</a> (Voice Over IP is the ability to make phone calls over the internet without being charged minutes). Likewise, it has started to lift limitations on video over their network.</p>
<p>There could be any number of reason my app is being delayed. Apple certainly hasn&#8217;t communicated with me about any problems or reasoning, so I am left to guess. What seems most reasonable to me is that it requires approval from a lot of big players. Realize that this single app concerns not only Apple, but AT&amp;T and Google as well. Another possibility is that Apple knows something I don&#8217;t; perhaps Google is getting ready to release an official app and Apple is waiting for that to be ready to approve mine. It&#8217;s possible that they are trying to hold it as long as possible to avoid the PR hit when they denny it.</p>
<p>Even through all of this I am still a supporter of the &#8220;walled garden&#8221; approach to the App Store. While it is not without it&#8217;s faults, this instance certainly being one of them, the experience is, in my opinion, worth it. I like not having to worry about viruses as a user. I like not having to worry about payment processing and DRM as a developer. I like that when I tell someone about an app, big or small, no iPhone user ever has to ask how to get it because it&#8217;s the same for all apps. The App Store is a great equalizer for developers. Nowhere else would you find an independent developer facing the same problems as a multi-billion dollar company.</p>
<p>If you want to know the second (well day at least) that something changes, you can enter your email below:</p>
<form action="http://thinkultimate.com/wp-admin/admin-ajax.php" onsubmit="submitNotify(this, 'gvmessenger'); return false;">
	<style type="text/css">
		
	</style>

	<p class="notify-me" id="gvmessenger" style="clear: both;">
		<input type="hidden" name="list" value="gvmessenger" class="id" />
		<input type="hidden" name="redirect" value="http://thinkultimate.com/feed/" />
		<input type="hidden" name="action" value="notify_me_send" />
		<input type="submit" value="Notify Me:" class="section" /><!-- whitespace be dambed
		--><input type="text" name="email_address" size="35" class="email" /><!--
		--><span class="status section">
			<span class="loading" style="display: none;"></span>
			<span class="done" style="display: none;"></span>
			<span class="error" style="display: none;"></span>
		</span>
		<br />
	</p>
	<p class="legal privacy"><a href="http://davidbeckblog.com/privacy-policy/" onclick="pageTracker._trackPageview('/outgoing/davidbeckblog.com/privacy-policy/?referer=');">Privacy Policy</a></p>
	<script type="text/javascript" src="http://thinkultimate.com/wp-content/plugins/notify/script.js"></script>
</form>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2010/07/gvmessenger-status/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Google Voice Browser</title>
		<link>http://thinkultimate.com/2010/05/google-voice-browser/</link>
		<comments>http://thinkultimate.com/2010/05/google-voice-browser/#comments</comments>
		<pubDate>Thu, 06 May 2010 15:08:06 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Google Voice]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=243</guid>
		<description><![CDATA[I created a dedicated browser for Google Voice on the Mac. It&#8217;s nothing to fancy, just a WebKit view in a simple window. The best part is that it will update the badge icon in the dock so you don&#8217;t have to keep the window open. Refreshing from the menu will refresh like it does [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://thinkultimate.com/media/Screen-shot-2011-04-30-at-3.17.37-PM.png"><img class="alignleft size-medium wp-image-537" title="Screen shot of Google Voice Browser" src="http://thinkultimate.com/media/Screen-shot-2011-04-30-at-3.17.37-PM-300x197.png" alt="" width="300" height="197" /></a>I created a dedicated browser for Google Voice on the Mac.</p>
<p>It&#8217;s nothing to fancy, just a WebKit view in a simple window. The best part is that it will update the badge icon in the dock so you don&#8217;t have to keep the window open.</p>
<p>Refreshing from the menu will refresh like it does when you click the refresh link rather than reload the entire page.</p>
<p>Now in <a title="GitHub" href="https://github.com/davbeck/GoogleVoiceBrowser" target="_blank" onclick="pageTracker._trackPageview('/outgoing/github.com/davbeck/GoogleVoiceBrowser?referer=');">open source</a>.</p>
<p><a class="button download" href="/media/Google-Voice-Browser.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2010/05/google-voice-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone Video Screen Capture</title>
		<link>http://thinkultimate.com/2009/10/iphone-screen-capture/</link>
		<comments>http://thinkultimate.com/2009/10/iphone-screen-capture/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 03:54:57 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Apple Developer Tools]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Screencast]]></category>
		<category><![CDATA[SIMBL]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=146</guid>
		<description><![CDATA[Here is a very simple screen capture plugin for the iPhone Simulator. You can see a demo of a video recorded with this tool. It does not record audio at this time. To install the plugin, place it in &#8220;~/Library/Application Support/SIMBL/Plugins&#8221;. create it if it doesn&#8217;t already exist. You will need to install SIMBL as well. Right now [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a very simple screen capture plugin for the iPhone Simulator. You can see a <a href="/media/iphone-screen-capture-demo.mov">demo</a> of a video recorded with this tool.</p>
<p><span id="more-146"></span></p>
<p>It does not record audio at this time.</p>
<p>To install the plugin, place it in &#8220;~/Library/Application Support/SIMBL/Plugins&#8221;. create it if it doesn&#8217;t already exist. You will need to install SIMBL as well. Right now it is only for Snow Leopard but there isn&#8217;t anything major that is keeping it from working on Leopard other than some convenience methods.</p>
<p>If you end up using this plugin, please let me know in the <a href="#comments">comments</a>.</p>
<p><a class="button download" href="https://github.com/downloads/davbeck/iPhone-Simulator-Capture/iPhone%20Simulator%20Capture.zip" target="_self" onclick="pageTracker._trackPageview('/outgoing/github.com/downloads/davbeck/iPhone-Simulator-Capture/iPhone_20Simulator_20Capture.zip?referer=');">Download</a></p>
<p>Update: Thanks to John Scott for getting it working with 3.2. It now works in 3.2 and 4.0. iPad, unfortunately, does not record correctly yet. The cosmetic settings, like setting a fake time, are not functioning either.</p>
<p>Update: Fake time, fake apps and fake carrier have been fixed for 4.0. A <a href="http://github.com/davbeck/iPhone-Simulator-Capture" onclick="pageTracker._trackPageview('/outgoing/github.com/davbeck/iPhone-Simulator-Capture?referer=');">Github repository</a> has also been created.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2009/10/iphone-screen-capture/feed/</wfw:commentRss>
		<slash:comments>71</slash:comments>
		</item>
		<item>
		<title>Early iPhone App Sales</title>
		<link>http://thinkultimate.com/2009/10/early-iphone-app-sales/</link>
		<comments>http://thinkultimate.com/2009/10/early-iphone-app-sales/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 16:33:55 +0000</pubDate>
		<dc:creator>David Beck</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Bubble Burster]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://davidbeckblog.com/?p=104</guid>
		<description><![CDATA[It has been about a month now since Bubble Burster was released to the App Store and early sales are not promising. Before I launched Bubble Burster, I did a lot of research into marketing and sales of iPhone Apps and I found very little information. Most of what is available in terms of sales [...]]]></description>
			<content:encoded><![CDATA[<p>It has been about a month now since <a href="http://bubble.davidbeckblog.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/bubble.davidbeckblog.com/?referer=');">Bubble Burster</a> was released to the App Store and early sales are not promising. Before I launched Bubble Burster, I did a lot of research into marketing and sales of iPhone Apps and I found very little information. Most of what is available in terms of sales numbers is from big companies with apps in the top 100, and almost no data from your average app developer.<br />
<span id="more-104"></span><br />
The hard truth is that in it&#8217;s first month, Bubble Burster sold only 6 copies. 2 were to my friends. At $.99 that means I earned $4.20 after Apple&#8217;s cut. Pretty bad for something that took me months to develop. Especially when you consider I spent $99 on the developer program to publish it in the first place. In other words, I am not quitting my day job.</p>
<p>I can&#8217;t say I am too surprised by the low turn out. My low end estimate was a little higher though, at $20 in the first month. I knew going in that there were 75,000 apps (well 80,000 by the time it actually released) on the store already, and that because the only ones visible to most people were the ones in the top 20 and you couldn&#8217;t get there unless you sold a lot of copies and you couldn&#8217;t sell very many unless you were in the top 20.</p>
<p>To combat the problem of visibility I used some advertising promotions I had been saving. Google gave me $100 ad credit to sign up for AdWords and my hosting company, <a href="http://www.lunarpages.com/id/davbeck" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.lunarpages.com/id/davbeck?referer=');">LunarPages</a>, gave me a $25 credit for FaceBook. Unfortunately, those have not been very successful and I think I will pull them when the promotions run out.</p>
<p>One thing that is often suggested is to make a &#8220;lite&#8221; version of your app for free. I am working on this right now. It is difficult for me as a programmer to create a lite version because it means taking functions out that I have spent a lot of time putting in. When it is finished, the lite version will have all the functionality of the full version but will cut the player off when they score more than 50 points. A score that takes a while to accomplish.</p>
<p>The other suggestion is to get blogs like <a href="http://toucharcade.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/toucharcade.com/?referer=');">Touch Arcade</a> to review your app. I plan to do this once I have released the lite version. Even still, most people don&#8217;t read these specialized blogs.</p>
<p>The original plan was to introduce what I had for $.99 and then, once I had updated the game with more features like saving score and games, I would raise the price to $1.99. I advertised that it was $.99 for &#8220;a limited time&#8221;. Well a few days ago I upped the price as planed when Apple approved version 1.2. So far no one has made a purchase at the new price, but that is not necessarily any different from when it was at $.99. We will se if I can make 3 sales next month to match the income (if you can call it that) of the app at $.99.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkultimate.com/2009/10/early-iphone-app-sales/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

