Search
Follow
Recent Comments

Entries in book (4)

Tuesday
Aug302011

Book Recommendations

I have posted the odd book review on this site but I have for some time been meaning to collect my book recommendations into a single page that I can more easily keep updated. Well today I finally got around to adding a resources page to the site and made an initial pass of my bookshelf to see what I could recommend.

My intention is to only recommend books that I have actually used or continue to use. A big problem with technical books is that they can very quickly become outdated. That is especially true right now with books on iOS development which is a topic undergoing almost continual change. As a result of this I actually have only one book covering Cocoa and iOS development currently on my recommended list. Something that I hope will change over the coming months.

One introductory book that is often recommended is “Programming in Objective-C” by Stephen G. Kochan. It has recently been updated to include Xcode 4 but it looks like it will be updated again before the end of the year to cover iOS 5 and Automated Reference Counting (ARC). The Big Nerd Ranch also have some interesting introductory titles including the recently released iOS Programming book and an upcoming Objective-C Programming book. If I find the time to check them out I will of course post my reviews here.

Monday
May162011

PragProg Rails Book Sale

I guess most readers of this blog are iOS developers but I wanted to pass on this piece of news for those of you who also have some interest in Ruby on Rails. The Rails community annual get together, RailsConf, is taking place this week and in honour of that one of my favourite publishers, Pragmatic Programmers, is offering a 40% discount on all Rails and Ruby related books.

As well as the definitive books on Rails and Ruby there are also some good books on testing which may also be of some interest to iOS developers (no affiliate links just my humble opinion). The ones that I would recommend taking a look at are as follows (full list):

The discount ends on Friday (20th May). Hope it saves somebody some money.

Thursday
May272010

Cocoa Design Patterns

A copy of Cocoa Design Patterns by Erik M. Buck and Donald A. Yacktman arrived from Amazon this morning and I am already liking it a lot. I would not say it is the first book you should read about Cocoa programming but it may well be the second.

Note that this is not a book about iPhone programming though a lot of the material applies directly to Cocoa Touch on the iPhone. So don’t expect to find a detailed discussion of UIKit or other iPhone specific APIs. What it does provide are a large number of best practises from some experienced Cocoa developers. Aaron Hillegass sums it up nicely in the foreword:

Through floundering about with bad solutions, grumpy old Cocoa programmers have figured out some really good solutions to common design problems. The existence of this book means that you are not required to suffer through the same misery that we went through.

The book does assume some basic knowledge of object-oriented programming and if not Objective C than at least some C/C++ or Java. But in my view this book is perfect for somebody who has come to Cocoa via the iPhone and now wants to really understand how to get the most out the framework.

The first part of the book is a detailed discussion of the Model View Controller (MVC) architecture. If you were not already convinced that you should be using MVC in your applications they walk thought a simple application written with and without it.

The second part of the book steps through some fundamental Cocoa patterns such as two stage creation (alloc, init), categories, accessors, etc. Each pattern explains the motivation for creating the pattern (what the problem is), a detailed description of the pattern (how it solves the problem), examples of using the pattern and finally the consequences or what you should be aware of if you apply the pattern.

The third and fourth parts of the book cover patterns that either help to decouple your code (that is reduce dependencies between classes) or help to reduce complexity. Examples include the singleton pattern, delegates, the responder chain, bundles, class clusters, etc. There is some real depth here with good explanations and examples that make it easy to follow.

The final part of the book covers some of the tools that help apply patterns and includes some discussion on the use of core data models, views, binding and controllers.

In summary I highly recommend this book if you really want to understand Cocoa. Applying the patterns it describes can make a big difference to your application and I think it does a good job of revealing some of the more arcane parts of Cocoa.

Saturday
Apr032010

the iPad NDA is finally lifted

now that the iPad device is actually available the NDA covering the iPhone OS 3.2 SDK can finally be lifted. I can never really see the point of these SDK NDA’s. The iPhone development program must have tens of thousands of developers who know all of the details so it is not as if there are any secrets.

Anyway Xcode 3.2.2 and the final GM build of 3.2 are now available for download and with that the first iPad programming books are starting to arrive.

I have always liked the books published by The Pragmatic Programmers. For a long time they have published in eBook formats (pdf, ePub, mobi) which has saved a lot of space on my bookshelf. At the last count I own ten books from Pragmatic Programmers of which only one, the original Ruby on Rails book, is in dead-tree format. The ePub format also works great with Stanza on the iPhone with a very smooth download process from within Stanza.

Anyway it was no surprise to see they are quick off the blocks with a beta version of the book iPad Programming: A Quick Start Guide for iPhone Developers. Since they offered me a 25% discount I decided I would take a look at what they have to say. The book is still very early in its development but it is clearly aimed at people with existing iPhone development experience looking to make the transition to the iPad. From a quick read through it so far covers taking an existing iPhone app and converting it to a universal app that will also work on an iPad. Future chapters will cover more of the iPad specific features.

I suspect an experienced iPhone developer who knows how to navigate Apple’s documentation can survive without buying an iPad book. However the volume of Apple’s documentation can also make it worthwhile to have somebody guide you through the key concepts. That is where I expect this book to be a success but more as the book takes shape…