<?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>Indie iPhone Development Blog &#187; GPS</title>
	<atom:link href="http://blog.indieiphonedev.com/tag/gps/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.indieiphonedev.com</link>
	<description>The musings of an independent iPhone developer</description>
	<lastBuildDate>Mon, 20 Jun 2011 18:48:16 +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>Comparison chart of top GPS enabled running applications for the iPhone</title>
		<link>http://blog.indieiphonedev.com/2010/12/15/comparison-chart-of-top-gps-enabled-running-applications-for-the-iphone/</link>
		<comments>http://blog.indieiphonedev.com/2010/12/15/comparison-chart-of-top-gps-enabled-running-applications-for-the-iphone/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 06:35:57 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[iPhone exercise apps]]></category>
		<category><![CDATA[app review]]></category>
		<category><![CDATA[Exercise]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[iPhone app]]></category>
		<category><![CDATA[iPhone marketing]]></category>
		<category><![CDATA[Running app]]></category>

		<guid isPermaLink="false">http://blog.indieiphonedev.com/?p=241</guid>
		<description><![CDATA[The following table shows some of the differences in features between the top 7 GPS enabled iPhone running applications. If I missed a feature that you think is important please let me know in the comments. LogYourRun RunKeeper MapMyRun Nike+ GPS Jog Log Runtastic Runmeter GPS Live updates Via Twitter TweetMyDistcance RunKeeper Live Route view [...]]]></description>
			<content:encoded><![CDATA[<p>The following table shows some of the differences in features between the top 7 GPS enabled iPhone running applications.  If I missed a feature that you think is important please let me know in the comments.</p>
<table style="border-style: solid; border-width: 2px; border-collapse: collapse;" border="2" cellspacing="0" cellpadding="5" width="100%">
<tbody>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt; width: 184pt;" width="184" height="15"></td>
<td style="width: 105px; background-color: #dddddd;" width="105"><a href="http://www.logyourrun.com/iphone"></a>LogYourRun</td>
<td style="width: 105px;" width="105">RunKeeper</td>
<td style="width: 105px; background-color: #dddddd;" width="105">MapMyRun</td>
<td style="width: 105px;" width="105">Nike+ GPS</td>
<td style="width: 105px; background-color: #dddddd;" width="105">Jog Log</td>
<td style="width: 105px;" width="105">Runtastic</td>
<td style="width: 105px; background-color: #dddddd;" width="105">Runmeter</td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">GPS</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Live updates</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /><br />Via Twitter <a href="http://www.TweetMyDistcance.com">TweetMyDistcance</a></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /><br />RunKeeper Live</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="no" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Route view</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">In App Elevation</td>
<td style="background-color: #dddddd;">Google</td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td>GPS</td>
<td style="background-color: #dddddd;">GPS</td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Pedometer</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Music</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="paid" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="paid" width="20" height="20" /></td>
<td style="background-color: #dddddd;">change tracks</td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Heart rate</td>
<td style="background-color: #dddddd;">fisica, 60beat, voice cues</td>
<td>fisica</td>
<td style="background-color: #dddddd;">fisica</td>
<td>Nike+ system</td>
<td style="background-color: #dddddd;">fisica</td>
<td>fisica, 60beat, voice cues</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Time in zones</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Voice cues</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="paid" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Facebook upload</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Twitter upload</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Dailymile upload</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Email sharing</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="paid" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Manual entry</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Integrated website</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Other types of activities</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;">other apps</td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td  style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">See routes in your area</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Download training Programs</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="not" width="20" height="20" /></td>
</tr>
<tr style="height: 15pt;" height="15">
<td style="height: 15pt;" height="15">Free version</td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="paid" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="paid" width="20" height="20" /></td>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="20" height="20" /></td>
<td style="background-color: #dddddd;"><img src="/wp-content/uploads/2010/12/not.png" alt="paid" width="20" height="20" /></td>
</tr>
</tbody>
</table>
<h1>Legend</h1>
<table cellpadding="5">
<tbody>
<tr>
<td><img src="/wp-content/uploads/2010/12/ok.png" alt="ok" width="30" height="30" /></td>
<td style="text-align: left;">Feature available in free and paid version</td>
</tr>
<tr>
<td><img src="/wp-content/uploads/2010/12/not.png" alt="ok" width="30" height="30" /></td>
<td style="text-align: left;">Feature not available</td>
</tr>
<tr>
<td><img src="/wp-content/uploads/2010/12/paid.png" alt="ok" width="30" height="30" /></td>
<td style="text-align: left;">Feature available in paid version only</td>
</tr>
</tbody>
</table>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.indieiphonedev.com%2F2010%2F12%2F15%2Fcomparison-chart-of-top-gps-enabled-running-applications-for-the-iphone%2F&amp;title=Comparison%20chart%20of%20top%20GPS%20enabled%20running%20applications%20for%20the%20iPhone" id="wpa2a_2"><img src="http://blog.indieiphonedev.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.indieiphonedev.com/2010/12/15/comparison-chart-of-top-gps-enabled-running-applications-for-the-iphone/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>MGTwitterEngine and Locations</title>
		<link>http://blog.indieiphonedev.com/2010/09/03/mgtwitterengine-and-locations/</link>
		<comments>http://blog.indieiphonedev.com/2010/09/03/mgtwitterengine-and-locations/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 04:35:41 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[iPhone app]]></category>
		<category><![CDATA[iPhone OS]]></category>
		<category><![CDATA[objective-C]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://blog.indieiphonedev.com/?p=212</guid>
		<description><![CDATA[How to implement location of tweets from iPhone applications using the MGTwitterEngine.]]></description>
			<content:encoded><![CDATA[<p>So Twitter just updated their API to disallow the use of authentication through the REST API.  They were nice enough to announce that in an email 2 days after they turned it off so that meant that I had to learn all about OAuth overnight and scramble to find something that could take over the Twitter functionality of the LogYourRun iPhone app.</p>
<p>Luckily most of the leg work in this are has been done by Matt Gemmell and his <a href="http://mattgemmell.com/2008/02/22/mgtwitterengine-twitter-from-cocoa">Twitter engine</a>.  Some slight modifications are required in order to get it <a href="http://github.com/bengottlieb/Twitter-OAuth-iPhone">running on the iPhone</a> and <a href="http://www.2bros1blog.com/2010/07/switching-from-basic-to-xauth-with-mgtwitterengine-on-iphone/">working with OAuth</a>.  Update:  The guys at iCodeBlog have a <a href="http://icodeblog.com/2010/09/16/dealing-with-the-twitter-oauth-apocalypse/">great tutorial</a> on how to implement the libraries.</p>
<p>With these libraries dropped in the new Twitter authentication system is fairly easy to implement.  The main problem is that the MGTwitterEngine does not support the Twitter location API.  Since this is an important piece of <a href="http://tweetmydistance.com/">TweetMyDistance</a> I modified the MGTwitterEngine.m and added a function for tweeting with location.  The new method takes latitude and longitude as well as the tweet and if this is a reply to a previous tweet.  As you can see from <a href="http://twitter.com/tim221175/statuses/22930742608">my tweet</a> it works great.  The code below should replace the code in MGTwitterEngine and don&#8217;t forget to also update your .h file.</p>
<pre class="brush: objc; title: ; notranslate">
- (NSString *)sendUpdate:(NSString *)status
{
    return [self sendUpdate:status inReplyTo:0];
}

- (NSString *)sendUpdate:(NSString *)status inReplyTo:(unsigned long)updateID
{

	return [self sendUpdate: status inReplyTo: updateID withLatitude: 0.0 andLongitude: 0.0];

}

- (NSString *)sendUpdate:(NSString *)status
			   inReplyTo:(unsigned long)updateID
			withLatitude:(double) lat
			andLongitude: (double) lng
{
	if (!status) {
        return nil;
    }

    NSString *path = [NSString stringWithFormat:@&quot;statuses/update.%@&quot;, API_FORMAT];

    NSString *trimmedText = status;
    if ([trimmedText length] &gt; MAX_MESSAGE_LENGTH) {
        trimmedText = [trimmedText substringToIndex:MAX_MESSAGE_LENGTH];
    }

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:0];
    [params setObject:trimmedText forKey:@&quot;status&quot;];
    if (updateID &gt; 0) {
        [params setObject:[NSString stringWithFormat:@&quot;%u&quot;, updateID] forKey:@&quot;in_reply_to_status_id&quot;];
    }
    if (lat != 0.0 &amp;&amp; lng != 0.0) {
		// lat=%1.6f&amp;long=%1.6f&amp;display_coordinates=true
        [params setObject:[NSString stringWithFormat:@&quot;%1.6f&quot;, lat] forKey:@&quot;lat&quot;];
        [params setObject:[NSString stringWithFormat:@&quot;%1.6f&quot;, lng] forKey:@&quot;long&quot;];
        [params setObject:@&quot;true&quot; forKey:@&quot;display_coordinates&quot;];
    }
    NSString *body = [self _queryStringWithBase:nil parameters:params prefixed:NO];

	DLog(@&quot; twitterbody: %@&quot;, body);

    return [self _sendRequestWithMethod:HTTP_POST_METHOD path:path
                        queryParameters:params body:body
                            requestType:MGTwitterUpdateSendRequest
                           responseType:MGTwitterStatus];
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.indieiphonedev.com/2010/09/03/mgtwitterengine-and-locations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Elevation for routes</title>
		<link>http://blog.indieiphonedev.com/2010/04/09/elevation-for-routes/</link>
		<comments>http://blog.indieiphonedev.com/2010/04/09/elevation-for-routes/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 00:57:25 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[core location]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[iPhone app]]></category>

		<guid isPermaLink="false">http://blog.indieiphonedev.com/?p=173</guid>
		<description><![CDATA[I have been playing around with the GPS functionality of the iPhone for a while now and I think I have optimized the collection of in-plane GPS data as best as possible given the limitations of the hardware.  The iPhone was not created to be a garmin forerunner and this especially shines through when you [...]]]></description>
			<content:encoded><![CDATA[<p>I have been playing around with the GPS functionality of the iPhone for a while now and I think I have optimized the collection of in-plane GPS data as best as possible given the limitations of the hardware.  The iPhone was not created to be a garmin forerunner and this especially shines through when you try to get elevation data out of the iPhone GPS.  This became painfully obvious after I built the functionality for collecting and displaying elevation data from the GPS.  Even after creating sophisticated methods for filtering the GPS data and averaging the data and weighing the data by the vertical accuracy the graphs of the running data had no correlation with reality.  At first this was disappointing &#8211; I had created this great code for collecting, saving, and displaying the elevation data but clearly if I released an app which was going to show unrealistic elevation data &#8211; the app would get killed by bad reviews.</p>
<p>So I looked around for other places to get elevation data.  Turns out that the space station has used lasers to measure elevation all over the surface of the earth and that Google has an API which allows you to query that data.  This means much better resolution on the elevation data than a GPS (even a garmin) could ever provide and I can show elevation data for both current routes as well as routes that have been saved which have no elevation data saved with them.  The only issue is that a data connection is required in order to get at this data but the amount of data being sent back and forth is so small that the elevation data shows up almost instantly even on an EDGE connection.  Being a good citizen I only have the app request elevation data if the user is interested in seeing this type of data &#8211; this keeps data usage down and keeps load off Google&#8217;s servers.</p>
<p>The video below shows how the elevation data is displayed within the app.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/UzgwUBM23ww&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/UzgwUBM23ww&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.indieiphonedev.com%2F2010%2F04%2F09%2Felevation-for-routes%2F&amp;title=Elevation%20for%20routes" id="wpa2a_4"><img src="http://blog.indieiphonedev.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.indieiphonedev.com/2010/04/09/elevation-for-routes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

