While searching for a fix / workaround for this MKMapView bug, I found a couple of useful pieces of code, that allow you to directly manipulate the zoom level of a MKMapView:
Here's the code from the above links, combined into a handy MKMapView category:
If you're debugging / testing an app, and want to make sure your localised strings don't mess up your UI, this is a really handy way of doing so, without having to change the language of your iOS device.
Related: Tethras is a wonderful service for having your app strings translated.
A bunch of cool stuff I discovered over the past year.
I've been reading and listening to a lot of speculation recently regarding Apple's latest acquisitions — PrimeSense and Topsy. While it's fun to speculate on pie-in-the-sky applications of these technologies in potential future products, I feel like the real reasons for Apple purchasing these companies are probably more grounded than expected.
Steve Breen tweets:
Tracing all NSNotificationCenter traffic on iOS. Very cool! #iosdev https://t.co/hfV8zyEm1h
— Steve Breen (@steve_breen) October 16,2013
The Open Handset Alliance is a group of companies committed toAndroid—Google's Android—and members are contractually prohibited frombuilding non-Google approved devices. That's right, joining the OHArequires a company to sign its life away and promise to not build adevice that runs a competing Android fork.
How is that "open" in any sense of the word?
You can't really blame Google for wanting to lock down Android, now that it has the majority share of the smartphone market, but those terms seem quite onerous.
Google, as a company, have changed a lot from the Google we knew and loved back in the early-to-mid 2000s. If Android was released by the Google of today, I highly doubt it would be open-source.
A good summary of why startups continue to launch iOS-first and not Android. It's quite focused on VC-backed companies, but the following quote sums it up for almost any kind of app-based business:
Building and releasing on Android costs 2-3x more than iOS. This isdue to a multitude of reasons: less sophisticated tools, generallymore cumbersome APIs, fewer exposed advanced features, enormous QAissues brought on by fragmentation, etc. The rough rule of thumb isfor every iOS engineer you actually need two Android engineers—ortwice the development time.
…Starbucks designed round tables in their stores. They werestrategically created "in an effort to protect self-esteem for thosecoffee drinkers flying solo". They were not round because thearchitect felt it looked better that way, they were not round becausethey were cheaper, they were round because as the article concludes"there are no empty seats at a round table" …
I love this sort of insight into how physical design can affect us on an emotional level.
Xcode 5 seems to remove all iOS SDKs, except for iOS 7. If you need to build an app for iOS 6 (and retain the iOS 6 UI & behaviour), then you'll need to re-download the iOS 6.1 SDK and symlink it into Xcode's SDK directory:
sudo ln -s iPhoneOS6.1.sdk/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
There are a couple of solutions in the linked Stack Overflow topic. This answer has a download link to the iOS 6.1 SDK, without having to re-download Xcode 4.
Is it slower to use
_someOtherViewController? Yeah, by about 8 nanoseconds.
Really interesting analysis from the guys at Big Nerd Ranch.