Archive for March, 2009

So I’ve been working on some projects recently. One of the big ones is iPhone development. When I got my iPhone, I was thrilled by all of the apps that I could get. What Apple says really does seem to be true. 

There’s an app for that.

So why bother? After all, I did miss the first wave opportunity. Well, besides the thrill of learning something that’s quite challenging. There are still some great tools that aren’t out there yet. Some that maybe only I would find useful. Some that everyone might find useful. So why can’t I be the one to make them? All I need is an idea, the right tools, some knowledge, and a little motivation. Well, I’ve got some ideas. I’ve got most of the right tools. And I definitely have motivation. All I need is knowledge, and I’m slowly gaining that too. That’s where the world wide web comes in handy. I’ll share my knowledge with you if you share with me. When I learn something new (and handy), I’ll post it here, and you can add comments that will help me and everyone else learn just a little bit more.

So I used to work in software development. Most of my days were spent coding on PCs in languages that hardcore programmers wouldn’t even call true programming languages. For them, it’s not programming unless you’re writing in C, Fortran, or some other hard to learn language. Well, I’m one step closer to becoming a hardcore programmer. I’ve learned Objective-C. At least the basics anyway. Before you go on, I should mention that if you don’t feel like learning C and Objective-C (you really should learn at least a little C), then forget about programming for the iPhone (unless you want to build Web Apps.) As far as I can tell, there is no alternative language you can use to build a native app.

Which finally brings me to my first little tidbit of knowledge: MVC (Model-View-Controller) Architecture. A little disclaimer: outside of an intro programming class (where I learned MATLAB scripting and a little C++), I’ve had no formal training. Most everything I know if self-taught, learned on the job, or picked up from friends or the internet. So if I’m wrong, I’m sorry. I’m not an expert.

Model-View-Controller philosophy is a big thing with Apple. The idea is that your abstract concept (the model, such as a calculation engine to do math) should be independent from the interface (the view) you use to interact with it. So much so that you should always have a middle-man (the controller). What this means to us beginners and noobs is that everything belongs in a class and there is no direct communication between the heart of your app and the interface. This a little different from what I’m used to. My classes tend to encapsulate model components (database access, for example), but I never used classes to differentiate between my gui and the code that controlled it. So you might say that I was using the M-(VC) architecture for coding.

Because Apple believes in a very controlled environment, you really have to play things their way. Maybe when you’ve become an expert, you can break free of this coding philosophy. Until then study it, and study it well. The fact is, its really hard to understand the tutorials and documentation out there unless you grasp this basic concept: Model speaks to Controller which speaks to View. So if you want to manipulate a view in an iPhone app, then you need to understand its controller. This unfortunately means that there is just one more class for you to figure out.

The last thing to mention is the concept of a delegate. Its one that I’m still working to grasp, but the idea is exactly what the word implies. You can appoint an object to act as the middle-man for certain classes. The thing is, that sounds like the definition of a controller. So what’s the difference? I’m still not sure. So far, assuming that they are one in the same (conceptually) has been working for me, but I’ll tell you when that’s stops being the case.

Before too long, you’ll be building your own views and controllers (I’m already doing it), but it was a struggle to clearly delineate my classes to stick to the MVC concept. To be fair, I’m probably making it sound a little harder than it is, but its definitely not a cake walk. Just don’t plan on taking the leap from a simple tutorial found through the Apple Developers Connection (ADC, the Apple equivalent to MSDN) or the web to a full-featured app in a short time. Unless, of course, if you’re already a developer for Mac applications.

Until next time, keep it fuzzy….

March 29

Let them eat cake!!!

So one thing I’ve been meaning to do is give a big web thank you (and online plug) to the cake decorator from my wedding, Jen! The thing is, she not only made our cake, but she was also a bridesmaid. I met Jen after I moved to Virginia and we’ve been great friends ever since. She really is great at what she does and she even competes in regional competitions. You should hop over to her website Around The World In 80 Cakes. You can check out all of her work and find out how to get in touch with her. The picture below is Jen standing next to the cake at our wedding. 

Jen And Our Cake

Jen And Our Cake

If you want to read Jen’s blog post about how she designed our cake, you can check it out here. Oh, I should also mention, she made us some awesome truffles as favors. Of course, I can’t forget to thank her assistant (and husband), my friend (and groomsman), Rohit. So I give them 

Rating: ★★★★★

Definitely fuzz-worthy!

I’m back at it, I think. I’m now married (which is way under-rated, in my opinion) so I should have more time. At least, that’s what I thought. The truth is, time becomes more scarce as life progresses. I’m not sure why. Though I’m not busy planning a wedding, I’m spending more time at work and on “chores.” That shouldn’t be the case and I’m working to change that.

I’ve decided that one of the many problems with my site is that I’ve tied myself down to just writing movie reviews. While that is a lot of fun, I have other hobbies that folks may find just as interesting. It should also give me the motivation to write more often. Starting today, Gotfuzz will be fuzzier. Stay tuned…………….