That being said, I have worked on 20+ iOS apps now and most of them were finished with a MUCH smaller total number of hours than this. I don't disagree that taking something from "it works" to "it's elegant" takes time, but 1100 hours of dev time does seem a bit high. I, too, would be interested in more info (like total lines of code, whether or not they built a Twitter engine from scratch for the app, etc).
To anyone considering making an app: don't use this as a baseline comparison. You can get a great-looking app done in a lot less time than this.
The other not-so-obvious complexity here is probably the data model, which seems far from trivial, especially given the constrained memory environment (lots of images, etc.).
The times don't seem unrealistic at all to me.
Manual memory management, lack of functional programming, compile/test cycle, etc isn't free.
- You can mix static and dynamic styles as appropriate.
- You can mix low level and high level code as appropriate.
- "Manual memory management" != "Manual ref counting". I'm not saying it's wonderful, but it's a hell of a lot better than malloc and free.
- Categories are a pretty big OO power tool that you don't see in e.g. Java (e.g. Android)
- I would love to be able to efficiently write slick, efficient mobile apps with an REPL right on the device. And I would enjoy a pony.
I believe that Twitterrific uses MGTwitterEngine now, but originally had used its own.
#define A(obj, objs...) [NSArray arrayWithObjects:obj, ## objs , nil]
#define D(val, key, vals...) [NSDictionary dictionaryWithObjectsAndKeys:val, key, ## vals , nil]
I put these two macros in the prefix header for every Objective-C project I do. Say what you will about single character macros, these save me time and improve readability (for me, anyway... I'm not sure how others reading my code down the road fare, but so far there haven't been many of those).