<?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>ODM Technology &#187; iPhone</title>
	<atom:link href="http://blog.odmtech.com/tag/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.odmtech.com</link>
	<description>Ord's Blog</description>
	<lastBuildDate>Sat, 04 Jul 2009 15:22:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iPhone call forwarding indicator</title>
		<link>http://blog.odmtech.com/2009/07/04/iphone-call-forwarding-indicator/</link>
		<comments>http://blog.odmtech.com/2009/07/04/iphone-call-forwarding-indicator/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 15:19:35 +0000</pubDate>
		<dc:creator>Ord</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[3.0]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[call forwarding]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.odmtech.com/?p=100</guid>
		<description><![CDATA[Ever since I started using my iPhone, I wished it had a call forwarding indicator.  I typically give out my cell number as my main number when meeting people, and then forward the iPhone to wherever I am.  Sometimes, I forget to turn off the forwarding when I leave again, making me unreachable.
To [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since I started using my iPhone, I wished it had a call forwarding indicator.  I typically give out my cell number as my main number when meeting people, and then forward the iPhone to wherever I am.  Sometimes, I forget to turn off the forwarding when I leave again, making me unreachable.</p>
<p>To my delight, I discovered that since upgrading the OS to 3.0 my iPhone 3G now indicates when the call forwarding is active with an icon on the status bar.</p>
<p>I haven&#8217;t seen this feature announced, so I am not sure if it is part of the overall 3.0 package, or if it is a feature specific to my carrier: Rogers Canada.    The screen shot below shows the phone with the indicator on.  <div id="attachment_104" class="wp-caption alignleft" style="width: 490px"><img src="http://blog.odmtech.com/wp-content/uploads/2009/07/cfd-on.jpg" alt="iPhone 3G on Rogers with call forwarding on" title="cfd on" width="480" height="236" class="size-full wp-image-104" /><p class="wp-caption-text">iPhone 3G on Rogers with call forwarding on</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odmtech.com/2009/07/04/iphone-call-forwarding-indicator/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Riding with the iPhone</title>
		<link>http://blog.odmtech.com/2009/06/21/riding-with-the-iphone/</link>
		<comments>http://blog.odmtech.com/2009/06/21/riding-with-the-iphone/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 20:01:39 +0000</pubDate>
		<dc:creator>Ord</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.odmtech.com/2009/06/21/riding-with-the-iphone/</guid>
		<description><![CDATA[
I&#8217;m on a motorcycle trip this week, and left all technology behind&#8230; Except the iPhone.  It gives me the chance to get away without having to lug along a laptop and plan my trip around wifi hotspots. Before leaving, I subscribed to the Rogers data roaming plan. It&#8217;s still unreasonable, but it&#8217;s better that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/breakworld/2615136497/" title="V Star 1100 by Ord, on Flickr"><img src="http://farm4.static.flickr.com/3178/2615136497_c392b0bfd8.jpg" width="500" height="327" alt="V Star 1100" /></a></p>
<p>I&#8217;m on a motorcycle trip this week, and left all technology behind&#8230; Except the iPhone.  It gives me the chance to get away without having to lug along a laptop and plan my trip around wifi hotspots. Before leaving, I subscribed to the Rogers data roaming plan. It&#8217;s still unreasonable, but it&#8217;s better that the abuse I&#8217;d otherwise take for data roaming.  It makes email cheaper than text messaging while I am in the US.</p>
<p>It&#8217;s then end of the first day, and the iPhone has already proved itself.  First save came when one of my friend&#8217;s bikes broke down.  Google quickly gave us the location of the nearest Harley dealership, and their technician helped us with the diagnosis. A bit of tinkering and we were on our way.</p>
<p>A couple of hours later, I got a SMS telling me that there was a problem with one of my servers.  I launched the SSH client on my iPhone, logged into the server, found and fixed the problem. A few minutes later I was emailing my partner to let him know it was running.</p>
<p>Of course, the three other guys did make fun of me for not having the tip calculator app installed after lunch, but we were able to pay our bill anyway.</p>
<p>At stops for food and gas, I updated my facebook status so my wife could follow my progress.  Mapping is quicker and easier that it ever was with my handheld GPS.  The Wordpress app let&#8217;s me write and publish all this from my iPhone.  I even use it on occasion to make phone calls.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odmtech.com/2009/06/21/riding-with-the-iphone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Life without laptop</title>
		<link>http://blog.odmtech.com/2009/06/08/life-without-laptop/</link>
		<comments>http://blog.odmtech.com/2009/06/08/life-without-laptop/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 19:51:33 +0000</pubDate>
		<dc:creator>Ord</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[word press]]></category>

		<guid isPermaLink="false">http://blog.odmtech.com/?p=92</guid>
		<description><![CDATA[I am on the road at a conference as I write this. Normally, I don&#8217;t leave home without a laptop &#8211; but since I was travelling by motorcycle and space is at a premium I left the notebook at home. This meant putting a lot of faith in my iPhone, and so far it has [...]]]></description>
			<content:encoded><![CDATA[<p>I am on the road at a conference as I write this. Normally, I don&#8217;t leave home without a laptop &#8211; but since I was travelling by motorcycle and space is at a premium I left the notebook at home. This meant putting a lot of faith in my iPhone, and so far it has paid off. </p>
<p>Of course, getting &#038; sending emails, voicemails and tweets is commonplace with the iPhone, but could I do any &#8220;real work&#8221; if needed?  Turns out the answer is yes. </p>
<p>A client contacted us about a change to an online project that was needed urgently. It wasn&#8217;t a big change but it did need to be done before I&#8217;d be back.  I quickly logged in to the server over ssh conection using TouchTerm (<a href="http://www.jbrink.net/touchterm/index.html">touchterm</a>) launched vi and edited the file. A quick check in the browser, and I was emailing the client back to say that the change had been made. </p>
<p>I&#8217;m still not sure if I&#8217;d be comfortable to be away for a few weeks without a laptop, but I won&#8217;t worry for a few days as long as I have the iPhone with me. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odmtech.com/2009/06/08/life-without-laptop/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>BJJ Timer iPhone App</title>
		<link>http://blog.odmtech.com/2009/03/24/bjj-timer-iphone-app/</link>
		<comments>http://blog.odmtech.com/2009/03/24/bjj-timer-iphone-app/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 15:50:14 +0000</pubDate>
		<dc:creator>Ord</dc:creator>
				<category><![CDATA[App development]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[BJJ]]></category>
		<category><![CDATA[jiu jitsu]]></category>

		<guid isPermaLink="false">http://blog.odmtech.com/?p=82</guid>
		<description><![CDATA[
Last night I recieve notice from the app store that they had approved my first submitted application.  It took just about 10 days for the process, which wasn&#8217;t nearly as bad as I thought it could be.  I had read on the forums of people waiting months, or just never getting an answer.
This program is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.odmtech.com/om/BJJtimer/"><img class="alignright" title="Jiu Jitsu Timer on iPhone" src="http://www.odmtech.com/images/bjj_timer/bjjtimer_white_250.jpg" alt="" width="250" height="515" /></a></p>
<p>Last night I recieve notice from the app store that they had approved my first submitted application.  It took just about 10 days for the process, which wasn&#8217;t nearly as bad as I thought it could be.  I had read on the forums of people waiting months, or just never getting an answer.</p>
<p>This program is for score keeping of Brazilian jiu jitsu matches, a martial art that I practice regularly.  Creating something that I could use in my favorite sport was a good way for me to learn about iPhone programming, objective C and the SDK.</p>
<p>When starting to work with a new language or framework, I find it&#8217;s helpful to start with something I know well &#8211; that way the learning is focused on the software, rather than on the real world problem I am solving.   Had I tried to start by making a game, for example, then I would have had to learn about game design at the same time, dividing my attention.</p>
<p>Submitting to the app store was more about learning the process than expecting this to be a revenue generator.  I imagine that the sub set of people that own iPhones and referee Jiu Jitsu matches is pretty small, but at least it will be available for them.</p>
<p>It is available for purchase at the <a href="http://itunes/apps/bjjtimer">app store</a> now.  An update (version 1.1) adds some features for handling ADCC rules submission wrestling matches, and should be available in the next 2 weeks.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odmtech.com/2009/03/24/bjj-timer-iphone-app/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>iPhone tableView</title>
		<link>http://blog.odmtech.com/2009/03/02/iphone-tableview/</link>
		<comments>http://blog.odmtech.com/2009/03/02/iphone-tableview/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 17:52:27 +0000</pubDate>
		<dc:creator>Ord</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[tableView]]></category>

		<guid isPermaLink="false">http://blog.odmtech.com/?p=45</guid>
		<description><![CDATA[The Table View is widely used in iPhone apps, and ther are many examples of using it on navigation pages in the iPhone SDK example programs.  These examples generally show how to add a tableView that fills the screen, or sometimes with a Navigation  Bar element at the top.
Sometimes, we want to use a table [...]]]></description>
			<content:encoded><![CDATA[<p>The Table View is widely used in iPhone apps, and ther are many examples of using it on navigation pages in the iPhone SDK example programs.  These examples generally show how to add a tableView that fills the screen, or sometimes with a Navigation  Bar element at the top.</p>
<p>Sometimes, we want to use a table view as a smaller element within another view.  The iPhone Clock app uses this approache in stopwatch mode to show the lap times.</p>
<p>In this case, the view that contains the TableView will typically be a subclass of UIViewController.  We need only add the protocols UITableViewDelegate and UITableViewDataSource to our view.  This is done in the header file:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#import &lt;UIKit/UIKit.h&gt;</span>
&nbsp;
@interface MyViewController <span style="color: #339933;">:</span> UIViewController 
  <span style="color: #339933;">&lt;</span>UITableViewDelegate<span style="color: #339933;">,</span> UITableViewDataSource<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
@end</pre></div></div>

<p>For a simple view, we will need to add the numberOfRowsInSection and cellForRowAtIndex methods.  This example shows a table of 5 rows, with cells labeled Item #0 to Item #4.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#import &quot;MyViewController.h&quot;</span>
&nbsp;
@implementation MyViewController
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>NSInteger<span style="color: #009900;">&#41;</span>tableView<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UITableView <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>tableView
  numberOfRowsInSection<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSInteger<span style="color: #009900;">&#41;</span>section<span style="color: #009900;">&#123;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">5</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// we want 5 rows in our table.</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>UITableViewCell <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>tableView<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UITableView <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>tableView
     cellForRowAtIndexPath<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSIndexPath <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>indexPath<span style="color: #009900;">&#123;</span>
&nbsp;
     NSString <span style="color: #339933;">*</span>Identifier <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span> <span style="color: #009900;">&#91;</span>NSString alloc<span style="color: #009900;">&#93;</span> initWithFormat<span style="color: #339933;">:</span>@<span style="color: #ff0000;">&quot;Item #%d&quot;</span><span style="color: #339933;">,</span> 
          <span style="color: #009900;">&#91;</span>indexPath indexAtPosition<span style="color: #339933;">:</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
     UITableViewCell <span style="color: #339933;">*</span>cell <span style="color: #339933;">=</span>
          <span style="color: #009900;">&#91;</span>tableView dequeueReusableCellWithIdentifier<span style="color: #339933;">:</span>Identifier<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>cell <span style="color: #339933;">==</span> nil<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
          cell <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span> <span style="color: #009900;">&#91;</span> <span style="color: #009900;">&#91;</span>UITableViewCell alloc<span style="color: #009900;">&#93;</span> 
               initWithFrame<span style="color: #339933;">:</span>CGRectZero reuseIdentifier<span style="color: #339933;">:</span> Identifier<span style="color: #009900;">&#93;</span> 
               autorelease<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
     cell.<span style="color: #202020;">text</span> <span style="color: #339933;">=</span> Identifier<span style="color: #339933;">;</span>	
     <span style="color: #b1b100;">return</span> cell<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
@end</pre></div></div>

<p>In interface builder, connect the datasource and delegate outlets from your table view directly to file&#8217;s owner.  There is no need to add a tableViewController to the nib.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odmtech.com/2009/03/02/iphone-tableview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Learning iPhone development</title>
		<link>http://blog.odmtech.com/2009/02/27/learning-iphone-development/</link>
		<comments>http://blog.odmtech.com/2009/02/27/learning-iphone-development/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 03:15:03 +0000</pubDate>
		<dc:creator>Ord</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://blog.odmtech.com/?p=43</guid>
		<description><![CDATA[Starting to develop on the iPhone is surprisingly straightforward.  Having previously developped on the palm platform, I expected the SDK to be similar in complexity and learning time.  I was happy to find that the iPhones SDK and tools are remarkably quick to learn.
It had been some time since I did any C or C++ [...]]]></description>
			<content:encoded><![CDATA[<p>Starting to develop on the iPhone is surprisingly straightforward.  Having previously developped on the palm platform, I expected the SDK to be similar in complexity and learning time.  I was happy to find that the iPhones SDK and tools are remarkably quick to learn.</p>
<p>It had been some time since I did any C or C++ coding, so I wasn&#8217;t sure how I&#8217;d like learning objective-C.   It turned out to be easy enough, once I got used to the [object message] syntax.</p>
<p>For a quick guide to getting started, take a look a <a href="http://furbo.org/2009/02/19/bootstrap/">Furbo.org &#8211; Boostrap article.</a> I ordered several of the books recommended there, including <a href="http://www.amazon.com/gp/product/1430216263?ie=UTF8&amp;tag=odmtech-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1430216263">Beginning iPhone Development: Exploring the iPhone SDK</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=odmtech-20&amp;l=as2&amp;o=1&amp;a=1430216263" border="0" alt="" width="1" height="1" />, and I find this to be an excellent book.  Not only does it teach iPhone coding in detail,but it also covers using XCode and Interface Builder.  Since I had never used a Mac before for anything, the explanations of the development tools were very welcome.</p>
<p>Getting a developer account under for my corporation has been taking some time, but I was able to get a personal account in 30 minutes.  I finally received a request from Apple to fax them my articles of incorporation.  I am not sure how long it will take from then, and I am not sure if I will bother with the corporate account since it will make very little difference in my case.</p>
<p>It will still take a few more days to come up to speed, and then app development can start.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odmtech.com/2009/02/27/learning-iphone-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
