BuySellAds.com

My book Barcodes with iOS 7 is nearing completion. Buy it now to get early access!
Our DNA is written in Objective-C
Jump

GitHub Fork, Fix, Pull Request

In this post I will to demonstrate how you can contribute to an Open Source project hosted on GitHub. I previously blogged about how you can make and apply patches, which is certainly one way. But on GitHub there is an even cooler method, one that is also less work on the project maintainer.

Read more

iPhone User Interface Cookbook

Bildschirmfoto 2012-01-26 um 07.26.39

A month ago I was contacted by PacktPub with a “Review Request” and was provided with a ePub copy of the book for this exact purpose. PacktPub – which I had never heard of before – apparently is trying to get traction on the iOS developer market with a dozen books on the subject matter. But this pales in comparison to the hundreds of books they published for non-iOS ecosystems (Microsoft, Web, Java, etc.)

Is it just me or does it seem like more and more iOS developer are hoping to supplement their living from getting book royalties?

At the end of my procrastination I sat down and forced myself to read the first half of the book, taking notes to give this book a fair and balanced review. A word of caution: this will be a tragic comedy of epic proportions.

In Austria we have a saying: “Nothing is useless, it can always serve as a bad example”. It is my hope that this bad example serves to improve the overall quality of literature on our favorite subject matter.

Read more

DTCoreText – New Formula!

I chose this article’s title to try and grab your attention. Well, the product is still the same and does the same. The only difference is one that is under the hood. And as such it is your job – should you choose to accept it – to marvel at the benefits that the new old parsing engine brings us.

Read more

Earnings Call

Here are my mental notes for today’s earnings call…

Read more

Taming HTML Parsing with libxml (2)

The parsing of HTML necessary for my DTCoreText open source project is done entirely with the sophisticated use of NSScanner. But it has been long on my list to rewrite all of this parsing with a the industry standard libxml2 which comes preinstalled on all iOS devices. Not only is this potentially much faster in dealing with large chunks of HTML. It probably is also more intelligent in correcting structural errors of the HTML code you throw at it.

In part 1 of this series I showed you how to add the libxml2 library to your project and explained the basic concepts of using libxml2 for parsing any odd HTML snippet into a DOM. In this here part 2 we will create an Objective-C based wrapper around libml2 so that we can use it just like NSXMLParser, only for HTML.

Read more

Helping Xcode Find Library Headers

In my previous article about Sub-Projects in Xcode I showed you how you can have an Xcode project as a dependency. The advantage of this is that you can update your library from within the same project and debug into the sub-project’s code.

One thing that was not immediately obvious was how you deal with the problem that Xcode cannot find your sub-project’s library headers. Hence this writeup.

Read more

Linguan 1.0.3

Besides fixing several bugs reported by users this release focusses on implementing a new custom-built super-charged strings scanner.

Changes

  • FIXED: missing strings file no longer aborts import
  • FIXED: added – Button for deleting tokens
  • FIXED: deletion of wrong row
  • FIXED: over-escaping of \ on writing strings files
  • FIXED: wrong token name updated on enter key
  • FIXED: search filter not reset on adding a new token
  • FIXED: Previous/Next buttons in wizard cease to function
  • NEW: replaced genstrings with high-speed custom implementation (>20x speed improvement)
  • NEW: support custom localization macro prefix

This new version does no longer support 32-bit because the new strings scanner was implemented using ARC. We hope that this does not inconvenience any of our existing uses. But then again, serious developers are on a 64 bit machine anyway since Snow Leopard…

The new version has been submitted to Apple today.

C-Code outperforms NSScanner

Over the past week I’ve been working on DTLocalizableStringScanner or in short genstrings2. The original genstrings dates back to the NeXtStep days. You know how it is “never change a winning team” BUT “the good is the enemy of the great”, because if something kind of works, why change it?

Besides of the other problems I’ve alluded to in my previous article genstrings is very slow. Internally it is written in Objective-C as you can tell from the occasional stack trace when it crashes again. But it was created in a time when Macs did only have single CPU cores and when we did not have the awesome LLVM with ARC, GCD and multi-threading.

Read more

LEGO: Life of George

IMG_0381

LEGO’s Life of George game brings together 5 worlds like nothing else before:

  • 8-Bit Design
  • iPhone
  • LEGO bricks
  • manual interaction, a “touch interface” if you will
  • computer vision for gamification

Let’s have a quick look at this fun pastime that is all the rage.

Read more

genstrings2

Actually I am on vacation, but I couldn’t help myself using the breather to work on a little hobby project. This I shall reveal to you today!

If you localize your apps (iOS or Mac regardless) you are probably used to working with genstrings. Probably painfully working, which is why we built the Mac app Linguan which remote-controls genstrings and merges the results with your previously existing tokens.

But genstrings has several big problems.

Read more