Wednesday, May 18, 2011

iPhone Dev Blog

Hey guys,

It's been a while since my last post; I've been pretty busy with schoolwork and finals! Thankfully, I'm done for the semester.  It's been a rough one, but I've definitely learned a lot!

Anyway, I've been working on mobile application development for the iPhone lately.  I recently got a job, so it's been a pretty fun experience trying to mess with different APIs and the iPhone SDK in general.  It's just so cool to actually put your knowledge towards the real world.  I mean, in classes, you just stick with creating sensible programs that you type through the console in order to receive specified output.  You learn different data structures, multiple strategies on efficiency, and how to just have good coding ethics.  But it all ties together!  When you create programs for companies, for industries, for the consumer, it is important to keep these ideas.  You don't want a simple program that sorts contacts to take 3 seconds because you used an insertion sort algorithm; you want that simple program to be simple.  The abstraction is to make something look simple, even if it might take a complicated algorithm.  Efficiency is almost proportional to difficulty.  A low-efficient program will be very easy to create.  For a program that almost guarantees small data to sort, this would work pretty well.  But what if the program is designed for an industry that requires tabs of employees of every company to be sorted?  Certainly, this wouldn't be an optimal solution.  The point is, as humans in this generation, we expect things to happen instantaneously (unfortunately).  If you click something and it doesn't pop up in less than two seconds, the average consumer will consider it as if the program isn't responding or their phone in general is running slowly.  Of course, for CS majors, we would consider this as either normal (that is, processes in the background could be hogging resources, thus delaying the program to respond in time, etc) or just a tiny bug that can be fixed.  These concepts are important to consider when developing software!

Anyway, I've decided to show off a few pictures of development in my upcoming blogs for a few reasons:

  • Keep myself up-to-date with what I've done
  • Write notes to myself about what I can do better
  • Reflect on initial development and see what changes I can make
  • Users can comment and make ideas for me (if they want!)
  • Just for fun!
I always feel it fun to post pictures of development so people can see what's going on.  Maybe prospective programmers could get influenced by it; who knows?  I love doing what I do, and I love showing off certain techniques or ways to develop things.  And of course, it helps me learn what I'm doing right, and what things I really would like to improve on.  

Here are a few pictures of my current application I'm working on.  It's an app for the iPhone for a band made by my friends called 'Moonlight Social.' I posted a blog about them a few months ago; you should check that out if you're not familiar with them.  They released an EP just recently and are available on iTunes and Amazon!  Check out their website, too.  Anyway, I've just been working on an app for them for fun!  It's the best way to learn a new language and an SDK.

Initial Home Screen development.  This primarily was just a test to effectively parse the news information from the website correctly.

Updated News Screen development.  Decided to use a UINavigationBar to push/pop news information from one window to another window.   Parsing had a few small ASCII conversion errors, and those have been fixed.  News button seems to be finalized for the most part!
The screen that displays when you press on a News entry.  The outlook of this window isn't finalized, yet!
Blog Tab development.  Blog takes a very similar approach to News, in terms of display.  
Blog entry display.  Again, very similar to the News screen.  In fact, they use the same type of interface!  

Anyway, that's all I have for now.  Comments/suggestions are always appreciated and definitely encouraged!

Until next time,

Corey