iPad, the Future, and the Luxury of Starting Over

Fredrik Olsson

A luxury that you seldom have in the world of software development is the luxury of starting over. I am not talking about throwing away everything and start from scratch. But just taking what you have, and all the experiences learned. Apply some major refactoring to make what works really shine, and without care of [...]

Tags: , , , , ,

Test Driven Development in XCode

Christian Hedin

Test Driven Development, or TDD for short, is a simple software development practice where unit tests, small focused test cases, drive the development forward. This is most easily explained by the Three Rules of TDD that dictate the following:

You are not allowed to write any production code [...]

Tags: , , , , , , ,

Google Translate and iPhone apps

Fredrik Olsson

The Cocoa and Cocoa Touch frameworks has a really nice function for acquiring a localized string NSLocalizedString(). Just pass in a key and you are done, for strings that are known at least. Sometimes you are getting unknown strings from a data source not under your control, strings representing just a fraction of the text [...]

Tags: , , , , ,

Add some polish to iPhone app start up

Fredrik Olsson

First impressions last, and the very first impression your users have of your iPhone application is the start up. First step is to have a nice Default.png, but not many words spilled on that one, it is well covered in Apple’s documentation.
Creating a perfect Default.png is impossible, especially if you have different setup of navigation [...]

Tags: , , , ,

Queued Background Tasks for Cocoa

Fredrik Olsson

The megahertz race is over, and instead we get more execution cores. This means that we as developers must make our applications parallel, in order to take advantage of the new performance. The easiest way to be parallel is to execute tasks in new threads, something that is useful also for lengthy but not resource [...]

Tags: , , , , , , , , , ,

Regular Expressions and Cocoa

Fredrik Olsson

Regular expressions is a powerful tool for solving many problems related to text. It can be misused as any good tool, but there are moments when they are the best solution for a given problem. At those moments the lack of regular expressions for Cocoa on Mac OS X and Cocoa Touch on iPhone OS [...]

Tags: , , , , , , , , ,

Introduction to iPhone development

Christian Hedin

It has been little more than 2 years since the iPhone was first announced and during that time it has managed to make a huge impact on the mobileindustry.
Introduction
Just recently, iPhone sales figures surpassed all windows mobile phones combined and in several markets the iPhone has been a top selling phone model. Together with [...]

Tags: , ,

Adding Sorted Inserts to Cocoa Arrays

Fredrik Olsson

NSArray and NSMutableArray have methods for sorting arrays, NSArray returns new sorted arrays and NSMutableArray can be sorted in place. The sort methods comes in three flavours; using a function, using a selector, or using an array of NSSortDescriptor objects.
NSArray admits to sorts being a slow operation, and adds a method pair for comultive sorts [...]

Tags: , , , , , ,

Bridging the Gap Between Java and Cocoa

Fredrik Olsson

Many Java developers are looking at new dynamic languages, such as Groovy and JRuby, mostly because of the freedom and rapid development that a dynamic language allows. Some of my colleagues are also looking at Cocoa and feel daunted at the sight of Objective-C.
Here I will use a small example that is easy and [...]

Tags: , , , , , ,

UIToolbars in iPhone OS 2.x

Fredrik Olsson

The new release of iPhone OS 3.0 adds some nice API:s for managing a contextual toolbar. This is well needed as toolbars in the current iteration of iPhone OS is not only poorly documented, it is also quite hard to do right. So I will go over how to do toolbars the right way, for [...]

Tags: , , , , , , , ,

iPhone OS and the Lowest Common Denominator

Fredrik Olsson

Nishant wrote a good piece on why Apple continue to outdo it’s rivals, he used a variant of a quote by Canadian hockey player Wayne Gretzky to make his point:
A good hockey player plays where the puck is. A great hockey player plays where the puck is going to be.
This is true as it stands, [...]

Tags: , , ,

Proxy Based AOP for Cocoa Touch

Fredrik Olsson

UITabBarController is generally used as is, no subclassing required. It creates a UITabBar and manages a list of UIViewControllers, keeping track of the tab in focus, UI creation and everything nice. UITabBarController has a delegate, the UITabBarControllerDelegate protocol. Unfortunately this is not a superset of the UITabBarDelegate protocol, and UITabBarController already implements the UITabBarDelegate protocol [...]

Tags: , , , , , ,