Mar 29, 2012
There are some scenarios where NSString acts as a class cluster internally to optimize handling of certain strings. One such case bit me today, and so I want to tell you about it.
Class clusters work such that you think you are always dealing with just instances of NSString, but in reality the runtime goes and chooses different subclasses for certain tasks. You might have already seen some effects of this behavior when debugging and the debugger actually showing you something other than NSString as the type of a variable.
Mar 28, 2012
Always lovely to get Feedback for my work. Here’s a nice e-mail I got from Mustapha Ben Lechhab, a freelancer, who is successfully using DTCoreText to display arabic rich text and an embedded audio player.
DTCoreText lets you easily render HTML text (via NSAttributedString) in your apps without having to use UIWebView. The cool feature this guy used was that you can easily embed your own custom UIViews in the text, for playing an audio or video file.
In his own words …
Mar 28, 2012
I thought I was smart when refactoring some code in DTAboutViewController to use block-based animations. Turns out that I had not considered backwards compatibility for 3.x when doing that simple change. This caused some unlucky users (still on iOS 3.1.3) to get the update pushed via iTunes, but then finding themselves unable to launch the app.
I do plan to cease supporting 3.x sooner or later, but not like this. The proper way is to raise the deployment target when implementing features that require 4.x. This way people unwilling (or unable) to update their devices just won’t be receiving those new updates but will still be able to continue using the old version.
- Fixed: Incompatibility with 3.x causes app to crash
- Added: Alert when user tries to send support e-mail but has no account configured
- Fixed: Tapping on today button in cycle view would show the wrong day in cycle view.
- Fixed: Tapping on the calendar button in Wheel View would lead to the wrong day in calendar view (in some time zones)
The update has been submitted to Apple and should be available soon.
Update April 4th: … the update is now available on the App Store.
Mar 24, 2012
Episode #30, recorded Saturday March 24th, 2012. “NSConferencing”
First time visit to NSConference. Apple implements design that Steve Jobs called shit 5 years ago. And they sell more than 3 Million new iPads in 3 days.
Podcast: Download (20.7MB)
Mar 24, 2012
I attended my first NSConference this year after grabbing the first ticket that became available to people on the waiting list. The conference had sold out in record time before I was able to make a decision. So I jumped at the chance when they gave me a second chance.
NSConference is held annually in Wokefield Park in the middle of a golf course. Scotty, the conference host, informed us that the reason for this is simply to force the 200 attendees to network amongst each other if only because you cannot easily drive to town.
After the conference we were asked to provide feedback via e-mail, but I am a firm believer doing so publicly because this enables the valued reader to form his own opinion and whether he should attend NSConference 2013.
Mar 17, 2012
Episode 29, recorded Saturday, March 17th, 2012.
New iPad finally in people’s hands, exciting updates for our favorite compiler and some problems arise for developers making magazine/catalog-style apps.
Podcast: Download (25.0MB)
Mar 16, 2012
From the statements made at the iPad !!! launch event we assumed that the A5X must be a beast, shattering all previous benchmarks made. There are various kinds of measurements that you can take to compare the new iPad !!! to its predecessors. For one the raw CPU power seems mostly unchanged as judged by looking at Geekbench which measures Integer, Floating Point, Memory and Stream performance.
Then there is the raw graphics performance which can be gauged with the GLBenchmark, there you see the iPad !!! shine, or at least sparkle a bit. Apple apparently optimized the hell out of that, people expect at least the same fluid frame rates on Retina when playing games as the iPad 2 had.
But when are you actually interested in raw computing power or raw OpenGL graphics power? What we are more interested in is how fast the iPad can take a file on disk, decompress it and display it on screen. We previously did a comprehensive Image Decompression Benchmark to compare all iOS devices in this regard. We now have the numbers for the new iPad, so let’s compare!
Mar 15, 2012
When Marco Armant talked about licensing custom fonts for use in apps I did a bit of research myself because I wanted to know the modalities available for us iOS developers.
There are many businesses based on licensing fonts for use on desktop machines as well as web apps. But just to get a general feeling about this I semi-randomly picked MyFonts.com. They also have a fabulous app called What The Font? on the app store that lets you find fonts by snapping a picture of some text.
The font business has not really cared much about apps so far, but now with a Retina display in the size of an iPad this becomes a viable target market for them, as developers are trying to get an unique look by offering great fonts for apps that you read something with.
Mar 15, 2012
I did a quick fix for Linguan after several users complained about the strict slash-escaping that we had introduced in 1.0.4.
Linguan un-escapes all texts it reads from strings files so that they can be displayed correctly. You don’t want to have to deal with backslashes in the editor. Now on writing I had thought it to be a good idea to also escape everything, including question marks, backslashes and single quotes. It was a bad idea to do that because this unduely changes the tokens and translations.
Translators (the sad kind without Linguan) would be confused by having to deal with lots of \’ in the text. And there where some reports of the localized string loading functions not being able to find the key. Not always, but this is clearly not what we wanted.
This update relaxes the escaping on writing to the extent that only double quotes and invisible characters are now being escaped.