Showing posts with label IPhone SDK Apple Macbook. Show all posts
Showing posts with label IPhone SDK Apple Macbook. Show all posts

Sunday, June 27, 2010

My take on iOS 4, WWDC 2010 and the future

It has been a while now since WWDC 2010. I was there live this time; it was one of the greatest experiences of my life. I highly recommend that you attend next year if you can. Well, one thing that I have learned over the last couple years working on the Apple world is that everyone is entitled to have opinions, make predictions and start rumours about the future of the platform. As usual, Apple will never have an official statement up to whatever is said gets launched during the "one more thing" speech of Steve Jobs and whatever I'm writing here, I'm not endorsed in anyway by Apple.

Anyway, after attending about five sessions per day, what really caught my attention is the push from Apple to the multi-tasking world. Of course that five in each five Apple blogs have already told you everything that you ever wanted (or not) to know about iOS 4 multitasking, but I think that I have a different approach here. I want to highlight, not the multitasking on the user side ( what everyone is talking about ) but I want to mention the multitasking on the App development side.

Nope, I'm not going all technical here. In general, Apple has introduced Grand Central Dispatch (GCD) for developer on iOS 4. This is a framework that enable developers to build Apps that have internal components running in parallel. Users will probably never even notice this (except that Apps would tend to be more responsive...); however, multithreaded code for developers could make a huge difference. But, we still have a single A4 processor in iPhone 4 and also in iPad; what leads me to my "futurology" session.

If you think that running code in parallel on a single processor makes no sense, well, you are right. In general, Apps will have the capacity of running in parallel but they will still compete for a single processor. The main advantage for iOS 4 on the current devices is that Apps using GCD will no longer hung or freeze on their hands. Developers will be able to put there blocking codes (load an image from the internet, open a dropbox session, etc) into a separated process what will not ever freeze your UI again. However, this will not add any performance improvements.

Going beyond iOS4, things start looking much better. My prediction after WWDC is that at some time soon we will see multi-core A4(x) processors. This would make a lot of sense. Apple traditionally introduces new technologies in phases. Assuming that developers will start using GDC to improvement their user experience now, Apple will have by the end of this year tons of Apps that will be enabled for true multitasking. Apple would be ready to "change everything again". The next generation of multi-core iPads would not even need to wait up to new Apps get developed. Virtually, every single App that uses GCD would be ready for multitasking at day one. Apple will be able to have the fastest tablet in place in no time.

Regarding time-frames, it would be just a matter of wrapping-up the offers. Apple could take the approach of launching an iPad/iPhone 4 "G" in 2011 ( I assume that by then the 4G cellular networks will be more common in US), this would keep the sales going up by itself because people would really feel the difference of the network speed; may make no sense introducing a multi-core A4 at that moment because it would add to the cost of the 4G components and it could also be a waste of a silver bullet.

As such, I'd see a multi-core iPad/iPhone being introduced to the market on WWDC 2012. Cost would have gone down, 4G will be available to most people, Apple will be ready to launch iPhone 4Gs ( s for speed, does this sound familiar? ).
Well, Let's keep following the next steps and see what predictions come true. The only certain here is that whatever path Apple takes, iOS4 is just the top of the iceberg.

- Luciano

Monday, January 12, 2009

2009 is Here !! Let's get rich with IPhone !!

Hi Folks

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.

-Luciano