Sunday, June 13, 2010

Imitation is the sincerest form of flattery!

By that standard, I believe Apple is about to be very flattered. Apple just sold iPad #2,000,000 recently. By any measure, this is an extraordinary success and demonstrates considerable market demand for such a device. Here’s a quote from one user which offers some insight:

“The iPad makes using a computer less of a commitment and that has important implications for the way I compute.


Coming from a VC, too… Nice. But I digress.

The above, plus other reasons the esteemed readers of this blog can certainly provide make a compelling case for us to study the iP* ecosystem of products Apple has produced from a development perspective. I took some time this weekend to try some iPhone programming, using the simulator provided with the SDK. (It also supports the iPad.) Like most people, I rummaged through the Apple SDK documentation looking for a place to start. I also looked on the web for blogs like this that might offer some basics. There are number of sites that discuss Cocoa, but I didn’t find any that really offered a comprehensive tutorial. This is also complicated by the fact that that XCode, and especially IB have evolved. As usual, this led to me to look at the latest dev books that are available. I bought a book on Objective-C recently:

Programming Objective-C 2.0.

With a language reference in hand I looked for one that is focused on iP* development with a good discussion of XCode and IB. After reading the reviews for many books, I finally decided to buy:

Beginning iPhone 3 Development.

(Sidebar: Technical books are generally available in Kindle format. Given how perishable tech books are, I decided to download the Kindle reader instead of buying the physical book. It’s also a bit less expensive, and of course you get it instantly. The Mac version of the reader is still Beta, but it worked well.)

So far I am happy with the “Beginning iPhone 3” book. It’s a “learn by example” book, which I like for bootstrapping my ability to develop in a new environment. Does it explain everything the way I would like? No, but no single tech book is ever perfect, except for “Oh! Pascal”. Petzold’s “Programming Windows 3.0” was close to perfection, too. Now someone hand me my Geritol…

Most of us seem to have Macbook Pros or Minis. I have an iMac and a MBP. I tried using VNC to connect from my triple head Windows system to the iMac for development purposes, but that didn’t work very well. Apple offers remote management software, but it’s expensive. I bought the MBP to replace my Dell laptop when travelling, which allows me to develop for the iP* products and Windows, since I loaded Parallels. (The Dell will now become a VM host.) The MBP will allow me to use iLife, which is the most compelling reason to own a Mac from my perspective as a user.

If you are like me, you like to have a lot of screen space. This is especially true when using XCode and IB. (The return of the MDI interface! Holy VB 3, Batman!) I thought about buying a KVM, but once you go digital the price goes up and I didn’t want to have another widget on my desk if I could avoid it. My 24” monitor has two inputs: VGA and DVI. It allows me to switch sources, so I have the PC and the MBP connected to it. I also bought a Magic Mouse, since I really like the gestures the touchpad offers on the MBP.

If you own a Magic Mouse, you can improve the way it works (since Apple has yet to get a mouse right) by downloading this:

MagicPrefs

On another note, working with the Mac so much recently has reminded me of why I dislike the Mac UI compared to Windows or Unix window managers. It is truly a PITA when you work with lots of active windows. The main frustration is with the “One Ring To Bind Them” menubar, which always represents the active app. I much prefer the Windows and Unix way of associating the menu with the app window itself. Compared to the Windows 7 task bar, the Mac is a pain even with Expose and Spaces. Of course this may seem irrelevant, since it sounds like a personal preference. I mention it because it demonstrates some of Job’s insight, however. As we all know, the iPhone and iPad pre-iOS4 are essentially single-taskers. Many have thought this a serious flaw, but I think Job’s insight is that a substantial majority of users only work in one app at a time anyway. As developers, we must keep this in mind, since our typical manner of working with many windows represents a minority of users.

A corollary to the above can be found in iAd. Job’s point about the current state of advertising that requires users to leave the app strikes me as being insightful, too. Allowing the user to stay within the app while interacting with the ad certainly has merit. Context sensitive advertising should have an edge over the random variety, but there are exceptions. When I was in the online music business, I noticed that some promotions would always get significant click-through. American Express used to run ads that featured a free MP3 download if you clicked on their ad. People would click on the AmEx ad like tigers on Obsession. But in general, tying ads to the context, and this by all means includes the visual context, is an important consideration.

Note to self: don’t wear Calvin Klein products when visiting the Wild Animal Park…

If you are developing a consumer app, I think it would extremely worthwhile to consider integrated ad placement in the app – a UI requirement that is relatively new and worthy of discussion.

1 comment:

  1. XCode 4 will put everything (including interface builder) in one window.

    ReplyDelete