The Daydream Blog

Unlearning Cocoa

Wednesday, July 9th, 2008

Note this article is intended for developers and may be of limited interest to our wider client base.

Kevin Hoffman has given a critique of the now infamous criticism of iPhone development. (Another Microsoft Developer Falls Victim to Framework Myopia [The .NET Addict's Blog])

The key points in Kevin’s post are his explanation of how experienced Windows developers should handle their migration to Mac or iPhone development. It reminded me of a post I’ve been planning to write for a long time that most easily be summarised as:

To learn Cocoa, you must un-learn your past development experience.

Cocoa assumes an MVC paradigm. Interface Builder and NIB’s are very weird compared to other approaches. The frameworks are heavily designed for sub-classing to create your own behaviour, rather than having lots of settings to tweak behaviour.

Every time you try to learn a new aspect of Cocoa, you find yourself struggling to do something that feels like the “right way”. A few days later you come out with 3 lines of code that feel completely natural but felt incredibly painful to reach. You will be met with countless, “aaah, that’s how it works and it makes complete sense” moments. You spend days wondering why this bit of Cocoa is so gnarly, and seemingly unintuitive, until you reach another moment of understanding.

People often say that Cocoa has a steep learning curve. It does not. It has a steep un-learning curve, followed by a gentle re-learning curve. Getting yourself out of your previous development mind set can make the whole experience a lot more pleasant.

What is disappointing is that none of the documentation or tutorials spend much time comparing and contrasting with other approaches, that would make the process of unlearning easier.

Next MacMacDev Edinburgh

Thursday, July 3rd, 2008

The next MacMacDev for Edinburgh has been announced for Thursday 10 July 2008, starting at 19:00. The venue is unchanged and is at Baroque, 39-41 Broughton Street, Edinburgh, EH1 3JU. Full details can be found here.

There’s also a new mailing list for the community, full details can be found here.

Hope to see you there.

Cornerstone from Zennaware

Tuesday, July 1st, 2008

Note this article is intended for developers and may be of limited interest to our wider client base.

Last week saw the release of Cornerstone, a new Subversion GUI client for the Mac from Zennaware. After initial testing, I am quite excited about Cornerstone, as it breaks new ground for Version Control Graphical Clients.

Historically, graphical version control clients have simply put a GUI on top of the command line tools. It is disappointing that there is little or no thought given to the problems that developers want to solve with their source control systems. Developers of these applications seem to completely forget the issues they themselves face.

Cornerstone’s most impressive feature and one that I have discussed extensively in the #macsb IRC channel is it’s timeline. You can easily go forward and back through the history of a file and see changes for each subsequent version. Whilst this falls short of my wishes for a source control timeline, it is a massive step in the right direction.

Cornerstone’s source code diff tool looks great, but still cannot identify when a method has simply moved within a file. If you change the method as well as move it, which is quite common, the changes are not clearly highlighted in Cornerstone, Xcode or any other diff tool I have come across on the Mac. I had already decided that a future version of Differencia will act as a source-code aware diff tool.

Whilst there are a long list of feature requests I have already for Cornerstone, after only a day’s use, it is a huge relief to find that someone is taking source control seriously.

MacMacDev WWDC / San Francisco

Wednesday, May 28th, 2008

There is a meeting scheduled for Scottish based Mac developers attending WWDC. Initial plans are for meeting at the Thirsty Bear on Sunday, 8th June at 6PM. Exact timings may change.

If you are interested, please email david at macmacdev dot com. Further details and updates can be found at the MacMacDev website.

There are already 8-9 attendees, so a healthy number. More the merrier, so please let David know if you would like to come along too.

MacMacDev

Wednesday, May 21st, 2008

I had the great privilege to meet a number of Scottish based Mac software developers at the first Edinburgh MacMacDev meeting. The group was set up by head Cocoa cheer leader, David Masters of PyrusMalus. there have been a couple of meetings so far in Glasgow and one in Edinburgh.

Since moving to Scotland 18 months ago, I have been surprised by the number of Mac developers based here. I had heard of the Silicon Glen, the idea that there are a number of tech related companies in Scotland, but it was a great surprise to find so many Mac developers here. It makes a huge difference to have a local community, as well as a strong online one.

Glasgow meetings are planned for the 4th / last Thursday of every month, with the next one on 29th May.

Edinburgh meetings are planned for the 2nd Thursday of every month, with the next meeting planned for June 12th. Whilst this is during Apple’s developer conference, WWDC, there should still be a good attendance. Exact venue is yet to be confirmed, and the best place to keep an eye on things is the MacMacDev Website

There are also plans afoot to have a MacMacDev meet up at WWDC, details yet to be confirmed, which will be a good opportunity of East and West coasters to meet up to compare notes.

 
Site by Line