Objective C fascinates me. I don't know why, it's not like its near as cool as Smalltalk, but sometimes I have to work in C, and it just feels like the "right" way to bolt an object model on top of C. So, I've been working my way through some of the Objective C tutorials out there, both Apple's and those that spin from the GNUstep stuff.
Currency Converter is an extremely simple application, but there's still a design behind it. This design is based up on the Model-View-Controller paradigm, the model behind many designs for object-oriented programs. This design pattern aids in the development of maintainable, extensible, and understandable systems.
Model-View-Controller (MVC) was derived from Smalltalk-80. It proposes three types of object in an application, separated by abstract boundaries and communicating with each other across those boundaries.
That sounds good. I like the Smalltalk credit. As you read on though, you realize Apple's implementation of "MVC" is a hijacked one. View's the normal thing. Model means domain model. And controller, well, that's that "glue puppy" object. In fact at one point they suggest that in reality one would just do this with one of these "controller" objects, but to illustrate the point of objects... can you say main()?
I was taught early on to be wary of objects that end in "er." I get an especial kick out of the "main()" object in the design, the CoverterController.