Entries in Objective-C (7)

Monday
Nov212011

Back On Track, and Running!

So many great things happened during this week, that I don't even know where to start!  Well, let's start from the beginning of the week.


Just as the Assignment #1 was done and over with the updated Stanford iOS course CS193p has been posted on iTunes!  This one is also done by Paul Hegarty, great instructor and very engaging man, but this time it's specific to iOS5 and uses the latest version of XCode (4.2).  After I've watched a couple of first lectures I firmly decided to switch from XCode 4.02 to the most recent one (I'd been holding to the old version because of the old lectures, so to be compatible).  It was quite easy to do, because I've advanced only to lecture 4 and did only one assignment.


I then updated XCode and found it to be a very much big improvement over what I had before!  Two most striking features are the Storyboard (and its automatic code generation) and the Automatic Reference Count (it vastly improves the memory management, especially when someone like me has a poor understanding of how memory should be managed).


Following the update, I've completed three lectures of the new course and did the very first assignment (it's also a calculator, but this time RPN).  I've enjoyed coding in the XCode so much that I re-made the calculator a couple more times, which also helped me to get used to the new subtleties of the app and the way it works.


Another bit of a good news is that I've decided to update my system to Lion (eventually), and join Apple Developer Program for iOS and OS X.  I've started the sign up process some days ago, and right now I'm in the middle of making it all work (for some reason I need to fax my confirmation to Apple, and the most interesting part in here is where do I find... a fax-machine!).


There was only one semi-bad event, I had Internet outage during Sunday, so this post came out late, sorry.  However, the good side is that I've had lots of time on my hand to code, code, code!

Sunday
Nov132011

I've Build... a Calculator!

Just as I expected there were more time to study and code after the 10th of November.  So, I went ahead and did one assignment from Stanford CS193 course on iOS programming and coded a calculator.  Now, I do remember coding one calculator in the past, but that was more of remembering the code rather than understanding the code.  This time I was able not only replicate what the instructor was doing, but go one extra step thurther and improve the original concept.

The calculator was supposed to be a usual one, supporting floating numbers and basic set of operations:  addition, subtraction, division, multiplication, and square root extraction.  It was very simplistic in both visual design and structural complexity.  Speaking of structure, though simple it quite well illustrates the Model-View-Controller paradigm, having three distinct classes:  CalculatorBrain (model), CalculatorViewController (controller), and the view which is build via Interface Builder in XCode.  While coding I've realized the boundaries between the three classes, and was even able to implement the extra features in the correct way, choosing the right class to modify!

My additions to the original app were just three buttons:  'AC' to reset everything back to 0, '+/-' to be able to enter negative numbers, and '.' to have the ability to enter floating point numbers.  It didn't take long for me to implement any of these features, but it surely provided a great experience and boosted my interest to continue with the studies.

I'm not posting any screenshots of the calculator here, because it's way too generic and frankly speaking looks ugly to me.  However, it served its purpose very well, and it even posed some design questions I really need to consider for my future apps.

I'm going to have a bit more free time during this week, so there will be more coding, studying, and hopefully great screenshots of my first apps posted here!

Sunday
Oct232011

Coding, Finally!

This week I was reading more about Human Interface Design principles for iOS.  The book provides valuable methodology not only to create visually appealing apps, but the ones that function and behave in a natural manner.  I am only about thirty pages in, but already noted a very good hint on how to determine your target audience, and then focus on it.

I’ve watched a couple of video tutorials and lectures as well.  But my main point of progress was the newly solved problem from Project Euler (which by the way has gone through a pretty nice re-design just a few weeks ago).  The problem itself wasn’t too hard to implement, but it was kind of a problem that provides very enjoyable coding experience.  I’m glad I’ve returned to Project Euler again, it’s a refreshing feeling.

Next week I’m going to continue watching lectures and reading Apple Guidelines.  I also hope to start a very simple Objective-C based project (maybe just a plain ‘Guess the number’ game) just to get into habit of coding in Objective-C.

Sunday
Sep252011

Objective-C Cocoa.  Finally

This week marks one milestone of the year:  I've started last part of my studies, Objective-C coding for iOS and MacOS X.  It began with the Aaron Hillegass classic textbook for students of Objective-C Cocoa Programming.  I made attempts to read the book in the past, but concepts of object-oriented programming and new syntax were too much for me to understand without prior studies.  By now all of that is done, I know Java, C++, and have solid understanding of what are classes, objects, messages, methods, and so on...  

I've read first three chapters of the book and did examples to become familiar with the language, and must say it wasn't hard at all (unlike all the previous times, when I was basically guessing what the words meant).  I understood quite well the logics behind the syntax and it came down to realization, that Objective C is basically C language (even very much like C++), but with some 'add-ons' to make it more flexible and suited for modern coding practices.

Next week I am going to continue studying and practicing Objective-C, and hope to continue my Project Euler problems (still need more time for that).

Sunday
Sep112011

Three Solved Problems

This weekend I've solved 3 of the Project Euler problems, the first one (#19) being the most tricky, and the other two came out right on the first try!

I'm feeling very confident coding in C++, and decided to begin learning Objective-C closely.  I've picked the Apple official study materials on Objective-C programming and started reading the textbook "The Objective-C Programming Language".  I'm also continue watching videos of lectures on Objective-C from Harvard University.

My goal is to start making my own simple apps by the end of October.  At the same time I'll be subscribing as a developer to the Mac OS and iOS development programs.  By November-December I should be able to write and publish more complex apps, and by January I hope to release at least two nicely done apps (in terms of coding and visual design).

There is of course the task of finding artists to contribute to the apps visual style and content, the task of making sound/music for the app (which I plan to do myself), and the task of marketing (which I may want to start researching for by the end of this month).

Next week I'll be watching lectures, and hope to begin coding in Objective-C, learning how to build navigation, menus, graphics, and so on.  The final phase of my project has just started!