More iPhone Cool Projects Published June 2010!

•October 31, 2010 • Leave a Comment

More iPhone Cool ProjectsI’ve been so busy that I haven’t had time to post about the publication of More iPhone Cool Projects by Apress this past June. My fellow authors and I delve into a number of topics that should be of interest to many iOS developers. My chapter was based on 1) the talks I gave in 2009 on concurrency and my belief (at the time) that Grand Central Dispatch and Blocks were coming to iOS and 2) how to position iOS applications to take advantage of GCD and blocks by using operation objects and queues. Fortunately, GCD and Blocks were added to iOS 4.0!

Other chapters covered a number of other topics. Claus Hofele wrote about importing 3D art assets into your game; Ben Kazez wrote about using external data providers in FlightTrack; Saul Mora, Jr. wrote about unit testing; Leon Palm wrote about face recognition with OpenCV; Scott Penberthy wrote about OpenGL fonts; Ben Britten Smith wrote about developing games with Unity; Chuck Smith wrote about Cocos2d another popular gaming framework; David Smith wrote about AVAudioPlayer; and Joost van de Wijgerd and Arne de Viries wrote about using push notifications in eBuddy.

The eBook version can be purchased at a discount from Apress using the discount code IPHONEDEVELOPERJOURNALDZPDD. It’s a 50% discount off the eBook price which is good until January 30, 2011. Of course the book is available at all the popular online bookstores Borders, Barnes and Noble, and Amazon.


WWDC June 7-11, 2010

•April 28, 2010 • Leave a Comment

Wouldn’t you know it — a few hours after I predict that Apple will announce WWDC next week Apple proves me wrong and announces this morning that WWDC will take place June 7 – 11! I wasn’t expecting it to be until June 28-July 2 based on estimates on the web. The dates are right in line with last year’s WWDC though but it seems early to me since the iPhone OS 4.0 Beta was just released on April 8. That leaves just about two months for the beta before it ships. Damn those Apple engineers are good. Hope to see you there!

Pre-Ordered iPad 3G’s Being Prepared For Shipment!

•April 28, 2010 • 1 Comment

Well back on January 27th I was definitely wrong about iPhone OS 4.0 appearing on the iPhone Developers Connection to coincide with the Apple Media Event. But since then iPhone OS 4.0 has been announced and has been available as a beta covered under an NDA. Enough said about that for now! So the first of two current hot questions are when will WWDC 2010 be announced? My guess is that it will be announced during the first week of May and sell out in record time. The second hot question is when will customers who pre-ordered an iPad 3G receive their iPads? There has been some confusion about when customers who pre-ordered an iPad 3G would receive their iPads. I mean “Ships Late April” could mean a few things. Does it mean that it will ship in late April so that customers will receive them after the end of April? Or does it mean that it will ship in late April so that customers who pre-ordered will receive it on April 30 on the same day that the iPad 3G will be available in Apple Stores (albeit in very limited supply I would imagine)? I even asked Apple Store employees about that and one employee said that it would ship on the same day that it is available in the Apple Store. That would mean that it would not arrive until after April 30. So In recent days I have been checking my account at the Apple Store to see if the iPad 3G I had ordered when Apple first started to accept pre-orders for the iPad was in the process of being prepared for shipment. Well I am glad to say that my order is being prepared for shipment and by my estimate I should receive it sometime on Friday April 30! So for all of those who pre-ordered an iPad 3G check your accounts!

January 27, 2010 Apple Media Event

•January 27, 2010 • Leave a Comment

You know there are exciting changes when the iPhone Developers Connection is unavailable! iPhone OS 4.0 here we go! Whooot!

Apple iPhone Developer Connection unavailable

iPhone Tech Talk World Tour: New York December 1, 2009

•November 10, 2009 • Leave a Comment

I just received email notification this morning that my registration request for the iPhone Tech Talk World Tour in New York on December 1 was accepted! I am glad to have been accepted especially since face time with Apple engineers is always invaluable. I was lucky enough to attend the first iPhone Tech Talk: Safari on iPhone in October of 2007 in Boston which of course was pre-SDK. I did not learn about the iPhone Tech Talk World Tour in 2008 early enough to get in unfortunately. This year I received confirmation that Apple had received my registration request 18 minutes after I received the initial email from Apple notifying me of the event. So I’m looking forward to this event and hope to see you there!

Speaking at NYC iPhone Software Developers MeetUp group on October 28

•October 25, 2009 • 1 Comment

I will be speaking at this month’s meeting of the New York City iPhone Software Developers Meetup group on October 28. I will be speaking on “Concurrency Using Operation Objects and Blocks on the iPhone”. Hope to see you there!

Concurrency using NSOperationQueue, NSOperation, and NSInvocationOperation on iPhone OS

•October 10, 2009 • Leave a Comment

Some of the new technologies that most impressed me after attending WWDC 2009 were Grand Central Dispatch (GCD), OpenCL and Blocks. For developers needing to make their applications more performant through concurrency GCD allows developers to look at their application in terms of work units or blocks and how that work might be achieved through queues. It isn’t too far a leap to wonder whether these technologies might be coming to the iPhone in the future. And if they are coming to iPhone OS how can iPhone developers start to take advantage of those technologies now? In June when I had to submit a topic for my talk at 360iDev Denver I thought that this would be good to talk about since operation objects and queues were introduced in Leopard and are available on the iPhone. Using the operation objects NSOperationQueue, NSOperation, and NSInvocationOperation are the easiest way to start learning about Grand Central Dispatch. And using operation objects and queues may allow iPhone applications to take advantage of these technologies and multiple cores when they appear on the iPhone. At the very least it allows concurrency to be achieved in current iPhone applications through a higher level of abstraction than Coca threads. Taking into consideration Apple’s purchase of the chip design firm P.A. Semi in 2008, want ads for OpenCL engineers from Imagination Technologies, the availability of an implementation of blocks for iPhone OS (PLBlocks by Landon Fuller), and ARM’s announcement of the Cortex-A9 dual core chip in mid-September my prediction is that these technologies will appear first in the rumored iTablet device coming in early 2010 followed by a dual core iPhone in mid 2010. Time will tell and only Apple knows.

My presentation Using Concurrency To Improve Responsiveness of iPhone Applications at 360iDev Denver focused on operation objects. During the course of developing the demos for my talk I discovered bugs in the documentation. First, the class reference for NSOperationQueue states that the KVO-compliant properties include operationCount and name. They do not. After trying to determine if it was something I was doing wrong in my application I looked at the header file for NSOperation on iPhone OS 3.0 and 3.1 and on Mac OS X 10.6.1 and it was apparent that it was never implemented for iPhone OS 3.0 and 3.1. It had been discussed at WWDC as an optimization for Snow Leopard but the documentation led me to believe that it was available on the iPhone as well. I filed an enhancement request (radar #7293124) and also provided feedback to correct the documentation. The second issue with the documentation is that it is very easy to become confused when trying to understand Concurrent Versus Non-Concurrent Operations. The bottom line is that nonconcurrent operations (where the KVO property isConcurrent returns NO) execute asynchronously since the operation queue on iPhone OS creates a separate thread on which to run the operation. Concurrent operations (where the KVO property isConcurrent returns YES) on the other hand execute on the current thread because you have determined how you want to handle concurrency in your NSOperation subclass. Note that on Snow Leopard operation queues use GCD and both concurrent and nonconcurrent operations are launched from a separate thread. I’ll upload the demo code that are a part of the presentation in a few days. Have fun with operation objects!