<?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>Corporation Unknown &#187; iPad</title>
	<atom:link href="http://corporationunknown.com/blog/category/ipad/feed/" rel="self" type="application/rss+xml" />
	<link>http://corporationunknown.com/blog</link>
	<description></description>
	<lastBuildDate>Tue, 21 Feb 2012 06:21:38 +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>iPad and the Digital Hub, Revisited</title>
		<link>http://corporationunknown.com/blog/2011/03/10/ipad-and-the-digital-hub-revisited/</link>
		<comments>http://corporationunknown.com/blog/2011/03/10/ipad-and-the-digital-hub-revisited/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 14:33:02 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://corporationunknown.com/blog/?p=274</guid>
		<description><![CDATA[Apple released iOS 4.3 yesterday, and it looks like iTunes Home Sharing provides almost everything I had wished for in my original post. There seem to be some quirks (all videos and podcasts are marked as unplayed on the device) and other behaviors I&#8217;d like changed (watching/listening to a podcast on the device doesn&#8217;t report [...]]]></description>
			<content:encoded><![CDATA[<p>Apple released iOS 4.3 yesterday, and it looks like <a href="http://www.appleinsider.com/articles/11/03/03/inside_ios_4_3_mobile_streaming_with_itunes_home_sharing.html">iTunes Home Sharing</a> provides almost everything I had wished for in <a href="http://corporationunknown.com/blog/2010/07/08/ipad-and-the-digital-hub/">my original post</a>.</p>
<p>There seem to be some quirks (all videos and podcasts are marked as unplayed on the device) and other behaviors I&#8217;d like changed (watching/listening to a podcast on the device doesn&#8217;t report that to the shared library). These niggles are really just small issues compared to the big advance of having access to my full library.</p>
<p>Thank you, iOS team!</p>
]]></content:encoded>
			<wfw:commentRss>http://corporationunknown.com/blog/2011/03/10/ipad-and-the-digital-hub-revisited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bughunting a Bashful Table View</title>
		<link>http://corporationunknown.com/blog/2010/12/14/bughunting-a-bashful-table-view/</link>
		<comments>http://corporationunknown.com/blog/2010/12/14/bughunting-a-bashful-table-view/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 15:46:15 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://corporationunknown.com/blog/?p=250</guid>
		<description><![CDATA[I ran down a strange bug yesterday that I thought I would recount in the hopes of saving someone else the half day of frustration. I was going along, minding my own business, implementing a typical -tableView:didSelectRowAtIndexPath: delegate method to create a view controller, push it onto the navigation stack, and then&#8230;nothing. The view didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I ran down a strange bug yesterday that I thought I would recount in the hopes of saving someone else the half day of frustration.</p>
<p>I was going along, minding my own business, implementing a typical <code>-tableView:didSelectRowAtIndexPath:</code> delegate method to create a view controller, push it onto the navigation stack, and then&#8230;nothing. The view didn&#8217;t appear, and the app interface became unresponsive. Numerous pauses in the debugger showed what would appear to be normal stacks in the running of the app&#8211;no infinite recursion going on, thankfully.</p>
<p>The view was actually in a strange nesting of <code>UITableViewControllers</code>, <code>UINavigationControllers</code> and <code>UITabBarControllers</code>, so I reworked that to the bare bones of a <code>UITableViewController</code> pushing a freshly made <code>UITableViewController</code> onto its navigationController. I verified that it was being initialized properly, and that I had a valid navigationController to push onto (and other view controllers did push with the same navigationController). Still no change.</p>
<p><span id="more-250"></span>Then I added breakpoints to every <code>UITableViewDelegate</code> and <code>DataSource</code> method I&#8217;d implemented, even the trivial hardcoded ones (&#8220;<code>return 3;</code>&#8221; for <code>-numberOfSectionsInTableView:</code>) at first to ensure they were being called (they were). Thus began the tedium of following the chain of 4 or 5 calls per table row until I found the offending code.</p>
<p>This new table view is composed of a number of sections each composed of only one cell. The cells are designed in Interface Builder as top-level objects, and are IBOutlets of the File&#8217;s Owner View Controller. Technically, it&#8217;s one big scroll view but I&#8217;m using this design to provide some layout flexibility if the client wants to reorganize sections, and I thought it would be cool to have the dynamic scrolling of section headers, too.</p>
<p>Since I want the IB objects to define the layout, I determine the height of each row based on the view&#8217;s frame: </p>
<pre>
	height = CGRectGetHeight( self.playerStatsCell.frame );
</pre>
<p>The value for height of this cell (the last on the list&#8211;the others were fine) was a &#8220;whopping&#8221; 6.30104785e-38. What was going on here?!</p>
<p>Well, <code>self.playerStatsCell</code> wasn&#8217;t actually connected yet because I was testing (<em>trying</em> to test) one row/section at a time. Calling the frame method on a nil object seems like a normal thing to do in messaging-nil-happy Objective-C. But it&#8217;s not. The call is effectively short-circuited, and the temporary <code>CGRect</code> variable the return value was supposed to fill is left uninitialized, which is the bizarre height value returned by <code>CGRectGetHeight</code>.</p>
<p>This call is equivalent to:</p>
<pre>
	CGRect frame; // uninitialized struct
	frame = self.playerStatsCell.frame;
	height = CGRectGetHeight( frame );
</pre>
<p>A simple change to the following would fix it:</p>
<pre>
	CGRect frame = CGRectZero; // initialized struct
	frame = self.playerStatsCell.frame;
	height = CGRectGetHeight( frame );
</pre>
<p>(In my case, I resolved it by connecting a temporary cell object in IB.)</p>
<p>What did I learn from this?</p>
<ol>
<li>Messaging to nil is normally fine, but definitely not for struct-returning methods.</li>
<li>Returning a cell height that is very, very tiny from <code>-tableView:heightForRowAtIndexPath:</code> results in &#8220;strange behavior.&#8221;</li>
</ol>
<p>I still don&#8217;t know exactly what the app was doing while it <em>wasn&#8217;t</em> displaying the new table view, but now I know what to quickly look for when I can&#8217;t push a <code>UITableViewController</code> in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://corporationunknown.com/blog/2010/12/14/bughunting-a-bashful-table-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad and the Digital Hub</title>
		<link>http://corporationunknown.com/blog/2010/07/08/ipad-and-the-digital-hub/</link>
		<comments>http://corporationunknown.com/blog/2010/07/08/ipad-and-the-digital-hub/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 18:46:50 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[iPad]]></category>
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://corporationunknown.com/blog/?p=239</guid>
		<description><![CDATA[Yesterday I tweeted about a feature I would like: Want: iPod on iPad able to browse desktop iTunes à la Home Sharing. Watching WWDC videos on iPad w/o having to sync first&#8211;yum. I received a few recommendations for Air Video and StreamToMe. I&#8217;d forgotten that I&#8217;d downloaded Air Video but hadn&#8217;t set up the server; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://twitter.com/pgor/status/17982503054">Yesterday I tweeted</a> about a feature I would like:</p>
<blockquote><p>Want: iPod on iPad able to browse desktop iTunes à la Home Sharing. Watching WWDC videos on iPad w/o having to sync first&#8211;yum.</p></blockquote>
<p>I received a few recommendations for <a href="http://www.inmethod.com/">Air Video</a> and <a href="http://projectswithlove.com/streamtome/">StreamToMe</a>. I&#8217;d forgotten that I&#8217;d downloaded Air Video but hadn&#8217;t set up the server; I&#8217;d also forgotten about StreamToMe even though I subscribe to Matt Gallagher&#8217;s blog. </p>
<p>I fired up the Air Video Server and started it serving the iTunes U playlist. Connecting and browsing from the iPad client was simple and straightforward. Trying to stream a WWDC video paused to buffer annoyingly often&#8211;which I blame less on the software than the 2GHz Mini it was running on, which probably also had the misfortune to have Time Machine kick in at the same time. But it doesn&#8217;t seem to have a functionality I implied by the &#8220;Home Sharing&#8221; reference: Copy the video to the iPad to watch elsewhere later. StreamToMe looks to have similar features (and lack thereof) to Air Video, so I didn&#8217;t test it.</p>
<p>I appreciate the recommendations, I really do. But neither of these can get past the one requirement I didn&#8217;t specify: I don&#8217;t <em>want</em> a third-party solution. My tweet was really a passive-aggressive desire to have Apple implement this.</p>
<p><span id="more-239"></span>I have fully committed to iTunes being my central media repository. It serves 157GB of my music, 148GB of movies, 100GB of TV shows, 144GB of iTunes U videos (primarily WWDC videos) and a variable amount of audio and video podcasts. As a result, I don&#8217;t have many files in formats foreign to iTunes, which both these applications seem focused on solving and I expect they handle admirably.</p>
<p>Both of my AppleTVs can access any file in the desktop&#8217;s iTunes library, even though with 40GB and 160GB drives they obviously can&#8217;t hold copies of everything. (True, I can&#8217;t instruct an AppleTV to copy files to itself, but I don&#8217;t feel the desire to pick it up and take it elsewhere, either.)</p>
<p>My iPad cannot access all the files.</p>
<p>My laptop can browse any file on the desktop&#8217;s iTunes library; thanks to Home Sharing it can copy any file just by dragging it to the local library. It can even browse other libraries that are shared on the network.</p>
<p>My iPad cannot copy files to its local library, or browse other shared libraries.</p>
<p>The &#8220;digital plumbing&#8221; is there in DAAP and Home Sharing to make this happen, but third party developers are left to write their own servers to support their clients. I have no reason to distrust InMethod or Matt Gallagher&#8211;and I&#8217;m pretty sure that either of them can write a better server than I ever could&#8211;but each additional server increases the likelihood of conflicts and security problems, so I don&#8217;t <em>want</em> to install and maintain additional, practically redundant servers.</p>
<p>I <em>want</em> a digital hub; one machine serving the same media in different ways is not a hub.</p>
<p>During the iPad announcement, Steve Jobs positioned the iPad as a third type of device &#8220;between a laptop and a smartphone.&#8221; In my experience, that&#8217;s an astute description. In regards to media handling, though, I feel the iPad still behaves much more like my iPhone than my MacBook Pro.</p>
]]></content:encoded>
			<wfw:commentRss>http://corporationunknown.com/blog/2010/07/08/ipad-and-the-digital-hub/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My Accessorizer Configuration</title>
		<link>http://corporationunknown.com/blog/2010/06/27/my-accessorizer-configuration/</link>
		<comments>http://corporationunknown.com/blog/2010/06/27/my-accessorizer-configuration/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 19:52:28 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://corporationunknown.com/blog/?p=216</guid>
		<description><![CDATA[Due to &#8220;overwhelming demand,&#8221; I am sharing my configuration set for Accessorizer here. I think there needs to be some explanation to many of the decisions, though, so here you go. This is not intended to be an interminable discussion of coding style and practices, though&#8211;if you disagree, go ahead and make your own configuration [...]]]></description>
			<content:encoded><![CDATA[<p>Due to &#8220;overwhelming demand,&#8221; I am sharing my configuration set for Accessorizer here. I think there needs to be some explanation to many of the decisions, though, so here you go. This is not intended to be an interminable discussion of coding style and practices, though&#8211;if you disagree, go ahead and make your own configuration based on mine. This is also not intended as comprehensive documentation for Accessorizer&#8211;read its included documentation, explore tooltips, and experiment freely.</p>
<p><span id="more-216"></span><br />
<blockquote>
<p>Download the <a title="CorporationUnknown.azcf.zip" href="http://corporationunknown.com/blog/wp-content/uploads/2010/06/CorporationUnknown.azcf_.zip">Corporation Unknown configuration</a> for Accessorizer.</p>
</blockquote>
<p>At a previous employer, we ran into issues where newcomers were confused by Objective-C&#8217;s memory management, especially the differences between using properties (and dot notation) and directly accessing the ivar. As you might expect, this led to many memory-related problems. I&#8217;ve long been a proponent of only using accessors to access a member unless you have a darn good reason. (And Cocoa&#8217;s ? automatic key-value observing makes it even more difficult to have a good reason not to.) In order to visibly identify accessor-vs-direct access, we instituted a naming convention to make <a href="http://www.joelonsoftware.com/articles/Wrong.html">direct access look wrong</a>: ivars are named with an underscore prefix (&#8220;_ivar&#8221;) and properties are not. To make this even more obvious that ivars are implementation details, we declared them @private.</p>
<p>You may disagree with this methodology; that&#8217;s fine. But without this context, you might have a hard time understanding my configuration decisions&#8211;and why Accessorizer especially rocks in this setup.</p>
<p>When I first started using Accessorizer, I thought of it as a code generator, and it&#8217;s hard not to chafe at your disagreements with how code generators generate code. I&#8217;ve found that thinking of it as a code <em>template</em> generator makes it easier: Generate the majority of stuff you use, omit the stuff you don&#8217;t normally use, and be comfortable with the knowledge that you will regularly have to tweak its output&#8211;it&#8217;s still better than writing it from scratch every time.</p>
<h1>Accessor Style</h1>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://corporationunknown.com/blog/wp-content/uploads/2010/06/Accessorizer-Properties.png" border="0" alt="Accessorizer Properties" width="316" height="116" /></p>
<ul>
<li>&#8220;ObjC 2.0 Properties&#8221; is always turned on. Period.</li>
<li>I always use the Defaults Table (more about that later).</li>
<li>&#8220;Detect IBOutlets&#8221; automatically inserts the &#8220;IBOutlet&#8221; declaration into recognized subclasses. Sometimes it doesn&#8217;t identify a class I want to be an IBOutlet, but I find this to be right much more often than it is wrong.</li>
<li>&#8220;Append self.view=nil&#8221; is a somewhat strangely worded option. Checking it will generate code to nil those properties identified as IBOutlets. Combined with the &#8220;-(void)viewDidUnload&#8221; checkbox to its right, it will generate a full viewDidUnload method to release your IBOutlets.</li>
<li>&#8220;Assign delegates&#8221; automatically overrides your assign/retain/copy property generation setting to be &#8220;assign&#8221; for any &#8220;id&#8221; property (or others identified as a delegate form; again, I find more often right than wrong).</li>
<li>I uncheck &#8220;Omit assign for scalars&#8221;. True, the &#8220;assign&#8221; is not necessary, but I find it easier to scan for &#8220;assign&#8221; when I&#8217;m code reviewing than have to think about each type and whether it is handled appropriately. (According to Apple&#8217;s documentation, &#8220;assign&#8221; is also required for garbage collection but I haven&#8217;t written any GC code yet.)</li>
<li>&#8220;Assign IBOutlets&#8221; is unchecked. I guess I&#8217;m still in the &#8220;retain outlets&#8221; camp, until I bother to change my mind.</li>
<li>&#8220;BOOL getter=isValue&#8221; automatically identifies a &#8220;BOOL running&#8221; property and defines the getter as &#8220;isRunning&#8221;, just as Apple recommends.</li>
</ul>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://corporationunknown.com/blog/wp-content/uploads/2010/06/AccessorizerProps2.png" border="0" alt="Accessorizer Properties 2" width="498" height="111" /></p>
<ul>
<li>Since I&#8217;ve primarily been coding for iOS lately, I declare my properties &#8220;nonatomic&#8221;. If/when you&#8217;re working on the desktop, you probably want &#8220;omit this&#8221;&#8211;change it or create a &#8220;desktop&#8221; configuration.</li>
<li>I omit readonly/readwrite. Most of the readonly properties I create are not backed by ivars, so I find I don&#8217;t need to override this behavior often.</li>
<li>I haven&#8217;t been much concerned about __weak or __strong, so I omit it. You may decide otherwise.</li>
<li>&#8220;@synthesize&#8221; will create appropriate @synthesize statements when generation the Implementation. (Be sure to check &#8220;generate getter/setter&#8221;, even though it applies to @dynamic&#8211;I&#8217;ll explain later when talking about Defaults Table.)</li>
</ul>
<h2>Getter/Setter settings</h2>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://corporationunknown.com/blog/wp-content/uploads/2010/06/AccessorizerGetterSetter.png" border="0" alt="Accessorizer Getters and Setters" width="417" height="121" /></p>
<p>Not much to say about these settings other than &#8220;Use Defaults Table&#8221;. They don&#8217;t come into play very often, since I mainly use @synthesized properties but these settings work for me when I don&#8217;t. To see the effects on generated code, temporarily switch your properties generation to @dynamic with &#8220;generate getter/setter&#8221; checked and Implementation being generated&#8211;changes will be reflected as you make them.</p>
<h2>Dealloc</h2>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://corporationunknown.com/blog/wp-content/uploads/2010/06/AccessorizerDealloc.png" border="0" alt="Accessorizer Dealloc" width="378" height="123" /></p>
<ul>
<li>I default to &#8220;self.property = nil&#8221; behavior; I know others disagree. If you&#8217;re one of them, simply change the option to &#8220;release&#8221; in your configuration. If you do agree, or simply want to give this way a try, make a point of removing any related KVO or NSNotification observers before these generated lines or you will receive notifications of the nil settings and you most likely don&#8217;t want that.</li>
<li>&#8220;dealloc full block&#8221; is the primary reason I am not just making my configuration available without comment. If you were to just take my configuration and copy the generated code, it would break your build because I leave this deselected so it&#8217;s not in a code block. As I develop my classes, I add ivars and use Accessorizer to generate the related code. Most of the code is pretty easy to wholesale copy-n-paste, but I tend to have more logic in dealloc than Accessorizer can know about (KVO and NSNotification removal, setting delegates to nil, etc.) and I find it easier to copy this generated dealloc code into an existing method than to use this as a dealloc method and move existing behaviors into it. If you want a full dealloc method, just check the box.</li>
</ul>
<h2>Init and Undo</h2>
<p>I&#8217;m not sure why, but I still tend to write my own init methods. Someday I&#8217;ll explore using Accessorizer for this and Undo registration more fully; until then, you&#8217;re on your own.</p>
<h1>Defaults Table</h1>
<p>The defaults table is used to override the &#8220;one size fits all&#8221; property generation based on the ivar&#8217;s type. I have configured every superclass of &#8220;NSMutable&lt;Something&gt;&#8221; to default to &#8220;copy&#8221; instead of the default &#8220;retain&#8221; in order to avoid holding reference to a mutable object when I&#8217;m expecting immutable. (This is explained in <a href="http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW27">Apple&#8217;s documentation</a>.) I don&#8217;t even use some of these classes, but when I do I don&#8217;t want to be surprised. I&#8217;m always free to edit the declaration on a case-by-case basis, but this is the behavior I want ninety-some percent of the time.</p>
<p>Another fun feature of the Defaults Table is the &#8220;generation&#8221; setting. If you have a class type whose behavior you tend to override often, define its generation as &#8220;dynamic&#8221;. Every time you use that class type, Accessorizer will generate an @dynamic declaration&#8211;and the accessor methods for you to use as a starting template. (This is why I check the &#8220;generate getter/setter&#8221; in the Accessor tab even though it normally won&#8217;t do anything.)</p>
<h1>Custom Table</h1>
<p>I don&#8217;t really use this tab, and I don&#8217;t believe any of it gets saved into a configuration set since it&#8217;s primarily for point-and-click tweaking of behavior on an ivar-by-ivar basis.</p>
<h1>Coding Style</h1>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://corporationunknown.com/blog/wp-content/uploads/2010/06/AccessorizerCodingStyle.png" border="0" alt="Accessorizer ivar Prefix and Suffix" width="195" height="217" /></p>
<p>As I mentioned, I prefix my ivars with an underscore, so here is where I define that. By defining my ivar Prefix as &#8220;_&#8221; and Suffix as &#8220;none&#8221;, Accessorizer automatically recognizes that underscore and strips it when declaring the property. It also properly declares the backing ivar in the @synthesize directive.</p>
<ul>
<li>The Argument Prefix is used when generating methods like -initWith{&#8230;}. I vacillate between &#8220;a&#8221; and &#8220;none&#8221;.</li>
<li>Formatting Properties: new to 2.0 is the ability to tweak whitespace in declarations more than you could in previous versions. I&#8217;m happy because now I can use my preferred &#8220;NSString* title&#8221; form; I know many others still hew to the &#8220;asterisk must bind the the variable, not type&#8221; but you&#8217;re free to change it for yourself.</li>
<li>Formatting Methods: Configure the display to generate some accessor methods and experiment with these settings to see which layout you prefer. The &#8220;Tight&#8221; spacing option is actually more compressed than I like, but I find the &#8220;Spaced&#8221; option way too spread out (and I&#8217;m someone who loves whitespace). Therefore, I default to &#8220;Tight&#8221; because it&#8217;s easier to insert the few spaces I prefer than delete all the ones I don&#8217;t.</li>
<li>Formatting Pragma Marks: I love me some pragma marks, but try not to go overboard with them. Feel free to experiment.</li>
<li>Init Style: Apparently, &#8220;self = [super init]&#8221; is the current Apple-approved format. I&#8217;m ambivalent.</li>
</ul>
<h1>Collection Accessors, Keyed Archiving, KVO, Locking, Singleton, General and Sort</h1>
<p>Most of these tabs are more hands-on generation of code. You need to enter a class name, and it will generate code right there&#8211;I don&#8217;t use these as frequently as accessor generation, and you can tweak the layout more directly when you do need it. At some point, I may have changed my settings from the defaults you would encounter in a new install, but I don&#8217;t really have strong suggestions for you here.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://corporationunknown.com/blog/2010/06/27/my-accessorizer-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the Zeroth Day of iPad…</title>
		<link>http://corporationunknown.com/blog/2010/04/02/on-the-zeroth-day-of-ipad%e2%80%a6/</link>
		<comments>http://corporationunknown.com/blog/2010/04/02/on-the-zeroth-day-of-ipad%e2%80%a6/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 01:34:30 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://corporationunknown.com/blog/?p=184</guid>
		<description><![CDATA[I realize I&#8217;m not the typical iPhone and iPad consumer; I&#8217;m perfectly happy to pay a nominal amount for a piece of software. Being a developer, I guess that&#8217;s kind of the Golden Rule. But it&#8217;s something I&#8217;ve felt for a long time: Pay the band a decent price for the music you enjoy and [...]]]></description>
			<content:encoded><![CDATA[<p>I realize I&#8217;m not the typical iPhone and iPad consumer; I&#8217;m perfectly happy to pay a nominal amount for a piece of software. Being a developer, I guess that&#8217;s kind of the Golden Rule. But it&#8217;s something I&#8217;ve felt for a long time: Pay the band a decent price for the music you enjoy and they can make more; pay a developer a decent price and they can afford the time to keep improving it. (That said, I&#8217;m perfectly happy to accept promo codes for your apps, even though I don&#8217;t have an app of my own right now to return in kind.)</p>
<p>I attended WWDC08 (the First iPhone WWDC) with the intent of avoiding iPhone topics because I have desktop ideas. I still have those desktop ideas, but since then the iPhone work has been more available, and I&#8217;ve become more intrigued by the possibilities. I worked as a (small) part of a team on an iPad app that&#8217;s on the store today&#8211;if you aren&#8217;t averse to paying money for an app, there&#8217;s a good chance I may have a bit of code on your iPad. (The app is intentionally <em>not</em> in the list of apps that follow.) I am currently working on another contract for an updated iPhone version and and iPad adaptation. It&#8217;s been fascinating to watch what Apple has done with the software, as well as how others are interpreting the platform without having hardware to test. For me, apps aren&#8217;t just about whether they&#8217;re functional; they&#8217;re a way to see what the popular interface designs are, as well as how developers took things in a different direction.</p>
<p>I just bought a bunch of applications for my iPad, and I haven&#8217;t even touched the device yet. I held off a whole day after the iPad App Store opened&#8211;yesterday I only downloaded free apps (in case they started charging for them later) and added items to my Want List while browsing through the list. Then I realized I&#8217;m going to want to dive right into syncing and running them when I rip apart the packaging tomorrow. <em>Then</em> I thought it might be worthwhile to make note of <em>why</em> I bought them before even trying them out.</p>
<p><span id="more-184"></span>First, credit to apps I already have (paid and free) that now have Universal versions:</p>
<hr />
<h1>Updated Apps</h1>
<h2><a href="http://itunes.apple.com/us/app/now-playing/id284939567?mt=8">Now Playing</a></h2>
<p>One of the first apps I had on my iPhone, and it&#8217;s still my go-to for finding movie times and reviews. The Netflix integration was nice, although I felt it added a lot of data download time to it (perhaps the new official Netflix app will convince me to use only it). I don&#8217;t anticipate my iPad will replace the iPhone as my &#8220;out and about&#8221; device, so we&#8217;ll see how much I use this.</p>
<h2><a href="http://itunes.apple.com/us/app/imdb-movies-tv/id342792525?mt=8">IMDb</a></h2>
<p>I&#8217;m a movie info dork; finally having the IMDb app on the iPhone was a welcome relief from using the site in Mobile Safari. We&#8217;ll see how much the iPad space adds.</p>
<h2><a href="http://itunes.apple.com/us/app/instapaper-pro/id288545208?mt=8">Instapaper Pro</a></h2>
<p>The latest <a href="http://itunes.apple.com/us/app/netnewswire-premium/id331598976?mt=8">NetNewsWire for iPhone</a> finally switched me from reading everything right at the moment to using <a href="http://www.instapaper.com/">Instapaper</a> as my &#8220;tab equivalent&#8221; (my desktop NetNewsWire constantly has plenty of tabs I &#8220;need&#8221; to get around to reading). Being an app developer without many graphics editor skills, <a href="http://www.marco.org/">Marco Arment&#8217;s</a> designs are an inspiration for seemingly minimal standard interfaces with lots of thought behind them, and the iPad screenshots look so much more engrossing than the iPhone version does. I would have paid again for an iPad version, but will happily accept that Marco decided against that.</p>
<h2><a href="http://itunes.apple.com/us/app/wordpress/id335703880?mt=8">WordPress</a></h2>
<p>With the iPad&#8217;s screen, I may actually be enticed to write with it instead of <em>MarsEdit</em> on the desktop. Maybe.</p>
<h2><a href="http://itunes.apple.com/us/app/reiner-knizias-money/id349220571?mt=8">Reiner Knizia&#8217;s Money</a></h2>
<p>I&#8217;m a big fan of boardgames, but while I love complex boardgames, I don&#8217;t get into big involved videogames (a fact that confounds many of my friends, especially those <em>in</em> the videogame industry). I&#8217;m really excited about some of the possibilities the iPad brings to boardgaming.</p>
<p><a href="http://www.boardgamegeek.com/boardgame/125/money">Money</a> is a card game I played once then hunted down a German copy of before it was reprinted recently. Unfortunately, it&#8217;s a bit quirky to get your head around on first play, so I haven&#8217;t found a willing group to play. Luckily, Shannon Appelcline has done an excellent job of fitting it into the iPhone, and I&#8217;m looking forward to it having breathing room on the iPad.</p>
<h2><a href="http://itunes.apple.com/us/app/mu/id351448383?mt=8">Mü</a></h2>
<p><a href="http://www.boardgamegeek.com/boardgame/152/mu-more">Mü</a> is an intriguing trick-taking card game that I haven&#8217;t quite been able to figure out the rules from the insert, so I downloaded the app primarily as a tutor. I haven&#8217;t had time to actually play it yet, but I&#8217;m looking forward to it still.</p>
<hr />
<h1>Paid Apps</h1>
<h2>iWork</h2>
<p>Duh. I don&#8217;t really use the iWork desktop apps much (in order, probably <a href="http://itunes.apple.com/us/app/keynote/id361285480?mt=8">Keynote</a>, <a href="http://itunes.apple.com/us/app/pages/id361309726?mt=8">Pages</a>, then <a href="http://itunes.apple.com/us/app/numbers/id361304891?mt=8">Numbers</a>) but these are obviously the standard bearers of iPad apps. As a developer of iPad and iPhone apps, it would be criminal to not pick these over for ideas and <em>de facto</em> standards.</p>
<h2><a href="http://itunes.apple.com/us/app/netnewswire-for-ipad/id363704172?mt=8">NetNewsWire</a></h2>
<p>I expect there will be some grumbling over this app&#8217;s somewhat erratic pricing history, having released a free (ad supported) and premium ($4.99 to remove ads) iPhone version, and now $9.99 to have it on the iPad. Doesn&#8217;t matter to me; NetNewsWire has been my RSS reader of choice since before NewsGator acquired them, and this is probably the most beautiful version yet without being cute and clever.</p>
<h2><a href="http://itunes.apple.com/us/app/1password-for-ipad/id364747489?mt=8">1Password</a></h2>
<p>Another app I can&#8217;t live without. Autogenerating strong unique passwords so I don&#8217;t have to remember them, syncing them to all my devices and computers, all while being stylish. There was no hesitation in paying for this on a new platform. </p>
<p>[Update: Just after I post this, I <a href="http://blog.agile.ws/post/487037159/1password-ipad-3-price-development-update">read</a> that I would have gotten 1Password Pro as a free Universal update. Oh well, such is the price of trying to do things sight unseen. I believe in learning from other people's mistakes--learn from mine and go grab <a href="http://itunes.apple.com/us/app/1password-pro/id319898689?mt=8">1Password Pro</a> now if you want to run it on iPhone and iPad.]</p>
<h2><a href="http://itunes.apple.com/us/app/things-for-ipad/id364365411?mt=8">Things</a></h2>
<p>$49.95 for the desktop app; $9.99 for the iPhone version; now another $19.99 to have it on the iPad? Yup, not a moment&#8217;s hesitation there. In my opinion, the whole point of a task list is to have it with you everywhere. Things does that with Apple Design Award-winning style and the iPad version looks like even more design inspiration. I know I don&#8217;t use this nearly as hard as others do, but I still feel it&#8217;s been worth every penny.</p>
<h2><a href="http://itunes.apple.com/us/app/articles-for-ipad/id364881979?mt=8">Articles</a></h2>
<p>I thought the recently released iPhone version of this was indeed very elegant, but i didn&#8217;t see that I needed that elegance on my iPhone the few times I need it for Wikipedia. I&#8217;m perfectly happy with <a href="http://itunes.apple.com/us/app/wikipanion/id288349436?mt=8">Wikipanion</a> for that. But with the space of an iPad, Articles looks like <em>exactly</em> the kind of elegance I would welcome when losing myself down the Wikipedia hole.</p>
<h2><a href="http://itunes.apple.com/us/app/souschef-for-ipad/id364906619?mt=8">SousChef</a></h2>
<p><a href="http://acaciatreesoftware.com/">Acacia Tree&#8217;s desktop app</a> has been sitting back in my subconscious since it was released. I love the idea of a recipes (and more!) app, but didn&#8217;t see it fitting into our household flow. (It doesn&#8217;t hurt that my wife has a handful of recipes we love enough to cycle through each week.) But somehow, I can see the iPad changing that with its portability. At $8, it&#8217;s pretty easy to take a shot at it.</p>
<h2><a href="http://itunes.apple.com/us/app/bento-for-ipad/id363230518?mt=8">Bento</a></h2>
<p>Another app that&#8217;s been sitting in the &#8220;possible&#8221; column for quite a while. I was going to hold off again&#8211;there&#8217;s just too much SQL geek in me to not resist the &#8220;return to FileMaker&#8221; stigma. I <em>know</em> there are things Bento could knock out quicker than I could without it, but I ended up rationalizing the &#8220;whopping&#8221; $5 price tag by thinking its presence might be beneficial for things my wife might want to do&#8211;and will probably end up teaching me a thing or two about it.</p>
<h2><a href="http://itunes.apple.com/us/app/flight-control-hd/id363727129?mt=8">Flight Control HD</a></h2>
<p>I came very late to the Flight Control party, but that didn&#8217;t stop it from hooking me for a while. I&#8217;m willing to become engrossed in it again.</p>
<h2><a href="http://itunes.apple.com/us/app/orbital-hd/id364600320?mt=8">Orbital HD</a></h2>
<p>This game completely hooked me with its beautiful retro simplicity. I was going to have to have the iPhone app on the iPad anyway, so $3 is dirt cheap to not have it resolution doubled.</p>
<h2><a href="http://itunes.apple.com/us/app/plants-vs-zombies-hd/id363282253?mt=8">Plants vs Zombies</a></h2>
<p>Oh, I tried to resist. I had downloaded the Mac trial and lost an afternoon to it. Somehow I managed to look away from the light, and count myself thankful. But at $3, I am weak.</p>
<h2><a href="http://itunes.apple.com/us/app/civilization-revolution-for/id364150646?mt=8">Civilization Revolution</a></h2>
<p>This one is for my wife; she loves civilization building games. When <a href="http://itunes.apple.com/us/app/simcity/id300255603?mt=8">SimCity</a> comes out for iPad, mine will probably &#8220;disappear&#8221; for a few weeks. I know very little about this game, but it looks right up her alley and she typed &#8220;drool&#8221; when I pointed it out to her in chat, so I&#8217;m crossing my fingers.</p>
<h2><a href="http://itunes.apple.com/us/app/my-first-tangrams-hd/id363843653?mt=8">My First Tangrams HD</a></h2>
<p>For my 4-(&#8220;and a half!&#8221;)-year-old daughter. This may be a bit young for her, but she loves these kinds of puzzle activities and it&#8217;s just a buck.</p>
<h2><a href="http://itunes.apple.com/us/app/wooly-willy/id284944951?mt=8">Wooly Willy</a></h2>
<p>Every time my daughter rediscovers the physical version of this, I think &#8220;I&#8217;m going to buy that iPhone app,&#8221; and then forget the name and can&#8217;t find it. It came up while perusing the list, so I&#8217;m dropping the big dollar on it finally.</p>
<h2><a href="http://itunes.apple.com/us/app/ichalkboard/id322491414?mt=8">iChalkboard</a></h2>
<p>Yeah, I heard about this from <a href="http://daringfireball.net/2010/04/kids_are_all_right">Daring Fireball</a>. But I was wanting a free-form drawing app for my daughter. I had been thinking <a href="http://itunes.apple.com/us/app/id363590649?mt=8">Brushes</a> might be over her head and this looks like a perfect fit.</p>
<hr />
<h1>Free Apps</h1>
<h2><a href="http://itunes.apple.com/us/app/ibooks/id364709193?mt=8">iBooks</a></h2>
<p>I&#8217;m really excited about this. I&#8217;ve been mulling over an e-reader for a long time. I surprisingly liked my <a href="http://kb.palm.com/wps/portal/kb/na/tungsten/t3/unlocked/learn/page_en.html">Palm Tungsten T3</a> for e-reading, and have read a number of EPUB books (primarily from <a href="http://www.pragprog.com/">Pragmatic Programmers</a>) on my iPhone using <a href="http://itunes.apple.com/us/app/stanza/id284956128?mt=8">Stanza</a>. But the size of the iPad screen will make that so much more comfortable&#8211;I may even be able to read text while looking at an illustration! </p>
<p>I had hoped that it would also integrate PDF documents and books, but that does not seem to be. I have some password-protected PDF books from <a href="http://www.apress.com/">Apress</a> that are not near as comfortable to read on the iPhone, so I will be exploring PDF reading apps in the near future.</p>
<p>I also plan to pick up design inspiration from iBooks for any document viewing applications I may be working on.</p>
<h2><a href="http://itunes.apple.com/us/app/harbor-master-hd/id363658120?mt=8">Harbor Master HD</a></h2>
<p>In the depth of my Flight Control addiction, I tried Harbor Master. It took Flight Control and added more complexity and stress points&#8211;instant addiction. I&#8217;m a bit nervous that this (currently) a free app and I find no mention of whether In-App Purchasing is expected to make it full-featured. But for free, I guess I&#8217;ll be able to get my money&#8217;s worth anyway.</p>
<h2><a href="http://itunes.apple.com/us/app/ap-news/id364677107?mt=8">AP News</a></h2>
<p>I&#8217;m not really a headline news junkie. I knew someone who worked on the early versions of <a href="http://itunes.apple.com/us/app/ap-mobile/id284901416?mt=8">AP Mobile</a>, so it was one of the first apps I put on my phone. It started out nice, then got overloaded and shrunk the important content away and I took it off my phone. This new AP app looks much more useful thanks to more screen space to fit in so much functionality&#8211;it also benefits from almost two years of iPhone design expertise that AP Mobile did not have at the time. I don&#8217;t know that it will make me into a news junkie, but it&#8217;s worth checking out.</p>
<h2><a href="http://itunes.apple.com/us/app/gotomeeting/id363452804?mt=8">GoToMeeting</a></h2>
<p>Thankfully, I don&#8217;t have to use GoToMeeting that often. But I was shocked to see this app available, and it kind of split my head right open to think of &#8220;videoconferencing&#8221; like this on my iPad. I may have to find a meeting just to try it out.</p>
<h2><a href="http://itunes.apple.com/us/app/netflix/id363590051?mt=8">Netflix</a></h2>
<p>As stated before, I am a bit of a movie junkie, and a Netflix member since November 1999. I didn&#8217;t really expect something like this to come out&#8211;especially the streaming aspect. I made the mistake of telling my wife about this, and now she&#8217;s lobbying hard to take our sole pre-ordered iPad out of town for 3 to 4 weeks of training she&#8217;s going to be attending.</p>
<h2><a href="http://itunes.apple.com/us/app/abc-player/id364191819?mt=8">ABC Player</a></h2>
<p>We&#8217;re still a TiVo family, not a Hulu or other online video family. (Our Netflix streaming is via TiVo.) I expect this will be less used than the Netflix app, but worth giving a try&#8211;who knows, it may be another tipping point for us.</p>
<h2><a href="http://itunes.apple.com/us/app/twitterrific-for-ipad/id359914600?mt=8">Twitterrific</a></h2>
<p>I like Twitterrific; I own paid versions on the iPhone and desktop. But <a href="http://itunes.apple.com/us/app/tweetie-2/id333903271?mt=8">Tweetie</a> rapidly became the Twitter app I use&#8211;the best I can describe it is that it just &#8220;fits&#8221; me better. I actually don&#8217;t foresee myself tweeting much from the iPad&#8211;there&#8217;s something about the idea of a full-screen Twitter client that makes it seem so much &#8220;heavier&#8221; than an iPhone or small window on the desktop. Just from a developer&#8217;s point of view, though, every version of Twitterrific is worth looking at for design cues.</p>
<hr />
<h1>Apps I&#8217;m Keeping an Eye On</h1>
<h2><a href="http://itunes.apple.com/us/app/omnigraffle/id363225984?mt=8">OmniGraffle</a></h2>
<p>Oh, I&#8217;ll bet this one will raise a stink with its price. Meanwhile, <a href="http://www.omnigroup.com/">Omni Group</a> will remain one of the top-grossing sellers as they gather users who don&#8217;t complain about quality&#8211;they pay for it.</p>
<p>I love <a href="http://www.omnigroup.com/products/omnigraffle/">OmniGraffle</a>; I have it on my desktop. I just don&#8217;t use it frequently there, and don&#8217;t imagine that frequency increasing on my iPad. When I reach the conclusion that I want to draw on my iPad and transfer the documents to my desktop, I&#8217;m definitely paying the $50.</p>
<h2><a href="http://itunes.apple.com/us/app/omnigraphsketcher/id363234160?mt=8">OmniGraphSketcher</a></h2>
<p>This app is so cool, but just like OmniGraffle I don&#8217;t foresee it getting much use. On the other hand, it&#8217;s not completely out of the price range of buying to show off cool technology (every time I look at it, I think of the <a href="http://www.PacificT.com/Story/">Graphing Calculator</a>, Next Generation). I will also rationalize it as a great place for design inspiration.</p>
<h2><a href="http://itunes.apple.com/us/app/small-world-for-ipad/id364165557?mt=8">Small World</a></h2>
<p>And we&#8217;ll end it on a boardgame. Small World is one of my least favorite games from <a href="http://www.daysofwonder.com/en/">Days of Wonder</a>, but as I said before there seems to be lots of potential in the iPad/boardgame intersection; in this case, you can get a $50 MSRP boardgame for $5 in digital form. Days of Wonder makes great games; if they start to release more of their games for the iPad&#8211;especially if those games are integrated with their existing <a href="http://www.daysofwonder.com/en/play/">online play system</a>&#8211;my productivity is doomed, and my wife might just disappear after she gets an iPad of her own.</p>
]]></content:encoded>
			<wfw:commentRss>http://corporationunknown.com/blog/2010/04/02/on-the-zeroth-day-of-ipad%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 13/16 queries in 0.005 seconds using disk: basic

Served from: corporationunknown.com @ 2012-05-18 13:48:25 -->
