|HOME > View Journal >|
Now that I have had the chance to finally upgrade my website with the latest version of my CMS, Majicko, I am taking a moment to branch off my personal blogs to include a development journal to keep track of my new understandings within the professional realm of programming and application development. In this archive, I will publish additions to my personal sum of programming knowledge as well as attempt to add to the sum of the collective knowledge by publishing these notes on the web for all to find.
Recently, my boss has purchased for me an iPhone and iMac with the instruction to begin learning Objective C programming. I am now easing into the realms of C programming for the development of iPhone apps for Bandwise. I am rather looking forward to this as it will widen the scope of my skills. As this archive is meant for the sharing of knowledge rather than anecdotal experiences, I will forward anyone interested in details of my professional work up to this point to my About Me page where my work in conventional web design is described in detail. Let's cut to the chase now.
The setup I'm using is a typical iMac manufactured 2011 with Xcode 4. I've never used a Mac before, so I'm getting accustomed to the new O/S as well as the new development software, which is itself brand new. This has been an added challenge for me as most tutorial articles, videos, and books available right now instruct using Xcode 3, which is very very different.
I found this video extremely helpful in familiarizing myself with Xcode 4 and allowing me to grok what tutorials meant when explaining something in Xcode 3.
Having zero experience in C prior to this, staring at a file full of objective C if slightly daunting, like any programming language seen at first glance. One of the first things I noted is that C compilers take a very strict inventory of every variable and what data type is meant for them. PHP is convenient in that a lot of data types (i.e. strings and integers) can be freely swapped around and the parser will understand so long as you don't do something silly like try to use a non-numeric string in a math formula.
I'll elaborate more on that as I learn on it. I'd like to speak a little about the general structure of your typical Objective C programs, specifically where apps are concerned. Based on what I've seen so far, which might not be completely accurate, apps written in Xcode have a few components.
NIB: These are xib files in Xcode 4 and details the visual design of the app.
Headers: These are .h files which contain the initial declarations of a class.
Implementations: These are .m files that contain the details of what a class does. These are usually paired with a .h file.
Again, all of that may be slightly inaccurate or over-simplified, but bear with me. The general scope of the project appears to be that Xcode defines an initial NIB (xib file) that calls upon the app delegate, which is one of the classes made up by a header and implementation pair. The app delegate is then used to call upon whatever else you define in your code. This ties the app together and making it work.
I'll explain all of this in more detail as it all becomes clearer to me. I will also detail issues and resolutions that I discover as I proceed.