Programming for Mac OS X


Recommended Posts

Hello All,

I started a thread before asking for help to start programming for Mac OS X, and many of you said I should start by going to cocoalab.com. Anyways, i wanted to ask few more questions:

1. If I do not have any programming experience for any platform...where do I start in Mac OS X? Objective-C first or Cocoa or? Which one comes first? Whats the difference? Do I have to learn both Objective-C and Cocoa?

2. What book would anyone recommend for Objective-C (no prior experience at all) and for Cocoa (no prior experience at all). I know there isn't a "best book", but what would you all recommend.

3. Aside from cocoalab.com for tutorials and books, is there any other websites that I can always refer for help and read free tutorials and books?

4. My college don't have any Apple Groups, but how would I find such a thing around Houston, TX probably at other colleges or facilities?

Thanks,

-Eagle101

Link to comment
https://www.neowin.net/forum/topic/673142-programming-for-mac-os-x/
Share on other sites

I'm not a programmer but on the ADC website developer.apple.com they state that you should have a knowledge of Objective-C before using Cocoa.

Getting Started with Cocoa

Also, you might want to check out Introduction to the Objective-C 2.0 Programming Language

And Apple Developer Connection home.

And download a copy of Xcode 3 if you haven't already done so. If you have a Mac OS X installation disc it can be installed from there.

Edited by HellScream63
I'm not a programmer but on the ADC website developer.apple.com they state that you should have a knowledge of Objective-C before using Cocoa.

Getting Started with Cocoa

Also, you might want to check out Introduction to the Objective-C 2.0 Programming Language

And Apple Developer Connection home.

And download a copy of Xcode 3 if you haven't already done so. If you have a Mac OS X installation disc it can be installed from there.

Thanks for your help and suggestions...I already checked the Apple website for info but looking for actual books which they should make it easier for me to learn Objective-C and Cocoa...

Any other suggestions? Thanks for your help!!!

-Eagle101

Assuming you're already a competent developer and not jumping in to Macintosh programming without prior experience:

Refreshing your understanding of various OOP concepts and design patterns?specifically MVC?is a good idea. The Gang of Four's "Design Patterns: Elements of Reusable Object-Oriented Software" is considered standard reading. The book's examples are in (among other languages) Smalltalk and so I'm sure you'll see some of the similarities between that and Objective C.

Aaron Hillegass' "Cocoa Programming for Mac OS X" is considered the premier introductory text on Cocoa development. A good understanding of the underlying architecture is important and to that end "Mac OS X Internals: A Systems Approach" by Amit Singh is a solid high-level overview of the major components of the platform for a technical audience.

If you don't have any programming experience for any platform then it's time to start with "computer science basics". A introductory C, Ruby, Python (or any other language that tickles your fancy) is a good place to learn about the basics of programming. Programming is more-or-less just glorified math: the concepts you learn for one language are generally applicable in others. That having been said, you don't start by learning multi-variable calculus without having first practiced algebra, trigonometry, and "what the heck a whole number is anyway".

Once you've got your basics worked out, studying general principles is a good idea. Donald Knuth's "The Art of Computer Programming v.1-4" is as relevant today as it ever was. It's a hefty collection, but worth the read. Assuming you're still with us, you should have a solid background in problem solving and a good understanding of general computer science principles, so picking up the "Design Patterns?"book mentioned earlier is a good next move. At that point you should be ready to learn the syntax of Objective C (assuming you haven't yet), and Cocoa: Hillegass' book is a good next choice. From there you'll probably do most of your learning by trolling through the ADC documents and watching the WWDC presentations.

If you're serious about learning to write Mac OS X software then picking up a first-year computer science course form a local community college/university is a great idea. 1-2 credits are dirt cheap and an instructor-led course is likely to teach you more of what you need to know than just trolling book stores & the library and reading whatever has a pretty cover. If you can spare the time and a couple hundred dollars for weekend courses, i think it's a good idea.

Assuming you're already a competent developer and not jumping in to Macintosh programming without prior experience:

Refreshing your understanding of various OOP concepts and design patterns?specifically MVC?is a good idea. The Gang of Four's "Design Patterns: Elements of Reusable Object-Oriented Software" is considered standard reading. The book's examples are in (among other languages) Smalltalk and so I'm sure you'll see some of the similarities between that and Objective C.

Aaron Hillegass' "Cocoa Programming for Mac OS X" is considered the premier introductory text on Cocoa development. A good understanding of the underlying architecture is important and to that end "Mac OS X Internals: A Systems Approach" by Amit Singh is a solid high-level overview of the major components of the platform for a technical audience.

If you don't have any programming experience for any platform then it's time to start with "computer science basics". A introductory C, Ruby, Python (or any other language that tickles your fancy) is a good place to learn about the basics of programming. Programming is more-or-less just glorified math: the concepts you learn for one language are generally applicable in others. That having been said, you don't start by learning multi-variable calculus without having first practiced algebra, trigonometry, and "what the heck a whole number is anyway".

Once you've got your basics worked out, studying general principles is a good idea. Donald Knuth's "The Art of Computer Programming v.1-4" is as relevant today as it ever was. It's a hefty collection, but worth the read. Assuming you're still with us, you should have a solid background in problem solving and a good understanding of general computer science principles, so picking up the "Design Patterns?"book mentioned earlier is a good next move. At that point you should be ready to learn the syntax of Objective C (assuming you haven't yet), and Cocoa: Hillegass' book is a good next choice. From there you'll probably do most of your learning by trolling through the ADC documents and watching the WWDC presentations.

If you're serious about learning to write Mac OS X software then picking up a first-year computer science course form a local community college/university is a great idea. 1-2 credits are dirt cheap and an instructor-led course is likely to teach you more of what you need to know than just trolling book stores & the library and reading whatever has a pretty cover. If you can spare the time and a couple hundred dollars for weekend courses, i think it's a good idea.

Thank you very much for your reply. I really appreciate your time and effort!

Let me mention few things:

I do not have any experience on programming for any platform...I never programmed before...But i really really want to start programming for mac. I am ready now. I have time now. So you are saying first I should learn the basics by learning C, python, Ruby? Are you sure?

I am saying this because many people told me to start with an Introduction to Objective-C (recommended: Programming in Objective-C by Stephen G. Kochan) and learning it. Then, to go ahead and learn Cocoa (recommended: Cocoa Programming by Aaron Hillegass)...Is this correct, or do I first need to learn the very very basics of programming?

Please guide me. Thanks

I recommend starting off with Python, especially since there is a Python-Cocoa option in Xcode. While Python isn't necessarily as fast as Objective-C, or as powerful, it is a very good starting point for basic programming theory.

Just keep in mind this is not an overnight thing. Once you start learning, you'll need to invest a few hours every week just improving your skills and doing new things. It takes years to master, I'm not even close yet.

I do not have any experience on programming for any platform...I never programmed before...But i really really want to start programming for mac. I am ready now. I have time now. So you are saying first I should learn the basics by learning C, python, Ruby? Are you sure?

Yes, I think learning the basics and having a good grasp of things is very important. I'm a fan of Ruby and Python: they're both more expressive languages than Objective C, but not so much that you'll feel crippled when you pick it up. It really doesn't matter which language you learn because the concepts are all the same.

Think of it like learning to play an FPS: the basic skills of moving, shooting, aiming, jumping, grenades, etc can be learned in any game. Once you have those mastered you can become proficent at a new game quickly. Imagine trying to play Portal having never used a mouse or keyboard: jumping in to Cocoa & Objective C would be even more complicated.

I am saying this because many people told me to start with an Introduction to Objective-C (recommended: Programming in Objective-C by Stephen G. Kochan) and learning it.

My take on Objective C is that while it's a good language for development, there's enough quirks that I think using another language is a better choice. Your mileage may vary. Also, the more languages you learn, the better a programmer you'll be: and by that I mean not just syntax but the strengths and weaknesses of a given language.

Programming is about syntax and languages in the same way that astronomy is about telescopes: it's the visible part of computer science, but not really the most important.

Then, to go ahead and learn Cocoa (recommended: Cocoa Programming by Aaron Hillegass)...Is this correct, or do I first need to learn the very very basics of programming?

If you can already program and have an understanding of OOP principles then picking up Objective C is pretty straight forward. The syntax is a direct superset of C and there aren't a whole lot of funny rules or quirks to learn. I don't think it's a very beginner friendly language and I think that the time you spend fighting the syntax (like making sure to next your []'s properly) is better spent dealing with the subject matter at hand.

Python or Ruby are great choices as beginer languages but the 'cost of entry' to learning a language is so low that it really doesn't matter which one your start with. A good ruby book is "Programming Ruby: 2nd edition" by Dave Thomas, unfortunately I can't recommend a Python Book. (FYI: all of the ones I've mentioned before I own, I don't want to recommend one without liking it enough to buy).

Kochan's book is quiet good, though I'm not sure if it's been updated for Objective C 2.0 or not. I own the first edition and found it served its purpose well.

Another good book was "Learning Cocoa with Objective C" by James Davidson. Again, I'm not sure if this has been updated for Objective C 2.0 and Xcode 3. The first edition was a solid text: not enough to stand on it's own, but if you were already a programmer then it provided a good jumping-off point.

EDIT: adding to what simon says:

I've been programming almost my entire life (long enough to have my first programs stored on a tape). It's a huge field and the best way to be successful is to realize that no matter how much you know, it's never even close to everything. Think of how long it took you to learn the math you know now - and think about how much there is that you don't know: computer science is even more complex than mathematics because it encompasses so many different fields.

Edited by the evn show

Thank you everyone for the replies. I really appreciate it.

Now, Lets get to the point. I already bought "Cocoa Programming for Mac Os X" by Aaron Hilliegass, and Programming in Objective-C by Stephen Kochan. However, as many have sugested that I start to learn the basics first.

Ok, i will put these books away. But help me get started please. Tell me what books can I read to fully understand the introductions that later on I can pick up on Objective-C then Cocoa. I really want to program for Macs. So please help me out here.

Thanks

Bump...any recommendations on a good book or place to start learning Python?

Thanks

Sadly, I don't have a good 'first book' for Python. I went to that language after Ruby (and a dozen others) so my first book (Dive in to Python by Mark Pilgram of 'dive into XML' and 'dive into mark' fame was it.

On the plus side, the book is available for free online as a PDF, HTML, etc. if you don't care much for dead-tree books.

  • 2 weeks later...

Hey dude, nice to see you :)

In relation to python, with my modest experience in that language, I would recommend you to first read the python manual that comes with the python distro itself. It's a nice start, has practical examples and most importantly the module index.

After that done read some code done by others will help allot. Best regards, Lechio.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • You're absolutely right! No reason in hell these should be on the road!
    • They aren't going to want to. Most would just go with the 17 Pro and save money. Why would they want to spend $300 for basically the same thing? It's not worth it if there are hardly any changes from year to year.
    • 24H2 rolled out to the Release Preview Channel in early June 2024, so this coming a bit later in the Experimental Channel (formerly Dev) doesn't really say much more than earlier H2 releases that came out in October. I am not sure what the thinking is here by putting it in Experimental, one would think that the 26H2 stamp means features are locked down and it's now bug tested until October? I don't even pretend to understand Microsoft's strategy for Windows Insider Program though
    • Nothing Ear (a) and CMF Buds Pro 2 with active noise cancellation drop to lowest price ever by Fiza Ali With Prime Day 2026 scheduled to run from Tuesday 23 to Friday 26 June, Amazon has already begun rolling out early access offers ahead of the main event. Particularly, Nothing Ear (a) and CMF Buds Pro 2 wireless earbuds have dropped to their lowest price ever with limited Prime deal offering 33% and 24% discounts, respectively. Nothing Ear (a) are equipped with 11mm dynamic drivers featuring a PM1 + TPU diaphragm. For noise control, the earbuds offer active noise cancellation (ANC) of up to 45dB across frequencies reaching 5,000Hz. The smart ANC algorithm adapts to surrounding noise levels, while a Transparency Mode allows users to remain aware of their environment when needed. Connectivity is handled via Bluetooth 5.3, with support for AAC, SBC, and LDAC audio codecs. Additional features include IP54-rated earbuds for dust and splash resistance, paired with an IPX2-rated charging case. Furthermore, users also benefit from pinch controls, in-ear detection, Google Fast Pair, Microsoft Swift Pair, dual-device connectivity, and a low-latency mode designed for gaming and video playback. The Nothing X app unlocks a range of customisation options, including a personalised equaliser, bass enhancement, control remapping, ear tip fit testing, firmware updates, dual-device management, a Find My Earbuds feature, and low-latency mode settings. When it comes to the battery, the earbuds house a 46mAh lithium-ion battery, while the charging case contains a 500mAh cell. With ANC disabled, users can expect up to 9.5 hours of playback from the earbuds and up to 42.5 hours in total with the charging case. With ANC enabled, battery life is rated at up to 5.5 hours per charge and up to 24.5 hours combined with the case. Finally, fast charging is also supported that should provide up to 10 hours of playback from a 10-minute charge with ANC turned off. Nothing Ear (a) Wireless Earbuds (Black): $53.20 (Amazon US) - 33% The CMF Buds Pro 2 feature a dual-driver audio system consisting of an 11mm bass driver and a 6mm micro-planar tweeter. The earbuds use PU (polyurethane) and PET (polyethylene terephthalate) titanium-coated diaphragms and are tuned by Nothing to deliver balanced audio performance. They further support active noise cancellation of up to 50dB across a frequency range of up to 5,000Hz, and noise control features include a Smart ANC algorithm, Adaptive ANC, Transparency Mode, and Clear Voice Technology 2.0. For calls, the CMF Buds Pro 2 use a total of six microphones and feature an environmental noise-cancelling algorithm, Clear Voice Technology 3.0, and Wind Noise Reduction 3.0 that should improve voice clarity during conversations. Furthermore, when it comes to the connectivity, it is provided through Bluetooth 5.4. Additional features include an IP55 rating for dust and water resistance, Google Fast Pair, Microsoft Swift Pair, in-ear detection, a low-latency mode, and a Find My Earbuds function. Moreover, through the Nothing X app for Android and iOS, users can access custom EQ settings, a bass enhancement algorithm, customisable controls, Find My Earbuds, low-latency mode, dual-device connectivity, an ear tip fit test, and firmware updates. The earbuds contain a 60mAh rechargeable lithium-ion battery, while the charging case houses a 460mAh battery. A full charge of the earbuds and case via USB-C should take approximately 85 minutes, while the earbuds alone should be fully recharged in the case in around 60 minutes. Battery life is rated at up to 11 hours of playback on a single charge and up to 43 hours with the charging case when ANC is turned off. With ANC enabled, playback time is reduced to up to 6.5 hours on the earbuds and up to 26 hours with the charging case. Talk time is rated at up to 6 hours on the earbuds and 25 hours with the case with ANC disabled, or up to 4.8 hours and 18.6 hours, respectively, with ANC enabled. CMF Buds Pro 2 Wireless Earbuds (Dark Grey): $37.05 (Amazon US) - 24% Good to know This Amazon deal is U.S. specific, and not available in other regions unless specified. We only use first-party seller links (at the time of article publishing); ensure that you purchase from a first-party seller link only. Check out Today's Deals on Amazon | or our recent tech deals. Become a Prime member (for Students or SNAP) via Neowin Get Prime Access - Prime for half price (for qualifying Medicaid, EBT, SNAP) Subscribe to Prime Video, Audible Plus, Music Unlimited or Kindle Unlimited via Neowin As an Amazon Associate, we earn from qualifying purchases.
  • Recent Achievements

    • Collaborator
      ryansurfer98 went up a rank
      Collaborator
    • Week One Done
      Eurosoft10 earned a badge
      Week One Done
    • One Month Later
      Eurosoft10 earned a badge
      One Month Later
    • One Year In
      Skeet Campbell earned a badge
      One Year In
    • One Month Later
      Sharbel earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      542
    2. 2
      +Edouard
      186
    3. 3
      Michael Scrip
      77
    4. 4
      PsYcHoKiLLa
      76
    5. 5
      Steven P.
      71
  • Tell a friend

    Love Neowin? Tell a friend!