If you like my tutorials, you will love my book . It is chockful of advanced programming techniques and the only comprehensive barcode reference for serious iOS developers.
Our DNA is written in Objective-C

Linguan 1.0.2

The second hot fix pack for Linguan 1.0 fixes a couple more issues that some of our (mostly) happy customers reported.


  • Fixed: Translations will no longer get trimmed
  • Fixed: Problem opening projects with absolute file paths
  • Fixed: Table did not update on deletion of token
  • Changed: Extended duration of “no new tokens found” HUD
  • Changed: Enter key now opens selected recent project in welcome screen

If you haven’t done so please post your feedback on iTunes. To be able to add additional features to Linguan we need to have sufficient sales. And for that we need your positive reviews, high rating and that you tell other developers about Linguan.

Today is the best day for them to also get a copy because: As a Thank You for your interest in our app we reduced the sale price by 50% until the new version gets approval by Apple.

Coding Style

Dany asked:

I’m looking at your (nice) project NSAttributedString-Additions-for-HTML and I have some questions about your convention of writing code.
I really hope that you can reply to me, and maybe can be an idea for a future blog post (on naming conventions, and conventions in general for objective-c).

I adopted several styles I read about in the coding style guides by Google and Marcus Zarra, though I have to admit I only skimmed through these and picket a couple of things that made sense.

Though it is good practice to reflect on your style every once in a while to see if it still serves the purpose of making your code easier to maintain and read.

Read more

Sub-Projects in Xcode

A very interesting yet very undocumented functionality of Xcode is that you can have sub-projects in your project tree. You can add an xcodeproj to your project and link to this project’s output.

This is exceptionally useful if you are developing some functionality in a contained project and now want to access this polished functionality from another project. Like for example you want to add to your app the capability of accepting HTML code copied from Safari and use my DTWebArchive classes for that. You could either copy all classes to your project, build two libraries (one for Simulator and one for Device, or lipo these two together), or build a static universal framework.

Or there is an option number 4 which I want to tell you about in this post. This option does neither copy source code nor does it involve building something upfront.

Read more

Amazing Apple-like Documentation

I know I know, Documentation is a bad bad word, especially for us creative people. The true creativity is in writing code, not in writing comments, isn’t it?

Well, regardless, you might find yourself in the situation that you want other people to reuse your code. Or better yet, a different self of you in a year should be able to understand your line of reasoning of today. If you do programming for a longer time you will pass the phase of being shocked at how bad your code was and then get into the phase of having no idea what you where thinking. So a liberal sprinkling of comments can help you get up to speed on your old code.

I invented a technique of chewing on a portion of a programming puzzle where you comment almost every line of code as if you were to explain to somebody the steps in your ingenious approach. Maybe somebody else coined a term for this, for me it helps me sort my thoughts. And probably will do the same a year or ten from now. So commenting comes naturally to me, Documentation by Comment-ation is a logical extension to the concept.

Read more

“Steal Good Stuff” – iOS Design Pattern Collections

Apple Design Award

Rule Number 1 if you’re going to “borrow” from other great people is to only steal things that are worth stealing. You know, good artists borrow, great artists steal.

We are dealing more and more with people in large corporations suddenly finding themselves tasked like “hey you, design this iPad app!” The problem with that is that these people often don’t yet own an iPad that they use all the time. They are used to thinking in concepts that make sense on Windows machines or in web browsers, but not on a large multitouch panel.

Fortunately for us several people have started collecting examples of great UI designs for us to peruse. My Twitter followers came up with quite a selection.

Read more

Linguan 1.0.1 – Ginormous Hotfix Pack

My partners at BytePoets have been causing their keyboards to emit steam from walking through 26 issues that we identified on the 1.0 release just 9 days ago. Almost all had been identified as typical “oh shoot” elements, mostly items that you only find when people begin to actually use your software. Also I was able to smuggle in one or the other new feature since I consider “user confusion” also as a form of bug that you should hot fix if you can.

Read more

We’re Hiring

Help Wanted

Our business has outgrown our capacity. Cocoanetics has 2 large clients with long-term projects plus is successfully selling components that need to be polished and maintained. Add to that our visibility and you can imagine that we get frequently approached with interesting projects that we have to often turn away. “We” refers to myself, Oliver Drobnik and my partner Rene Pirringer. We love to develop and polish apps and are having a blast.

As it currently looks the momentum of the markets we are in is speeding up, not slowing down.

So we are looking to hire …

Read more

Linguan Available, Users in Ecstasy

When I first formed the idea that evolved into Linguan it was because it was a tedious process to edit strings files with text editors and never being sure if you translated everything. In school my Latin teacher told us (incorrectly) that Ecstacy comes from ex (“out of”) and tease (“cause pain”) and that is what Ecstasy really means: to be without pain.

Many years later I was reminded of that because it was a pain (you know where) to deal with translations, especially if you had more than one extra language or had to deal with translators. As soon as you update your app with some new features you instantly lose track what additional tokens which of the translators has to provide a translation for.

Linguan comes to the rescue for all of us pained developers. It’s basically a very smart editor for .strings files. Plus a validator that is able to find inconsistencies and for example if you saved a strings file as UTF8. Plus an export and merge function that lets you send all untranslated tokens of specific languages to translators and merge their results back into your project. And you can even tell your translator to get Linguan because it gives him a nice interface to work through the strings files you send him.

Read more

Submitting Your First Mac App Store App

Screen Shot 2011-10-31 at 7.59.59 PM

I would say I have the process of submitting iOS apps down, I could probably do it blindfolded. Actually I HAVE done it blindfolded on several occasions guiding people over the phone on their very first submission.

But today I am doing it for the first time on an app for the Mac App Store (aka MAS). Let’s see if I can see this through to a successful conclusion, or at least until the ball is out of my court and with the app review team.

Read more

He Says He Cracked It

For lack of any other sensible field in Apples backyard to speculate on we are hearing multiple news sources and recyclers invest their brains in talking about a real Apple TV, as in TV-Set-style TV. All my favorite podcasts are full of it. And even Steve Jobs himself speaks to us from the grave via his biography where is quoted to have said “I’ve cracked it”, referring to an integrated TV-Set.

Not to be outdone, let me also add a bit of speculation, founded on some actual facts. Loops that Apple left intentionally open as if to telegraph their next moves.

Read more