Ad

Our DNA is written in Swift
Jump

Author Archives rss

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.

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

Today’s Hero: CHEN Xian’an

I was having a problem in DTCoreText where the multi-byte sequence making up an Emoji would not get properly encoded by DTHTMLWriter. A quick peeking into NSHTMLWriter didn’t bring relief either, Apple is not encoding these characters, but leaves them unencoded.

Read more

Urban Airship Commander 1.1.1

Ah yes, the famous 1.1.1 version of a new app… You know, version 1.0 is always the minimally viable product. Version 1.1 lets you add new stuff that didn’t make it 1.0. And version 1.1.1 then is another layer of polish and tweaks.

Urban Airship Commander is dear to our heart and so it also deserves the benefit of a 1.1.1 version.

Read more

Scotty, We Need More Power!

I remember a long time ago when CPUs still had only a single core and the chip manufacturers where racing for getting the highest Gigahertz. Then some technical limit was reached they shifted their philosophy to increasing the number of CPU cores. The unfortunate side-effect of this approach is that we developers need to adapt our code to make use of these multiple cores or else our CPU-intensive code will find a bottle neck in being only able to max out one core.

Scotty, we need more power!

In a previous article I described how optimizations in genstrings2 (our Open Source replacement for genstrings) led to the re-implementation being upwards of 30 times faster than the original.

The reason of this was mostly grounded in some smart using of multiple GCD queues. In this blog post I shall explore how we can get DTCoreText to also make use of all available CPU cores.

Read more

New Setup Guide for DTCoreText

After several fellow developers reported that they where unable to compile their apps having followed the previous DTCoreText Readme I felt that I needed to create a new Setup Guide. So I did that for the better part of a day, painstakingly verifying each individual step and documenting how the recommended approaches would be.

I used a relatively new feature of appledoc to create Programming Guides which allows to add markdown files that get transformed the same way to HTML as the header comments are.

You can also add images and cross references, which unfortunately seem to have a mind of their own. But I finally found a way how to get it what I wanted it to do and you can see the results online.

iCatalog 3rd Gen Goes Live

Our partner has begun rolling out the latest generation of iCatalog+ apps which marks the third generation of our framework. The 3rd generation will also celebrate the 3rd birthday of our iCatalog.framework. Initial development had begun in Summer 2010 with the first public release occurring in October 2010.

Read more