The last day at WWDC is almost only a half one since there is no structured program after the lunch-time talk. I attended a killer-design-talk that explained some of the design processes that Apple went through when designing the revolutionary interface for iPhoto for iOS. That was awe-inspiring because gave us many pointers on how to approach designing ups more like they do at Apple.
By the forth day I found a certain sorrow creep into my consciousness. Only one more day to go after this one I kept thinking. And even more I am beating up myself not having heeded my own advice: prepare better for the labs. There are a couple of things that I found are beneficial when going to the labs, so I want to write them up here so that I might keep them in mind.
By day 3 I think I can say that I’m getting into the flow of things at WWDC. That is mainly achieved by not queueing for overrun talks. Or by finding better uses for your time, as I keep preaching, by finding Apple engineers to talk to.
Though I am also mildly disappointed, but not in the program or people, but in myself. I did not heed my own advice of preparing some code to discuss with the Apple guys. Even my partner from Arizona did that, although programming is not his bread and butter. I admit to being proud of this.
I had to clone some source code from my repository to have something to base my questions on. So the rule “bring code” can be bent ever so slightly. It also counts as “bringing” if your code resides in an Open Source repo on GitHub or on your private SCM.
I saw a certain category of tweets appear since monday that all were following the same pattern. They were about what the user thought the greatest new feature in iOS 6 was for him. So I did a search and found that there are many different signs of whimsy and delight.
On the second day you have probably acclimated to the flow of things. Or rather, the traffic jamming of things. Because queue you will, queue you must. Wherever you go there will be a queue.
You’ve probably seen the Keynote, by now it is available as video for you to enjoy. One thing that I noticed quite a bit was that Apple apparently has expanded their assimilation process. Resistance is futile!
I am extremely confident that Apple will introduce the ability to set blocks as actions for UIActionSheet (and UIAlertView) in iOS 6. Still, for exercise and because I want to support iOS 5 until iOS 6 is actually released, I set out to implement that.
When I tweeted about it, several people pointed me to existing implementations:
- Gustavo Ambrozio’s BlockAlertsAnd-ActionSheets
- Zachary Waldowski’s BlocksKit
- Yuri Kotov’s ADVAlertView-Blocks
- Mugunth Kumar’s UIKitCategoryExtensions
So I could have used one of these. BUT I like to understand the code I’m using and also I’m still learning, so better to solve the problem myself and talk about it. Also there are some implementation choices that I don’t agree with on these projects.
There are multiple ways of maneuvering around San Francisco, whether you are attending WWDC or just in town to take in the air. Here’s a summary of some things that were not immediately obvious to me.
Updated: added info on Clipper.
My fingers have started hurting from keeping them crossed for the past week. We submitted the Linguan 1.1 update for review just in time before the Sandboxing deadline hit on June 1st. Linguan has two problems with sandboxing:
- Currently the user picks an xcodeproj and Linguan processes the files linked from that. With sandboxing this is no longer possible, we have to modify it such that the user would pick a project folder instead through powerbox to gain access to all contained files.
- The new version is remote-controlling the ibtool command line utility contained in Xcode. I’ve not done any research but it is highly likely that sandboxing will not allow this either.
So you can understand our situation? Either release it now, or never. Well may be not really never, but it will take a lot of time to reverse-engineer ibtool so that we can include the functionality directly in the app binary.