Archive for January, 2007

Applescript and Automation

Tuesday, January 16th, 2007

One of the great things in Mac OS X is the build in script-ability and Automator. Of course there is always a discussion about the syntax of Applescript but besides that it enriches the platform a lot. Good scriptable applications provide incredible possibilities for their users.

A pretty cool usage of Applescript is being shown on Macbreak and can be downloaded from It’s a clever combination of Applescript, Keynote and the speech system for doing self presenting presentations.

I’m looking forward to Leopard and the incredible improved new voices.

If you are a Mac developer think about adding script-ability to your application for a number of reasons:

  • let your users integrate your app in their workflow (and they probably never will switch to the app of your competitor)
  • use automatic tests for some parts of your application
  • improve the design of your app by providing a scripting API (you probably want get a good API without a clear design)
  • provide some clever Automator workflows to give users an idea about what your app can do for them beside the core features

no iPhone SDK

Thursday, January 11th, 2007

It seems to be true that the iPhone is not open for regular developers.

Rentzsch called for filing bugs to create some pressure on Apple. I second that, but I’m pretty sure that we will not see an open API soon.

Well, I’m extremely sorry about that as I would love to develop apps for this device. But I think there are a number of reasons why Apple is doing it like that:

The two faces of Apple

Apple has two faces. The first one is the developer friendly one. The one where they develop the best, open, extensible frameworks. They improve the performance of the OS, improve usability and more… They might also be responsible for developing the UI guidelines. Let’s call them the core team.

The second face of Apple are the departments that develop the cool products that we like so much. They do iPhoto (with non standard RSS extensions), they develop iWeb (which is tight into .Mac), and all the other stuff like iTunes (which is using a ton of non standard UI elements), and more. They are doing the visible products on top of the core technology.

These groups push the core team with new requirements. A lot of the frameworks and technologies that were created in the past came out because there is a concrete need for it. So when everything goes well it’s a symbioses between both groups. A framework cannot advance without the push of innovative products.

The time gap

Providing a good API, framework or a SDK takes time. It shall be flexible enough to be extensible while at the same time it shall be easy to use. A tough job. Asking the core team for an extension in a framework that is needed to do the next innovative product can be cumbersome. A lot of discussion may arise how it should be done, which kind of flexibility is being needed and how the functions shall be called.

Time goes by. Time that is extremely expensive as there a number of competitors out there who might come out with a product, too.

So what should they do? They are doing it by themselves. They are ignoring the (already old) standards to push forward.

iPhone Internals

In case of the iPhone they have put together some very smart people from different product and core teams. They took the best parts of Mac OS X and it’s technologies, rearranged, refactored and disassembled them in order to build up this most innovative product. Only a small number of frameworks will have been ported on the iPhone. Perhaps they ported just small parts of frameworks that are being needed at the moment. Some parts might be a big mess as there was not enough time to do it right.

Should they put a lame, buggy API on top of that? Wouldn’t it be better if they invest that time to further improve the user interface and interaction with the device?

Most of the iPhone users will be pretty happy with the functionality of the build in applications. The competition in the mobile market is huge. Perhaps Apple decides it’s better to invest the time to innovate and bring more cool software and hardware than investing time to be compatible for third party apps. The time frame between iPhone Mac OS X releases will be a lot shorter than that of the regular Mac OS X.

False Expectations

When Steve said that the iPhone is using Mac OS X I screamed out loud. I though about running any piece of Mac OS X software on that device. But the expectation to have a full fledged Mac OS X running on this piece was simply wrong. It borrows a lot from Mac OS X, that’s all.


The iPhone is primary a consumer device. They didn’t talk about games. Games are a very important software category for mobile devices. I assume there will be full fledged games in the iTunes store (as it is now for the iPod).

I think the first available SDK will be for the development of iPhone Widgets. There will be no access to the underlying OS but at least you can develop games with Javascript, HTML and CSS and connect with internet services. You probably will be able to do things comparable to what you can do with Java on other mobile devices.


I’m sad, and a bit disappointed about the miss of the iPhone SDK. And there might be other, not so respectable business reasons, why they are not providing an SDK. But at the end, and as a customer, I think it’s better they invest the time to reinvent the phone than providing an SDK for a lame device.

Let’s hope they see the huge potential of third party apps and start to build a team that is responsible for the core modules of the iPhone. And then we will get an API for an awesome device.

iWork 07: It was there

Thursday, January 11th, 2007

Keynote 07

No iLife 07, no iWork 07. Damn. I still have to wait for the iWork spreadsheet.

While Steve didn’t talk about it, I’m pretty sure he used it. At least one effect he is using during the Keynote is not included in Keynote 06.

So let’s wait a couple of weeks and right after the official Vista launch Steve will show us Leopard, iWork and iLife.