BuySellAds.com

Until Dec 3rd, 44% off all Manning books, including Barcodes with iOS! Promo code: mobicftw
Our DNA is written in Objective-C
Jump

Localization Unit Test

It happens to the best: you add new features to an app localized in several languages. You are not the lazy type that names the NSLocalizedString key’s the same as the English-language strings. Instead you name the keys semantically, like DOWNLOAD_ALERT_MSG.

Then when it comes to shipping you send the client a note that there are some new strings and assume that he will be able to find out which are new and need to be translated. Which he would if he was using a tool like Linguan. Which he is not, because you might have forgotten to recommend it to him, or if he’s extremely unlucky then he’s a Windows user.

Read more

Radar: Update Ruby shipped with OS X

Using QuickRadar decreased my barrier of pain for filing Radars to a level that I find myself also filing way more benign ones like …

Filed as rdar://13450321 and on Open Radar. Please dupe it if you agree.

Read more

Linguan 1.1.3

This is a very minor bugfix release for Linguan to fix one issue and possibly address a second one.

Changes

  • Fixed Problem with Filter Scope
  • Addressed an Issue that might prevent some users from closing the Preferences Windows

The second problem was reported by two users but so far we have been unable to reproduce it. If you are a developer and too find that you cannot close the preferences window we need your help! Please e-mail us so that we can arrange for inspecting the problem on your machine.

Update March 28: Approved after 10 days.

Podcast #43 – “Week of Tools”

David Mendels and Oliver Drobnik follow up on previous weeks topic “Women in Tech” and then discuss great new tools for developers.

Play

Read more

Apple’s ASN.1 OID Names

For the DTCertificateViewer component that I am presently working on I needed to have a list of all known OIDs. Those are the tags (Object Identifiers) that identify the meaning of information encoded in CER/DER/ASN.1 files.

For example OID 2.5.4.6 means “Country Name”. I was able to glean a few dozen such identifiers from looking at a variety of certificates, but I couldn’t find a complete – and localized – list of those names anywhere online. Also Apple has registered a boatload of their own OIDs like “1.2.840.113635.100.6.1.2” = “Apple Developer Certificate (Development)”.

Since I’m building this component for use on iOS and Mac it became clear that I needed to go straight to the horse’s mouth to get my strings. In this article I am going to explain how I got my list of OIDs, in all 30 languages that OS X is localized in.

Read more

Radar: Provide Warnings if App Might Crash on Devices with Previous iOS Version

On more than one occasion I’ve been stumped by some new functionality from a newer iOS version crashing when used on an older iOS device. You know, the kind of problem that you’re supposed to catch yourself with a NSStringFromClass or respondsToSelector.

The recently released Deploymate app scans your Xcode projects for such problems and flags them. This proves that such an analysis is possible and can be implemented. The developer of Deploymate confided that he hesitated to release for a long while since he feared that Apple might put exactly this functionality into Xcode. But they never did, so he created the app.

This Radar is my documented suggestion to Apple to finally add such functionality into Xcode. Worst case they should acquire the technology employed by Deploymate and add that. But I am quite certain that LLVM’s analysis capabilities should be able to put to this use as well.

Filed as rdar://13436964 and on OpenRadar.

Read more

Podcast #42 – “Meet my Friend Dave”

Trying out a new format, a friendly chat with David Mendels a real professor and iOS developer. We’re talking from many topics from nano technology to how to get more girls into science and tech.

Play

Read more

Preview: DTCertificateViewer

It’s gotten very late, already 8 pm. But let me still show you a few screen shots of my upcoming DTCertificateViewer component. You can already pre-order for 50% off the final retail price.

Read more

Auto Doc

With Appledoc + Jenkins it is fabulously easy to have your documentation be automatically generated and uploaded to a documentation site. Let me give you a quick guided tour about the individual parts of our setup. The final result you can admire on our new Cocoanetics Documentation Site.

Read more

Dynamic Unit Test Cases

You probably now how to add static test cases to a SenTestingKit-based unit test. You create a subclass of SenTestCase and add instance methods with their names prefixed with “test”.

When the unit test runs it builds the test classes and then introspects each one to dynamically find all such named instance methods. Those are then executed one after the other.

Usually you get by with this technique but there might be scenarios where you would want to be able to dynamically add test methods based on some external information, like a property list. Let me show you how.

Read more