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

Expanding/Collapsing TableView Sections

While giving many designers a headache the Twitter app still serves as template on how to solve a variety of UX riddles. One of which is the situation where one might want to have sections in a tableview that possess the ability to expand from one row to several and collapse vice versa.

The eye of the experienced developer sees two challenges contained therein: 1) grafting a mechanism for collapsing and expanding onto UITableView in a reusable way 2) making custom accessory views that look like a rotated version of the disclosure indicator, pointing upwards or downwards and also changing color when highlighted.

In this article I present my solution to this UX riddle. At the same time I will demonstrate how NSMutableIndexSet can be used to our advantage. In contrast to the pull-to-reload method previously discussed, this does not contain anything remotely patentable.

Update March 12th, 2013: Cleaned up version of the custom-colored accessory is now available via DTFoundation, the example project is now part of our Examples collection on GitHub. Please note that if you use this code you have to attribute it to us or buy a Non-Attribution License.

Read more

On Meeting Other Developers

Everywhere I travel I generally try to find some local meetup of iOS developers to hook up with. Let me be honest, admittedly, one of the reasons why I like to do this is that often developers would mention in passing that they have heard about my blog or know me from following me on twitter. One word: ego.

But this is not the sole reason for this interest. I am possessed by the idea that if developers in any field – iOS in my case – would organize and socialize more then the resulting network of knowledge and opportunities would generally benefit everybody. I might tend to extremes, here I am working out of my home office for the most part talking about the greatness of a social network.

Read more

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