Programming for Mac, a first taste of Cocoa

The Computer Weekly Developer Network speaks to David Bass, enterprise VP for engineering at (unstructured and semi-structured) data governance software company Varonis. Bass shares his thoughts on software application development for the Mac and how it compares to Windows and .NET.

Bass and his team recently developed a Mac client for the company’s DatAnywhere product – a secure, private cloud file sync alternative to Dropbox.

CWDN: What was your overall experience like in developing on the Mac platform?

David Bass: Since Mac OS X is based on the NeXTStep operating system which is a UNIX-like operating system based on the Mach Kernel and BSD, you might expect that the development environment would be very barebones. The opposite is true – we have been extremely pleased with the maturity and robustness of OS X, Xcode, Objective C and Cocoa. The developer community is really active and passionate, too. We have everything we need to build the kind of applications our customers have come to expect from us.


CWDN: What should someone coming from .NET development expect from Cocoa?

David Bass: Cocoa is at least as powerful as .NET, if not more powerful in some aspects. As in .NET, support for common things like UI, file management, localisation and multi-threading are built into the framework and are very easy to make use of. However, with Objective-C, should you wish, you have greater control on the underlying framework – you can manage your own memory and easily change existing interfaces’ (Objective-C terminology for C++/.NET classes) functionality using categories.

Additionally, the dynamic nature of Objective-C–everything you do is essentially sending a message between objects–makes it a very powerful language and certain programming tasks are easier than with .NET.

CWDN: How would you rate the API documentation?

David Bass: The docs were very good for the most part (CoreData could use a little more documentation, though).

CWDN: How would you rate Xcode as an IDE?

David Bass: Xcode is very good. I’d consider it to be on par with Microsoft Visual Studio. It’s very full-featured and has everything a developer needs.

CWDN: Apple has a reputation for not wanting to let software developers compromise or change the Apple experience (e.g., no flash on the iPhone). Did you run into any roadblocks or annoyances because of this?

David Bass: Since DatAnywhere does drag-and-drop file synchronisation between your Mac and your organisation’s file servers, we had to integrate with the Finder app. Our goal was to provide the user everything they need without having to leave the Finder/file-system and not requiring to open an external App, For that we needed to add icon badging (similar to MS shell icon overlay functionality of Explorer) and context menu options which required a few workarounds.