How long does it take to learn how to program for Mac OS X?
Everyone seems to be jumping on Cocoa and Obj-C. That’s not the only way to create programs for OS X – depending on the complexity of your project, you could start with AppleScript, or Python/Ruby might even be more appropriate. A couple years back, you might even have been able to play with Java, but Apple have now deprecated the Cocoa/Java bridge. I’d advise taking a look at http://developer.apple.com/ – there are some nice Cocoa tutorials there, and you’ll be able to quickly see how long it takes to knock together a simple temperature/exchange rate converter application using the full suite of XCode/InterfaceBuilder tools. You may well find that that’s something you’re happy with with your project, or that you might want to explore a Python/Ruby approach with Cocoa bindings.
The advice here is good if you want to become a super proficient programmer. I’m not sure learning SVN and writing Unit Tests and what not is the best way to go if you just want to bang out some simple applications. I’m pretty sure you’ll get sick of programming before you get proficient at it if you follow that route. For starters, Cocoa and Objective-C aren’t the only way to write applications for MacOS X. Real Basic is a sort of cross platform visual basic, and you can write all sorts of simple applications with it. I’m pretty sure you can use Interface Builder and Applescript together as well. Also keep in mind that Mac OS X is based of Unix, so if the sorts of applications you are writing don’t need a GUI, you can program them in any old programming language, like Ruby, Python, Perl, etc, etc, etc.
(everything panic said and…) I’ve been playing around with Objective-C on and off for two plus years and I think I understand it well enough but I don’t have that great of a grasp of it. I had been using AppleScript to automate a lot of complex tasks in print production for about a decade so that helped me approach it but in the two years of learning Cocoa, I’ve taken seasons off and I haven’t taken it too seriously so my results aren’t really indicative of what time you might actually need. On a superficial level Objective-C can be easy to pick up though a little tedious to code. You can almost get away with not knowing any C beforehand, but only almost. It’s pretty easy to put together simple applications, so much so that you can create a text editor or a web browser with little to no code. One of my first apps I built parsed XML documents and presented the tags, tag attributes and tag contents in an outline view. And it di
Objective-C is a very thin layer on top of C. To understand ObjC, a basic understanding of C is important. Objective-C programs, however, are very different than C programs in that they are structured around objects, not procedures. An understanding of object-oriented design is thus also critical. From here, you must learn about the Cocoa frameworks, which are in two parts. Foundation includes important classes like NSString, NSDictionary, and NSArray, which you will use constantly. AppKit revolves around the event loop, windows, views/controls, and the responder chain. Learn about each of these topics and you should be well on your way to being a Cocoa guru. Then there’s Interface Builder. What you see in Interface Builder are simply Objective-C objects. Every kind of object you can make in IB has a way to save and restore its state into a “NIB” file. As well as the objects themselves, the NIB stores connections between objects — outlets and actions. Outlets are instance variables tha
As long as I’m investing the time to learn a language, I’d like it to be one that won’t prove limiting in the future (if things go well). Learning only one language will prove limiting in the future. That which you learn from RealBasic, or any of the other suggestions here, is very much applicable to any other language you learn. The important thing is to look at a couple of examples of simple applications and go with whatever makes the most sense to you. Instant gratification does have some value when it comes to starting a new hobby.
Related Questions
- Will there be an opportunity to meet Amgen Scholars participating in the U.S. Program at other host universities and to learn more about biotechnology and drug discovery and development?
- How can I learn more about the adoption process and the services JCCA and the Ametz Adoption Program provide?
- How long does it take to learn how to program for Mac OS X?