Our DNA is written in Objective-C

Forbidden Fruits

A short while after the WWDC 2012 keynote, when Apple made the iOS 6 BETA publicly available, somebody tweeted in German that there are probably already more devices running iOS 6 than Android 4. I translated the tweet to English and tweeted it for everybody’s amusement.

According to sources the iOS 6 BETA is already more widely distributed than Android 4.0

I also added the “According to sources” to make fun of pundits who always add something like this to underline the authoritativeness of the rumors they pick out of thin air. Reactions ranged from calling BS over joy to suspension of disbelief with most tweeps getting that this is one of these things where you cannot really know but it would be funny if it were true, or maybe it really is?

I read it on the Internet and so it must be so …

Read more

Radar: ARC releases UIColor prematurely

There’s a gotcha/bug if you’re using -[UIColor CGColor] to get a CGColorRef for use with CoreGraphics. I think several people have already documented this on their blogs, but I was having the same issue in my DTCalendarView when running it on device. The same code worked before enabling ARC, but with ARC enabled it there is a difference whether its running on device or simulator.

On Simulator all is fine. On device however you get a EXC_BAD_ACCESS because the ARC release the UIColor way before the end of the current scope. There are several possible workarounds but it is still unintuitive that previously working code ceases working with ARC.

We were told to also file bug reports for unexpected behaviors or something that is counter intuitive, so here you go… Radar #11717864 and OpenRadar. Here’s the sample project.

Update: Yes, I know that you could call this “works as designed”. But the point here is that it is non-obvious and causes previously working code to break. Even the gurus at the Big Nerd Ranch stumbled over this one and filed is filed. In the least I would expect an LLVM compiler warning for this to be added.

Read more

Radar: App- and Folder-specific Passcode Locks

I’m on fire!

Never before have I filed so many Radars in a single day. This one aims to remove the need for components like my DTPinLockController which I used in iWoman.

This is a Feature Request for getting passcode locks on a per app and per folder basis. So that you can hand your unlocked device to your kids for playing Games but still apps being secure that they have no business in starting. This would passcode-enable all apps that don’t have custom solutions and also make all those custom-passcode-viewcontrollers unnecessary.

If there where an API for inquiring about passcode status then we could keep the user logged in just like the Find my Friends app is doing it. This requires entering the password only if you don’t have a passcode lock set.

I filed this as Radar #11716971 and also posted it to OpenRadars. Please dupe it if you think that this is a useful feature for our favorite platform.

Read more

Radar: WWDC videos should be organized as iTunes U courses

The third kind of Radars I plan to file more are for new features. While the Apple bug reporter is mostly made for reporting and tracking bugs this is also the only way to formally file a feature request. This one relates to WWDC videos and iTunes U.

I am suggesting here to organize the WWDC videos similar to the Stanford CS193P course where you have all the videos and materials aggregated together and can keep track of your progress (“gotta watch ’em all”) independently of whether you have downloaded a video or not.

This was filed as Radar #11716509 and also posted on OpenRadar.

Read more

Radar: Block-based action handlers for UIActionSheet and UIAlertView

The second type of Radar I vowed to be filing more of following WWDC 2012 are so called “Enhancement Requests”. I have yet to see any of my previously filed requests be implemented in iOS, but it never hurts. One Apple representative once told me that “we’ll implement it if enough people want it”.

I recently demonstrated in a tutorial how to add block-support to UIActionSheet. Now here’s the formal feature request suggesting to Apple to implement this in the official SDK.

The following is filed as Radar #11695432 and also added to OpenRadar.

Read more

Radar: View frame inconsistency using presentViewController + wantsFullScreenLayout Y/N

One of the takeaways from WWDC should always be a renewed promise to yourself and Apple engineers: “File better Radars”. With some time at my hands jettting back over the Atlantic Ocean, I prepared a demo project and the text for my latest filing.

Read more

Public Transit in iOS 6

By now it is public knowledge that there will be no in-house replacement for routing via public means of transport in iOS 6. Indeed if you hold an iOS 6 phone (that somebody maybe has left in a bar) and you try to plan a route from point A to point B you find that you can drive there quite nicely with turn-by-turn in 3D. You can walk there. Or you can get forwarded to a – currently empty – section that supposedly will show a list of transit apps to take on the routing.

I have some personal experience with that to share which might also underline why this move by Apple is actually the only reasonable one.

Read more

WWDC 2012 – Day 5 Impressions

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.

Read more

WWDC 2012 – Day 4 Impressions

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.

Read more

WWDC 2012 – Day 3 Impressions

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.

Read more