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

Git Submodules and Xcode 4

Previously when integrating existing library code with new projects I would have simply copied the necessary groups from from Xcode project to another. Then I would choose to copy the files to the new project to be sure that they got included in the source tree. Otherwise the project would not build for other people accessing the same source control management (SCM) server.

Now with Xcode 4 this technique no longer works. You simply cannot drag groups between workspaces. The question that interests us today is how we can add an existing GitHub project to our own.

Let’s see if we can figure out a simple and duplicatable method to achieving this. It would make our lives much easier to not having to duplicate component code for each new project.

Read more

Visiting Apple

A trip to San Francisco is incomplete if you are not paying a visit (and your respects) to the Apple Campus as 1 Infinite Loop, Cupertino. It is situated next to an exit of the 280 freeway but far away from any other sensible public transportation. So a car is a must.

I was lucky to have my colleague Sam rent a ZipCar for the trip and drive me out there, i.e. from Downtown San Francisco to Cupertino which is at southern base of the peninsula. Apple employees have shuttles swarming all around the SF area, but we pedestrians have to either rent a car or find somebody who is willing to drive us.

Apparently several Apple employee follow me on twitter and take notice of my quibbling. So I was quite excited to be invited for lunch on the campus. The Cafeteria “Café Mac” is about the most amazing food court I’ve ever seen. Outside they where making fresh Pizza, inside you’d find Pasta Sushi, fully customizable Buritos, ice cream and many more choices which I did not take notice of, because I immediately settled on Buritos.

Read more

San Francisco, here I come!

I’ve been hired by scribd to help jumpstart one of their iOS-related projects. That means I’ll soon grab my bags and hop onto a train that brings me to Vienna from where my plane leaves early morning Saturday, March 12th. I will be flying via London Heathrow to San Francisco where two busy work weeks are awaiting me.

I am mentioning this for some reasons, obvious and less obvious ones. Of course I like to gloat a bit, but I am also mentioning my trip because it might cause extensive delays when responding to your e-mails.

Just how does one land such a gig? I can only assume that my online activities and networking have played a role. This includes my educational articles from which people might deduct that I am serious about Cocoa. It also includes my open source projects, one might think that CoreText might be one of the technologies that scribd has a vested interest in.

Read more

Accessing the iOS System Log

Peter Reinhardt asks:

The app AppSwitch displays the console entries from NSLog logging in the iphone app. I tried to figure out how they do it but couldnt find an API. Do you have an idea?

Intriguing question! My first gut reaction was that the guys from AppSwitch must have some magic sauce as I didn’t know of a way to access the console log on device like the Xcode organizer is able to. My first response was that probably they are doing some stderr bending as is possible with c++. But then I bought the app to see their trick with my own eyes.

In this blog post I’ll show you how that’s done.

Read more

JSON versus PLIST, the Ultimate Showdown

Communicating with web services you have to decide on a way to transport the date back and forth. Recently – with the help of the popular Twitter-API – JSON seems to have come ahead in the race. Other contenders are property lists and XML. Property Lists (PLISTs) are available in XML-Text and a binary (“old”) format and are widely supported in the Apple APIs which makes them a joy to work with.

JSON files on the other hand are easy to be generated server-side as they are basically just concatenated text, much less verbose than pure XML. The binary alternative might also be a contender when it comes to performance in transmission and parsing, provided some component is installed on the server to generate them.

In this blog article we are trying to answer the question once and for all what you should use in your own apps.

Read more

Summertime 1.1

Summertime is my app that helps you to never be surprised by Daylight Savings Time transitions. A customer nudged me to update the app in time for the upcoming transitions. Since he is traveling a lot I needed to add the capability of configuring multiple time zones.

I spend several days to enhance the functionality as described below and to polish it to a level where I can release it in time for the upcoming DST transitions. March 13th in the US and March 27th in Europe.

Updates

  • NEW: Completely new Design
  • NEW: Set multiple time zones for your travels
  • NEW: Choose “Local Time Zone” to be automatically updated to your local time zone
  • NEW: Multi-Language Time Zone picker

The update is now under review by Apple.

Read more

iWoman 2.0.3

In this quick-fix update for iWoman I addressed a bug that could only be seen by users of the basal temperature feature.

Changes

  • FIXED: The basal temperature chart would only show the first 30 entered values.

Update was approved by Apple on March 8th it is available via the app store.

 

You Can Thank Me

You might have stumbled upon my site because of the variety of iOS development topics I am covering. I generally try to make any interesting thing I’m learning myself into an educational blog post. There are the things I stumble upon myself, those I document in the Recipes section. And whenever somebody sends me a question I try to answer it with code, examples and so that both our knowledge increases.

Let me summarize the ways how you can express your gratitude. There is a variety of options you have and if you make use of them I will be happy. Which in turn causes me to write more. Win-Win.

Read more

For a Fist Full of Apples

Last week and today Apple revealed several new iterations of mobile hardware. Let’s have a brief look as to what those mean for us developers who depend on Apple hardware both for our customers as well as to do our development on.

Generally speaking there was nothing truly revolutionary in it for us on either of these days. Is Apple stabilizing and focussing on were they are truly raking in the money? You bet.

No more revolutions, I fear.

Read more

Translating NSTimeZone Geopolitical IDs

For my new version of Summertime I am building a time zone picker. You can get the known time zone names from the NSTimeZone class, but unfortunately Apple does not give us any localization of these. The localizedName:local: method gives you localized names of the time zones itself (e.g. “Pacific Standard Time”) in various formats. But what I found to be missing is a way to have the geo names localizable as well.

If I have my iPhone set to German I want to find my timezone by entering “Wien”, not “Vienna”.

My initial thought was to keep this to myself, but since I only speak German and English I can never hope to have the translations be perfect unless I would pay several translators to comb through them. And you know, Google Translate is great, but not 100%. So I started a new Open Source project on GitHub: NSTimeZone+Localization which aims to remedy this.

Read more