What is the difference between Cocoa & Xcode?

Discussion in 'Mac Programming' started by carterx, Oct 2, 2009.

  1. carterx
    Expand Collapse
    macrumors member

    carterx

    Joined:
    Dec 4, 2006
    #1
    I'm looking to try and self teach myself the basics of Cocoa then get into some minor Mac App developing but what is the difference between Cocoa & Xcode? Should I be trying to learn the basics of Cocoa or Xcode or is it technicly the same thing.

    Just looking to get my feet in the water to at least start reading up on the basics.
     
  2. kainjow
    Expand Collapse
    Moderator emeritus

    kainjow

    Joined:
    Jun 15, 2000
    #2
    In a nutshell:

    Cocoa is the library of code you use to write applications. Cocoa usually refers to user interface code, such as windows and menu bars, but it also refers to code that lets you work with various data types, such as arrays.

    Xcode is the tool, specifically Integrated Development Environment, that you use to write your code and turn it into an actual application.
     
  3. GorillaPaws
    Expand Collapse
    macrumors 6502a

    GorillaPaws

    Joined:
    Oct 26, 2003
    Location:
    Richmond, VA
    #3
    To put it another way, Xcode is an app that lets you write Cocoa, but Xcode also lets you write code for other frameworks, using other languages. Likewise, Cocoa doesn't have to be written with Xcode; it can be written in any text editor. However, due to many conveniences, you'll typically find most people writing Cocoa Apps using Xcode and Interface Builder.

    You'll definitely want to learn Xcode and Interface Builder, but these are typically taught as you need them in most tutorials on Cocoa. When you're first starting out, you'll probably be using a text editor and the terminal. Take a look at the guides section at the top of the programming forum for some helpful references as well as doing a search for learning to program Cocoa. There's a lot of really helpful information available on this site for beginners.
     
  4. AJClayton
    Expand Collapse
    macrumors 6502

    AJClayton

    Joined:
    Jan 9, 2007
    Location:
    Dorset, England
    #4
    In addition to the reply above that answers your query very well, just a thought on the book you may choose. I found Cocoa Programming for Mac OS X by Aaron Hillegass excellent. If you go for this, make sure it's the third edition you buy as the first two releases of this book are now seriously out of date.

    Good luck with your programming! :) Drink plenty of coffee... :p
     
  5. Consultant
    Expand Collapse
    macrumors G5

    Consultant

    Joined:
    Jun 27, 2007
    #5
    If you can't figure that out, attempting to be a developer is probably not the best idea.
     
  6. carterx
    Expand Collapse
    thread starter macrumors member

    carterx

    Joined:
    Dec 4, 2006
  7. admanimal
    Expand Collapse
    macrumors 68040

    Joined:
    Apr 22, 2005
    #7
    Just to mince words, you don't write Cocoa- you write Objective-C code (or possibly another language) that uses Cocoa.
     
  8. GorillaPaws
    Expand Collapse
    macrumors 6502a

    GorillaPaws

    Joined:
    Oct 26, 2003
    Location:
    Richmond, VA
    #8
    You are correct, although it's pretty common to see that phrase with the implied meaning you stated. My apologies to the OP if that was a point of confusion.
     
  9. electroshock
    Expand Collapse
    macrumors 6502a

    electroshock

    Joined:
    Sep 7, 2009
    #9
    Another way of looking at it, if it helps make it a bit more clear:

    Windows:

    C++ (programming language) using Microsoft Foundation Class library (provided premade functions) with the Visual C++ IDE (editing and compiling environment).

    C# using .NET Framework (which includes a class library) with the Visual Studio IDE.

    MacOS X:

    Objective-C using Cocoa library with the Xcode IDE.

    Bottom line is:

    Language, library, editor. Cocoa being the library and Xcode being the editor and compiler.
     
  10. admanimal
    Expand Collapse
    macrumors 68040

    Joined:
    Apr 22, 2005
    #10
    XCode isn't a compiler, just an IDE. GCC is the compiler that XCode uses for your code.
     
  11. JamesCCook
    Expand Collapse
    macrumors newbie

    JamesCCook

    Joined:
    May 14, 2012
    #11
    What's with the hate? Why discourage someone who asks sincerely for your help and knowledge?
     
  12. ArtOfWarfare
    Expand Collapse
    macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #12
    I realize this post is 4 years old, but because someone else revised the topic today I thought I'd just mention that the compiler that Xcode now uses is Clang.
     
  13. Mr. Retrofire
    Expand Collapse
    macrumors 601

    Mr. Retrofire

    Joined:
    Mar 2, 2010
    Location:
    www.emiliana.cl
    #13
    Not in 10.9.
     
  14. Berean47
    Expand Collapse
    macrumors newbie

    Joined:
    Oct 12, 2015
    #14
    XCode is a methodology while cocoa is a framework; meaning xcode incorporates the use of objective c with the integration of the ide to create a method for programming os x and ios. cocoa is a framework that integrates binaries or libraries with additional functionality that you can use to create these apps with.

    Like JamesCCook said... if you think so highly of yourself that you are going to discourage someone from programming then maybe 'attempting to be a developer is not the best idea' for you.
     
  15. larswik
    Expand Collapse
    macrumors 68000

    Joined:
    Sep 8, 2006
    #15
    This thread is about 6 1/2 years old. If he hasn't figured it out by now, programming might not be his thing.
     

Share This Page