I'm back from the Holidays. Christmas is over, New Year has just arrived, I still have one month of Vacations left for 2009 but in January, I will be out for one week.
Anyway, I'm not here to talk about my vacation schedule. Let's talk about the upcoming adventures on the lab. PhD Classes have not started yet, in this case, I have looked for alternative activities for my vacations.
I have decided start working with IPhone SDK. Yeah, Apple just got a new fan. I bought myself an IPhone and a Macbook. I have to say that Mac OS X is the best OS I have ever used. It is ridiculous how I could spend so much time on windows. I kept always waiting for the next great windows release. I wish I new MAC before. Of course, the fact that a Macbook in Brazil costs twice as much as a computer of the same configuration and that it is nearly impossible to find good games for MAC have also helped me to stay away from MAC. However, this time it was love at first sight. The system is incredible, pretty much everything that I considered easy to do in Windows it is ridiculously easy to do in MAC.
I have only two complaints that prevent me of using MAC as my primary computer: 1) No Games (I cannot live without them) and 2) Outdated MSN Version. Hopefully, at some point those issues will be addressed and my Windows time will be over. Until them, I keep a small Windows Vista Partition on my Macbook.
Getting back to IPhone SDK. Apple has enhanced their XCode IDE, the Objective C language and added the IPhone simulator to the package in order to allow IPhone development. The main inconvenient to this development is that XCode only works on the top of MAC OS. That is why I was required to buy my Macbook. This IDE will allow you to design, debug and benchmark your application. However, do not expect that you will be able to run your software on your IPhone. Running application on IPhone requires a payed subscription with Apple (Of course that I'm talking about the official procedure, I'm not using any of the jail-break software available on the Internet).
This leads the discussion to the first pain point of the process. IPhone software needs a cipher key in order to be signed and accepted by the IPhone hardware. That is why you need a subscription with Apple. On this subscription, Apple would act as a Certification Authority and would allow you to have a private and public key. With those keys, you'd be able to sign your application and run on IPhone. It should be a simple procedure to get this subscription. However, as usual, everything is more complicated to International people.
I have been waiting for over a month. The Apple website allows you to enroll and pay your subscription on-line. If you are a luck citizen from one of the listed countries, I heard that you could get your subscription in a matter of hours. In may case, I have been waiting a total of 3~4 weeks since my first contact with Apple. I have heard back from them with instructions on how to pay the enrollment fee last Friday (three weeks after the initial contact). I sent to them a fax with my Credit Card information and I'm still waiting for an answer from them if they received the fax. Hopefully I will be able to start posting my application at some time soon.
Objective C is not that bad. Considering that I have used mostly Java over the last several years, getting back to C was a little challenging but not a major problem. The XCode environment is good but it clearly feels outdated when compared to Netbeans or Visual Studio. The upside of the IDE is composed by the several automation and monitoring tools that come on the package. Tool to monitor memory and processor usage and a lot more. I have never seen tools like that before as part of the standard product. The downside is that the UI Builder and XCode are not really the same tools. They are separated tools which are integrated. This means that you need to really understand how they work together in order to write the code properly and see the changes being reflected in both ends. After you get used to it, it works fine. However, you will curse Apple several times during your learning period.
IPhone simulator is the bright side of the IDE. It is almost a fully functional IPhone running on your Macbook. It makes very easy to test and debug the applications. Almost all features work, the only feature that I really missed was the camera. I could not test the camera application at all because it does not work on the simulator. However, you can still get images from the Photo folder. It works just fine.
Well, I think that this is enough information for now. I will keep you posted as I evolve my work on the IPhone. For now, I already have a puzzle application working. As soon as Apple gets back to me I will submit it to iTunes Store. Make sure you look for the "iMess" application next time you go to App Store.