Ninety Days

Justin Williams recommends that you don’t spend more than ninety days on a 1.0. I’m with Brent that I want to see apps that take more than three months to make, but I still think Justin has the right advice.

Some apps are deep, and there’s no way around the time they’ll take to get right. Coda comes to mind. Overcast might too. A majority though — especially on iOS — are really all about one thing that makes it unique and everything else falls out of that one thing.

Don’t ship garbage. Do figure out what your app is really about, do the hell out of it, and then start shipping updates.


Alamofire is a new networking library — written in Swift — from the creator of AFNetworking. So far I’ve just read the post on NSHipster about it, but I like what I see. It’s not a value judgment, but something AFNetworking has never quite sat right with me. This looks very lightweight and more like something written to be idiomatic Swift rather than Objective-C in Swift’s clothing.

Swift Optionals

I understood the concept of optionals right away, but since the debugger doesn’t work with Swift in the third beta of Xcode 6, I’m given no clue what I’m actually doing wrong when my app explodes. This article did a pretty good job clearing things up for me.

Matt Bridges:

Objects that may or may not be nil (and the nil-checking code that accompanies them) are the cause of many common programming errors. Swift’s optionals offer compile-time cues to developers about when it’s necessary to nil-check and when it’s not, and makes it harder to write code that misbehaves in the presence of nil.

My New Job

I hadn’t mentioned it here, but a couple of months ago I took a full time position running iOS development at Lovely. Lovely is a great service for people looking to rent a new apartment, and it’s been really exciting working with the team. This also means I’m now living in San Francisco, so hopefully I’ll be able to run into some people here.

Vendor Unique Identifiers

I haven’t needed to get a unique device ID since before we stopped being able to use -[UIDevice uniqueIdentifier] until today. Apple added the method -[UIDevice identifierForVendor] in iOS 6 which totally replaces the old method for any of my needs.

What the method does is give a unique ID for any apps from the same vendor on a given device. The part which might be a little confusing at first is that “vendor” does not mean the same developer account, but instead means any apps where the first part of the bundle identifier (CFBundleIdentifier) is the same. So com.collindonnell.myapp and com.collindonnell.myotherapp would get the same identifier, but com.albinadevelopment.anyapp would not.

How the CEO of Evernote Organizes

I never feel like I have a great answer on how to organize anything, so this response on Quora by Phil Libin is really interesting to me.

The main points are that he:

  • Changes it up pretty often.
  • Has about forty-five total notebooks.
  • Has one primary notebook that most things go into.
  • Most of his other (at least thirty) notebooks are shared.
  • Doesn’t use very many tags.
  • Uses one notebook for each “major” conference he goes to.

I’ve also found most of my stuff going into one notebook (I call it “Filing Cabinet”). The most effective way for me to find anything is to search, so it would probably be useful for me to pare down some of the other notebooks I have and use a few strategic tags in their place.

Objective-C Without the Smalltalk

This is a really good post lamenting some of the direction Swift has chosen to take:

Gone is the dynamic nature of ObjC; it has instead been replaced by a rigid, generic based type system. I know the world of C++, Java, and C# programmers have rejoiced. Myself, having worked in Visual Studio building tools for .NET and Windows developers for many years and leaving that for the world of Cocoa and ObjC, I am greatly saddened by this turn of events.

Objective-C without the C is a worthwhile goal, but I don’t think anyone was asking for Objective-C without the Smalltalk. I’m still learning and planning to use Swift, but I think dividing into pro-Swift and anti-Swift crowds is probably too narrow of a view. Both languages are better and worse in different ways. It’s going to be up to us to learn those differences.

A Small Thing for My Dad

I’ve been hearing about Harry’s cartridge razor subscription service for a while on different podcasts, but since I’ve been using a safety razor for about four years now, it didn’t really interest me too much. The other day when I heard an ad though, I thought of how I’d been thinking of getting my dad a fancy-pants safety razor set with brush and everything, but hadn’t because I knew it’d be too fussy for him to use, and so I went to the website, read some reviews online to make sure they were actually good razors, and ordered my dad the “Truman” set in blue with a subscription that will sent him more razors and cream every four months.

For the cost of $93 a year (plus $15 for the initial pack) my dad will never have to think about getting fresh razors or shaving cream again. It’s a small thing, but something I can’t imagine anyone being upset that you did for them.