Coding under the Hammer
Opinion
Apple’s Master Plan
Sep 2nd
There is a theme coming from Cupertino, which was made slightly more apparent yesterday when they removed storage from the Apple TV … the master plan.
Apple are clearly going for the “your family has one master computer, and you sync lots of (smaller/lower cost) devices with it” distribution model … all of these devices are available from Apple. iPads are replacing laptops (for some), and people have long bought into the iPod revolution to play there digital media on the move. The AppleTV is a bit different as you can stream rented content from Apple to it, but the only way to get your own content on it, is to stream it from another device. This would ether be from your computer, or an iOS device which you have already synced with your computer.
Although “the cloud” is clearly the future, it isn’t yet ready for prime time. Until everyone in their normal every day lives has access to a (constant) high speed internet connection, the cloud is merely a pipe dream in terms of using it for all of your data driven tasks.
Don’t get me wrong, the clouds time will come, but in the next 5 years ? … I’m not so sure.
At the moment client applications (native applications that sync with a server and then cache the data for offline use), are the correct implementation for the the moment. As far as streaming movies go, Apple knows that all AppleTVs will live in a home, and therefore (hopefully) have the bandwidth required to play HD footage.
Although people will disagree, the master plan is probably the right choice for the start of this decade, but the cloud’s time will come.
WWDC 2010 Keynote Predictions
Jun 6th
I thought this year I would put them down in writing, so here is my list:
- New iPhone (surely ?), front facing camera, 5mp camera on the back and will NOT be called the iPhone 4G. Avaliablity at the end of next week alongside OS 4.0
- Facebook integration in iPhone OS 4.0, pulling down your calendar and contact information
- Aggregated contacts, like how WebOS does
- iPhone OS powered Apple TV, allowing you to run apps on your TV
- New version of Safari, faster rendering and the ability for Plugins
What I want to see, but I don’t think we will … a preview of Mac OS 10.7. My dream is for Steve to say that 10.7 will have UIKit available to it, and I can stop using NSOutlineView, NSCell to name but a few.
iPad – The sweet spot in software development
Apr 6th
Now that the iPad (iPhone OS 3.2) SDK is no longer under NDA (I think anyway), I thought I would post my opinion on developing for it.
I was programming in Objective-C before the iPhone was even announced (only for a around a year and a half, but I shall still claim it), and switching to the iPhone OS was somewhat strange. At first all I could see is what was missing, all those APIs I took for granted, and things like bindings that I had come to love and (overly) rely on.
In retrospect these limitations where a good thing. Learning how to do things the long way round (such as UIs in code) meant you actually got to know how they worked, and it wasn’t just because interface builder was magic. I still to this day write a lot of my iPhone UIs purely in code. Why you ask ? If your UI is complex then sometimes interface builder just doesn’t do what you need. This is especially the case on the iPhone, as you are often animating views on and off the screen, making them bigger and smaller etc etc. Also having half of your logic in a xib, and half of it in source code can lead to its own problems. I hope that I am not the only one who has wasted significant amount of time after forgetting to hook up an IBOutlet or IBAction (the one time you don’t want messages that are sent to nil, to be ignored !!!).
After spending about a year exclusively programming for the iPhone OS in my day job, I got an urge to write a little application for Mac OS X. And in a strange turn of events I had the same feelings when I moved back to the mac, as when I moved to the iPhone OS. You can’t animate an NSView with the same level of ease as you can a UIView, and some of the Mac OSX APIs are not very clean at all (try playing with NSOutlineView to name one class). This is probably expected as some of these APIs have been around for over a decade, but the biggest surprise is what you forgot you had to do when creating Mac applications. Keyboard shortcuts, window resizing and providing automatic updates of your applications to name but a few. Apple ether take care of this for you on the iPhone, or they are just not a feature of the OS. Having the limitations of a fixed size screen, and only being able to get applications from the AppStore doesn’t seem such a bad deal after all.
Then came the iPad, its like a Big iPhone from a programmers point view. Its the iPhone OS with a couple of extras, but with a really big display. The jewel in the iPhone OS’s crown is its UI Libraries. It is so simple (compared to any other platform, mobile or otherwise), to build really slick animated interfaces that your users will love to use. Now that you have all this screen to play with, you can start building “Desktop Class” applications but with the iPhones APIs. The thing that has shocked me the most, is the quality of all of the iPad applications that have been released. The vast majority of developers have all gone the extra mile to make their UIs, and therefore their applications look extremely polished. This brings around the great debate of application pricing. Everyone with any business acumen would have long worked out that £0.59/$0.99 is not a sustainable business model for 99% of developers, and the iPad has seemed to have broken this trend from day one. Applications seem to be in the range of £3/$5 – £10/$20, which will probably lead to less applications being sold, but in the long term will lead to a higher quality applications that can be supported by their respective developers.
The one thing I am hoping for is that the iPhone APIs get ported back to Mac OS X, or maybe that iPhone OS becomes the Mac OS. Saying that, no multitasking and the AppStore being the sole way of getting apps onto my mac is a scary thought…