iPhone 3GS announced

June 8, 2009

At WWDC today, Apple announced the updated iPhone 3GS.

For the same $199 as before (and as the Palm Pre), you now get double the memory (16GB), much faster performance, support for 7.2mbps HSDPA, compass, voice control (!), auto focus (not fixed focus like the pre) 3MP camera with auto macro, and excellent video capability (VGA at 30fps).

The current 8GB 3G model will still be sold for $99 and the new top of the line is 32GB for $299.

Seems good enough to ward off the Palm Pre. The Pre is now much less capable for the same or more money (rebate required) with almost no applications available for it.

However, I wonder who will buy this new phone. Anyone who’s wanted an iPhone in the last 2 years would have bought one by now and it probably still locked into their existing contract with steep upgrade prices.

As far as I’ve been able to tell the prices are as follows:

Model New contract In AT&T contract around 1yr just started new AT&T contract
8GB iPhone 3G $99 $299 $499
16GB iPhone 3GS $199 $399 $599
32GB iPhone 3GS $299 $499 $699

I don’t see most current iPhone users upgrading for a while. The only phone that seems appealing is the $99 iPhone 3G for those who see the initial price as an impediment. However, the monthly service fee with the $30/mo data plan is still there and is the more serious cost issue.

What didn’t make it:

  • Front facing camera. I think I would really like this. Dick Tracy style video phone calls.
  • Rumored AT&T lower price for limited data plan.
  • Tethering plan from AT&T

On an unrelated note, they made surprising but helpful updates to the Macbook Pro line adding FW800 into the Macbook Pro 13. But conspicuously missing were any updates to the white Macbook.


Palm Pre first impressions vs. iPhone 3G

June 8, 2009

I’ve been following the news of the release of Palm Pre since its public demo in January 2009. It is the latest in the series of iPhone “killers”. Likewise I tried out the Android G1 at T-Mobile and the RIM Blackberry Storm.

This latest iPhone killer seems the most promising. It has blatantly copied many of iPhone’s basic UI. Gestures, multi-touch. I was frankly surprised at the ooos and aaahs during the January demo when they showed off the same UI that the iPhone has had for 18 months (at the time).

The Pre adds a physical keyboard, real uninterrupted multi-tasking, higher resolution camera. Most importantly it is a CDMA phone available on Sprint today, but Verizon tomorrow (early 2010).

So I was eager to check out the Palm Pre on its launch day. You can tell that I am somewhat biased against it, but I’ve also read lots about it and had high expectations.

In general, the phone seems like the best competitor yet, but doesn’t seem to me to deal any mortal blows to the iPhone. In fact, I am surprised at how positive the reviews have been so far. Several of the items in reviews seem a stretch at best or downright incorrect.

Keyboard: With some difficulty, it has been explained to me how some people really want a physical keyboard. I can imagine that they become accustomed to feeling the key under their fingers before pressing. You can move your finger around to figure out where the proper key is. But then the effort to actually press the key  can often cause 4 or more keys to press on such a small keyboard as the Pre.

The iPhone’s virtual keyboard is much larger, wider spaced, tells you clearly which key you pressed. Part of the trick is not to touch the screen until you want to hit a key, and to press very lightly. With this technique I can type remarkably fast. Many errors, but it has excellent correction that fixes most errors.

Verdict: If you must have a physical keyboard, the Pre has one. But I’d strongly suggest really giving the benefit of the doubt to the iPhone keyboard. The Pre keyboard is passable, but an experienced typer can type faster on the iPhone.

Screen: This was most surprising to me. The Palm Pre sports a 3.1″ screen vs. the iPhone’s 3.5″. Reviews had said it is not that noticeable. I strongly disagree. The iPhone walks a very fine line between being compact enough to fit in a pocket and be used as a phone, yet big enough to just barely be able to surf the web as if you were really on the PC. The Pre’s screen is much smaller than the iPhone and crosses that line towards being more of a phone than a personal web communicator.

Verdict: Its hard enough surfing on the iPhone. The Pre is a worse experience because of the smaller screen.

Misc: I’d heard comments about the keyboard edge being sharp. I agree, it is sharp.

Build quality: Reviews had said it has a cheap feel to it. I think the iPhone seems sturdier because it has no moving parts and has a very strong rigid glass face. However I didn’t think the Pre felt cheap at all. The build quality of the unit I tested seemed good.

WebOS: I didn’t see anything dramatically good or bad vs. the iPhone. Multitasking is a definite plus, although I was struck with how hard it was to test. The phone doesn’t come with anything you’d want to multi-task that you can’t do similarly with the iPhone. The iPhone ends programs when you switch, but when you get back to them they are where they left off. For most things like web pages, google maps, etc. that is sufficient. Playing music continues on either phone uninterrupted. On the iPhone you can even maintain a conversation on speaker while surfing the web. It is very useful for looking up directions and telling the other party. You cannot do that with the Pre because EVDO does not allow simultaneous voice and data communications.

The two most useful applications to run in the background would be Pandora for internet music, and an instant message client.

Verdict: Multitasking is surprisingly not useful in the phone out of the box, but can be very useful with a few add on apps.

App store: As a developer, the biggest problem with the iPhone app store is that there is no way to try an application before having to commit money to buy it. This inevitably drives prices down towards zero. If its a $10 application, you’re reluctant to buy it without trying it. But for $1, what the heck, its only a buck.

The Palm Pre app store has a button to try the application. This is a huge plus for the platform, for Palm and especially for developers.

Meanwhile, Apple is rumored to be launching an update to the iPhone within a few hours that will likely double the amount of memory in the base model to 16GB, increase the processor speed by 50% while doubling RAM (big speed boost), upping the camera to a 3MP autofocus, still for $199.

This will make the Pre look expensive at $299 before a $100 mail in rebate. Who would want to pay as much after the hassle of a rebate for a copy cat phone with 1/2 the memory and no applications vs. the 40,000 applications available for the iPhone.

The only folks I can see buying it are those already at Sprint who don’t want to leave because of a SERO plan or other heavy discount, or folks that dislike AT&T and/or Apple.

The real interest in Palm will be if the Pre is good enough to make them a takeover target by Nokia. They would be smart to buy them. Otherwise Nokia seems doomed with no serious iPhone killer in the works.

A few hours until the new iPhone. Then we’ll see how the competition really stacks up.

Cocoa programming should be easier

March 20, 2009

I’ve spend several hours this morning wading through problems with the Mac development environment and Cocoa.

In a nutshell, the available APIs for doing file manipulation could stand some enhancement.

NSFileManager is the predominant way in Cocoa to do file operations. Yet it has many drawbacks including:

  • Limited error handling
  • Inability to cancel an operation in progress
  • Single threaded. If you invoke a length operation from the main thread, your UI will hang (beachball) until the operation is complete.
  • Inability to get status information during an operation even if you do run in a secondary thread.

A more flexible approach is available as part of older C based frameworks. I’m not clear its relation to Carbon, but its base of Core Foundation.

There is a file manager service which you can access. An example operation is FSCopyObjectAsync. This function solves all of the issues with NSFileManager. It automatically handles running the copy as part of a run loop you specify (usually the main run loop). It can call back a function you provide allowing you to get status while the operation is going on and allows you to cancel the operation. And it provides richer access to error information.

Drawbacks? It shouldn’t have any, but it does. Being a C function, you are suddenly immersed in a world of Apple specific C data types. A random mishmash of conversion routines. As an example, FSRef is the data type used to reference files. It is an 80 character opaque internal data representation of the file system object identifier. There are functions to convert from a pathname to and from FSRef.
Getting status from the call back involves a CFDictionary which is a C version of a dictionary, not a NSDictionary.
CFNumber is also used. Unlike FSRef, this data type has “toll free bridging”. Essentially meaning that is can be used interchangeably with an NSNumber.

Overall the function is nice but hard to use for the programmer who knows Cocoa but not Core Foundation.

This reminds me of the world of Microsoft. MFC (Microsoft Foundation Classes) are largely object oriented wrappers of non object oriented Windows functions. Much of the class library is fine, but sometimes you see wierd artifacts due to its Windows heritage.

I am surprised that I have not been able to find wrappers for Apple Core Foundation functions. In particular this File Manager service is clearly in need of a Cocoa wrapper to hide the data conversions which are necessary to make it work easily in Cocoa.