
It’s a long time since I posted something serious here. Shame on me! Cheap excuse: I have been busy. Busy with work and busy enjoying the German air of my new home.
Another thing that kept me busy was this neat book published by Apress: “Pro Obj-C Design Patterns for iOS”, by Carlo Chung. True to the short paragraph on the cover “Use Objective-C design patterns to bring your iOS skill to the next level”, the book takes a deep dive into how various design patterns can be applied in the Cocoa Touch Framework and in Objective-C in general.
This book is in a pro series, so it’s not “iOS Development 101” or “Start using Objective-C in 24 hours”
In its 23 chapters, the book covers the most common software design deja-vu scenarios for:
- Object creation Interface adaptation
- Decoupling of objects
- Abstract collection
- Algorithm encapsulation
- Performance and object access
- State of objects
If you’re reading about design patterns for the first time, my advice is to take a few minutes, pause reading the book and think about each pattern you read. While the examples are well explained, source code and diagrams, sometimes in day-to-day software design the exact examples from the book can be missed. As long as the governing concepts and use cases are well understood, they can be a lot of help.
All too often, developers grind trough building good apps on willpower and a vigorous focus on code development, leaving them unaware of and unable to benefit from the underlying structural and functional design patterns.
If you want to take your iOS (and not only) coding skills to the next level, make your personal library a favor, get this book and thoroughly read it. Have a good read!




![j2labs:
.gitconfig tweaks
I stumbled across this stackover flow page discussing cool ways to configure your git experience. I never knew about the output coloring options and it’s changed my life already - for five minutes so far.
I recommend reading the whole page, but I recommend putting the following code at the bottom of your .gitconfig immediately. The screenshot above shows you what you get for it.
[color] diff = auto status = auto branch = auto interactive = auto ui = true pager = true[color "branch"] current = yellow reverse local = yellow remote = green[color "diff"] meta = yellow bold frag = magenta bold old = red bold new = green bold[color "status"] added = yellow changed = green untracked = cyan](http://25.media.tumblr.com/tumblr_lk6znwH5RP1qzcrv4o1_500.png)

