Cocoa tips for PHP developers?












3















I'm a PHP developer, and I use the MVC pattern and object-oriented code. I really want to write applications for the iPhone, but to do that I need to know Cocoa, but to do that I need to know Objective-C 2.0, but to do that I need to know C, and to do that I need to know about compiled languages (versus interpreted).



Where should I begin?
Do I really need to begin with plain old "C", as Joel would recommend?



Caveat: I like to produce working widgets, not elegant theories.










share|improve this question





























    3















    I'm a PHP developer, and I use the MVC pattern and object-oriented code. I really want to write applications for the iPhone, but to do that I need to know Cocoa, but to do that I need to know Objective-C 2.0, but to do that I need to know C, and to do that I need to know about compiled languages (versus interpreted).



    Where should I begin?
    Do I really need to begin with plain old "C", as Joel would recommend?



    Caveat: I like to produce working widgets, not elegant theories.










    share|improve this question



























      3












      3








      3


      2






      I'm a PHP developer, and I use the MVC pattern and object-oriented code. I really want to write applications for the iPhone, but to do that I need to know Cocoa, but to do that I need to know Objective-C 2.0, but to do that I need to know C, and to do that I need to know about compiled languages (versus interpreted).



      Where should I begin?
      Do I really need to begin with plain old "C", as Joel would recommend?



      Caveat: I like to produce working widgets, not elegant theories.










      share|improve this question
















      I'm a PHP developer, and I use the MVC pattern and object-oriented code. I really want to write applications for the iPhone, but to do that I need to know Cocoa, but to do that I need to know Objective-C 2.0, but to do that I need to know C, and to do that I need to know about compiled languages (versus interpreted).



      Where should I begin?
      Do I really need to begin with plain old "C", as Joel would recommend?



      Caveat: I like to produce working widgets, not elegant theories.







      php c objective-c cocoa






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 2 days ago









      Ijas Ameenudeen

      6,55732746




      6,55732746










      asked Aug 29 '08 at 0:19









      lo_fyelo_fye

      5,48022848




      5,48022848
























          6 Answers
          6






          active

          oldest

          votes


















          7














          Yes, you're really best off learning C and then Objective-C. There are some resources that will get you over the C and Objective-C language learning curve:




          • Uli Kusterer's online book Masters of the Void

          • Stephen Kochan's book Programming in Objective-C


          And there are some resources that will get you over the framework learning curve:




          • CocoaLab's online book Become an Xcoder

          • Aaron Hillegass' book Cocoa Programming for Mac OS X


          Despite what Jeff might say, learning C is important for professional software developers for just this reason. It's sort of a baseline low-level lingua franca that other innovation happens atop. The reason Jeff has been able to get away with not learning C is not because you don't need to know C, but because he learned Pascal which is in many ways isomorphic to C. (It has all the same concepts, including pointers and manual memory management.)






          share|improve this answer































            3














            Get Cocoa Programming For Mac OS X by Aaron Hillegass. This should get you on your way to Cocoa programming. You can look up C-related programming as things come up.



            K&R C Programming Language is the definitive reference that is still applicable today to C programming.



            Get the Cocoa book, work though it and if you encounter any snags, just ask your C questions here :)






            share|improve this answer































              3














              Who reads books these days? I have the 1st edition, I forgot to read it. Go to the iPhone Developer Center. Read examples.



              In case you didn't read any of that, click the pretty picture.



              iPhone SDK






              share|improve this answer

































                1














                No need to start with plain C. Start with an excellent book instead: Cocoa Programming for Mac OS X.






                share|improve this answer































                  0














                  I think starting with C would be a smart thing to do. After all, Objective-C is C language with some extensions.



                  To develop in Cocoa you are required to know well how pointers and memory allocation work (there's no garbage collection on the iPhone), plus you will have to use some standard C libraries, because a lot of the frameworks that are used to develop for the iPhone are C libraries not Cocoa libraries. Take for example CoreGraphics, the library you have to use to draw on the screen on the iPhone. That's a C framework, meaning that it is not written in Objective-C.



                  Of course after learning C to a modest level, you could start reading about Objective-C and Cocoa, and in that case I would start with the Objective-C language specification (link to PDF) and the Aaron Hillegas book on Cocoa.






                  share|improve this answer

































                    0














                    The memory management concepts that are (or were, depending on if you like the whole garbage collection thing) central to the Cocoa frameworks can be a little confusing. This is particularly true for those coming over from languages such as PHP, Python, Ruby, or even Java. Knowing C, or C++ for that matter, put you at a great advantage when learning Objective-C and Cocoa.






                    share|improve this answer























                      Your Answer






                      StackExchange.ifUsing("editor", function () {
                      StackExchange.using("externalEditor", function () {
                      StackExchange.using("snippets", function () {
                      StackExchange.snippets.init();
                      });
                      });
                      }, "code-snippets");

                      StackExchange.ready(function() {
                      var channelOptions = {
                      tags: "".split(" "),
                      id: "1"
                      };
                      initTagRenderer("".split(" "), "".split(" "), channelOptions);

                      StackExchange.using("externalEditor", function() {
                      // Have to fire editor after snippets, if snippets enabled
                      if (StackExchange.settings.snippets.snippetsEnabled) {
                      StackExchange.using("snippets", function() {
                      createEditor();
                      });
                      }
                      else {
                      createEditor();
                      }
                      });

                      function createEditor() {
                      StackExchange.prepareEditor({
                      heartbeatType: 'answer',
                      autoActivateHeartbeat: false,
                      convertImagesToLinks: true,
                      noModals: true,
                      showLowRepImageUploadWarning: true,
                      reputationToPostImages: 10,
                      bindNavPrevention: true,
                      postfix: "",
                      imageUploader: {
                      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                      allowUrls: true
                      },
                      onDemand: true,
                      discardSelector: ".discard-answer"
                      ,immediatelyShowMarkdownHelp:true
                      });


                      }
                      });














                      draft saved

                      draft discarded


















                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f33696%2fcocoa-tips-for-php-developers%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown

























                      6 Answers
                      6






                      active

                      oldest

                      votes








                      6 Answers
                      6






                      active

                      oldest

                      votes









                      active

                      oldest

                      votes






                      active

                      oldest

                      votes









                      7














                      Yes, you're really best off learning C and then Objective-C. There are some resources that will get you over the C and Objective-C language learning curve:




                      • Uli Kusterer's online book Masters of the Void

                      • Stephen Kochan's book Programming in Objective-C


                      And there are some resources that will get you over the framework learning curve:




                      • CocoaLab's online book Become an Xcoder

                      • Aaron Hillegass' book Cocoa Programming for Mac OS X


                      Despite what Jeff might say, learning C is important for professional software developers for just this reason. It's sort of a baseline low-level lingua franca that other innovation happens atop. The reason Jeff has been able to get away with not learning C is not because you don't need to know C, but because he learned Pascal which is in many ways isomorphic to C. (It has all the same concepts, including pointers and manual memory management.)






                      share|improve this answer




























                        7














                        Yes, you're really best off learning C and then Objective-C. There are some resources that will get you over the C and Objective-C language learning curve:




                        • Uli Kusterer's online book Masters of the Void

                        • Stephen Kochan's book Programming in Objective-C


                        And there are some resources that will get you over the framework learning curve:




                        • CocoaLab's online book Become an Xcoder

                        • Aaron Hillegass' book Cocoa Programming for Mac OS X


                        Despite what Jeff might say, learning C is important for professional software developers for just this reason. It's sort of a baseline low-level lingua franca that other innovation happens atop. The reason Jeff has been able to get away with not learning C is not because you don't need to know C, but because he learned Pascal which is in many ways isomorphic to C. (It has all the same concepts, including pointers and manual memory management.)






                        share|improve this answer


























                          7












                          7








                          7







                          Yes, you're really best off learning C and then Objective-C. There are some resources that will get you over the C and Objective-C language learning curve:




                          • Uli Kusterer's online book Masters of the Void

                          • Stephen Kochan's book Programming in Objective-C


                          And there are some resources that will get you over the framework learning curve:




                          • CocoaLab's online book Become an Xcoder

                          • Aaron Hillegass' book Cocoa Programming for Mac OS X


                          Despite what Jeff might say, learning C is important for professional software developers for just this reason. It's sort of a baseline low-level lingua franca that other innovation happens atop. The reason Jeff has been able to get away with not learning C is not because you don't need to know C, but because he learned Pascal which is in many ways isomorphic to C. (It has all the same concepts, including pointers and manual memory management.)






                          share|improve this answer













                          Yes, you're really best off learning C and then Objective-C. There are some resources that will get you over the C and Objective-C language learning curve:




                          • Uli Kusterer's online book Masters of the Void

                          • Stephen Kochan's book Programming in Objective-C


                          And there are some resources that will get you over the framework learning curve:




                          • CocoaLab's online book Become an Xcoder

                          • Aaron Hillegass' book Cocoa Programming for Mac OS X


                          Despite what Jeff might say, learning C is important for professional software developers for just this reason. It's sort of a baseline low-level lingua franca that other innovation happens atop. The reason Jeff has been able to get away with not learning C is not because you don't need to know C, but because he learned Pascal which is in many ways isomorphic to C. (It has all the same concepts, including pointers and manual memory management.)







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Aug 29 '08 at 1:08









                          Chris HansonChris Hanson

                          49.4k667103




                          49.4k667103

























                              3














                              Get Cocoa Programming For Mac OS X by Aaron Hillegass. This should get you on your way to Cocoa programming. You can look up C-related programming as things come up.



                              K&R C Programming Language is the definitive reference that is still applicable today to C programming.



                              Get the Cocoa book, work though it and if you encounter any snags, just ask your C questions here :)






                              share|improve this answer




























                                3














                                Get Cocoa Programming For Mac OS X by Aaron Hillegass. This should get you on your way to Cocoa programming. You can look up C-related programming as things come up.



                                K&R C Programming Language is the definitive reference that is still applicable today to C programming.



                                Get the Cocoa book, work though it and if you encounter any snags, just ask your C questions here :)






                                share|improve this answer


























                                  3












                                  3








                                  3







                                  Get Cocoa Programming For Mac OS X by Aaron Hillegass. This should get you on your way to Cocoa programming. You can look up C-related programming as things come up.



                                  K&R C Programming Language is the definitive reference that is still applicable today to C programming.



                                  Get the Cocoa book, work though it and if you encounter any snags, just ask your C questions here :)






                                  share|improve this answer













                                  Get Cocoa Programming For Mac OS X by Aaron Hillegass. This should get you on your way to Cocoa programming. You can look up C-related programming as things come up.



                                  K&R C Programming Language is the definitive reference that is still applicable today to C programming.



                                  Get the Cocoa book, work though it and if you encounter any snags, just ask your C questions here :)







                                  share|improve this answer












                                  share|improve this answer



                                  share|improve this answer










                                  answered Aug 29 '08 at 0:29









                                  Misha MMisha M

                                  4,177133961




                                  4,177133961























                                      3














                                      Who reads books these days? I have the 1st edition, I forgot to read it. Go to the iPhone Developer Center. Read examples.



                                      In case you didn't read any of that, click the pretty picture.



                                      iPhone SDK






                                      share|improve this answer






























                                        3














                                        Who reads books these days? I have the 1st edition, I forgot to read it. Go to the iPhone Developer Center. Read examples.



                                        In case you didn't read any of that, click the pretty picture.



                                        iPhone SDK






                                        share|improve this answer




























                                          3












                                          3








                                          3







                                          Who reads books these days? I have the 1st edition, I forgot to read it. Go to the iPhone Developer Center. Read examples.



                                          In case you didn't read any of that, click the pretty picture.



                                          iPhone SDK






                                          share|improve this answer















                                          Who reads books these days? I have the 1st edition, I forgot to read it. Go to the iPhone Developer Center. Read examples.



                                          In case you didn't read any of that, click the pretty picture.



                                          iPhone SDK







                                          share|improve this answer














                                          share|improve this answer



                                          share|improve this answer








                                          edited Apr 1 '12 at 20:43









                                          Neysor

                                          3,539112964




                                          3,539112964










                                          answered Aug 29 '08 at 0:45









                                          dlamblindlamblin

                                          26.8k1774108




                                          26.8k1774108























                                              1














                                              No need to start with plain C. Start with an excellent book instead: Cocoa Programming for Mac OS X.






                                              share|improve this answer




























                                                1














                                                No need to start with plain C. Start with an excellent book instead: Cocoa Programming for Mac OS X.






                                                share|improve this answer


























                                                  1












                                                  1








                                                  1







                                                  No need to start with plain C. Start with an excellent book instead: Cocoa Programming for Mac OS X.






                                                  share|improve this answer













                                                  No need to start with plain C. Start with an excellent book instead: Cocoa Programming for Mac OS X.







                                                  share|improve this answer












                                                  share|improve this answer



                                                  share|improve this answer










                                                  answered Aug 29 '08 at 0:30









                                                  Frank KruegerFrank Krueger

                                                  44.4k39143198




                                                  44.4k39143198























                                                      0














                                                      I think starting with C would be a smart thing to do. After all, Objective-C is C language with some extensions.



                                                      To develop in Cocoa you are required to know well how pointers and memory allocation work (there's no garbage collection on the iPhone), plus you will have to use some standard C libraries, because a lot of the frameworks that are used to develop for the iPhone are C libraries not Cocoa libraries. Take for example CoreGraphics, the library you have to use to draw on the screen on the iPhone. That's a C framework, meaning that it is not written in Objective-C.



                                                      Of course after learning C to a modest level, you could start reading about Objective-C and Cocoa, and in that case I would start with the Objective-C language specification (link to PDF) and the Aaron Hillegas book on Cocoa.






                                                      share|improve this answer






























                                                        0














                                                        I think starting with C would be a smart thing to do. After all, Objective-C is C language with some extensions.



                                                        To develop in Cocoa you are required to know well how pointers and memory allocation work (there's no garbage collection on the iPhone), plus you will have to use some standard C libraries, because a lot of the frameworks that are used to develop for the iPhone are C libraries not Cocoa libraries. Take for example CoreGraphics, the library you have to use to draw on the screen on the iPhone. That's a C framework, meaning that it is not written in Objective-C.



                                                        Of course after learning C to a modest level, you could start reading about Objective-C and Cocoa, and in that case I would start with the Objective-C language specification (link to PDF) and the Aaron Hillegas book on Cocoa.






                                                        share|improve this answer




























                                                          0












                                                          0








                                                          0







                                                          I think starting with C would be a smart thing to do. After all, Objective-C is C language with some extensions.



                                                          To develop in Cocoa you are required to know well how pointers and memory allocation work (there's no garbage collection on the iPhone), plus you will have to use some standard C libraries, because a lot of the frameworks that are used to develop for the iPhone are C libraries not Cocoa libraries. Take for example CoreGraphics, the library you have to use to draw on the screen on the iPhone. That's a C framework, meaning that it is not written in Objective-C.



                                                          Of course after learning C to a modest level, you could start reading about Objective-C and Cocoa, and in that case I would start with the Objective-C language specification (link to PDF) and the Aaron Hillegas book on Cocoa.






                                                          share|improve this answer















                                                          I think starting with C would be a smart thing to do. After all, Objective-C is C language with some extensions.



                                                          To develop in Cocoa you are required to know well how pointers and memory allocation work (there's no garbage collection on the iPhone), plus you will have to use some standard C libraries, because a lot of the frameworks that are used to develop for the iPhone are C libraries not Cocoa libraries. Take for example CoreGraphics, the library you have to use to draw on the screen on the iPhone. That's a C framework, meaning that it is not written in Objective-C.



                                                          Of course after learning C to a modest level, you could start reading about Objective-C and Cocoa, and in that case I would start with the Objective-C language specification (link to PDF) and the Aaron Hillegas book on Cocoa.







                                                          share|improve this answer














                                                          share|improve this answer



                                                          share|improve this answer








                                                          edited Aug 29 '08 at 0:33

























                                                          answered Aug 29 '08 at 0:27









                                                          Sergio AcostaSergio Acosta

                                                          8,764115587




                                                          8,764115587























                                                              0














                                                              The memory management concepts that are (or were, depending on if you like the whole garbage collection thing) central to the Cocoa frameworks can be a little confusing. This is particularly true for those coming over from languages such as PHP, Python, Ruby, or even Java. Knowing C, or C++ for that matter, put you at a great advantage when learning Objective-C and Cocoa.






                                                              share|improve this answer




























                                                                0














                                                                The memory management concepts that are (or were, depending on if you like the whole garbage collection thing) central to the Cocoa frameworks can be a little confusing. This is particularly true for those coming over from languages such as PHP, Python, Ruby, or even Java. Knowing C, or C++ for that matter, put you at a great advantage when learning Objective-C and Cocoa.






                                                                share|improve this answer


























                                                                  0












                                                                  0








                                                                  0







                                                                  The memory management concepts that are (or were, depending on if you like the whole garbage collection thing) central to the Cocoa frameworks can be a little confusing. This is particularly true for those coming over from languages such as PHP, Python, Ruby, or even Java. Knowing C, or C++ for that matter, put you at a great advantage when learning Objective-C and Cocoa.






                                                                  share|improve this answer













                                                                  The memory management concepts that are (or were, depending on if you like the whole garbage collection thing) central to the Cocoa frameworks can be a little confusing. This is particularly true for those coming over from languages such as PHP, Python, Ruby, or even Java. Knowing C, or C++ for that matter, put you at a great advantage when learning Objective-C and Cocoa.







                                                                  share|improve this answer












                                                                  share|improve this answer



                                                                  share|improve this answer










                                                                  answered Sep 16 '08 at 1:10









                                                                  eczarnyeczarny

                                                                  37437




                                                                  37437






























                                                                      draft saved

                                                                      draft discarded




















































                                                                      Thanks for contributing an answer to Stack Overflow!


                                                                      • Please be sure to answer the question. Provide details and share your research!

                                                                      But avoid



                                                                      • Asking for help, clarification, or responding to other answers.

                                                                      • Making statements based on opinion; back them up with references or personal experience.


                                                                      To learn more, see our tips on writing great answers.




                                                                      draft saved


                                                                      draft discarded














                                                                      StackExchange.ready(
                                                                      function () {
                                                                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f33696%2fcocoa-tips-for-php-developers%23new-answer', 'question_page');
                                                                      }
                                                                      );

                                                                      Post as a guest















                                                                      Required, but never shown





















































                                                                      Required, but never shown














                                                                      Required, but never shown












                                                                      Required, but never shown







                                                                      Required, but never shown

































                                                                      Required, but never shown














                                                                      Required, but never shown












                                                                      Required, but never shown







                                                                      Required, but never shown







                                                                      Popular posts from this blog

                                                                      Liquibase includeAll doesn't find base path

                                                                      How to use setInterval in EJS file?

                                                                      Petrus Granier-Deferre