Flat UI

Flat UI is a popular Bootstrap theme from Designmodo with a nice default palette. Here's a color palette file for OS X, useful if you want a small but well-chosen set of colors for app prototyping.

leaky abstractions

gtd

The Isolator is a bizarre helmet invented in 1925 that encourages focus and concentration by rendering the wearer deaf, piping them full of oxygen, and limiting their vision to a tiny horizontal slit.

I'm not sure it seems that bizarre if you've worked in an open-plan office.

SimulatorStatusMagic

With the release of the iPhone 6, Shiny Development recently discontinued Status Magic, but they also released this open source app that uses private APIs to customize the status bar on the Simulator. It might be an even better way to generate App Store screenshots.

UIAlertAction considered longwinded

Even for Cocoa, adding actions to a UIAlertController is tediously verbose.

[alertController addAction:[UIAlertAction actionWithTitle:title
                                                    style:UIAlertActionStyleDefault
                                                  handler:^(UIAlertAction *action) {
  doSomething();
}]];

The string "action" appears six times in the method call. There are only three kinds of actions. Wouldn't this be clearer?

[alertController addDefaultActionWithTitle:title handler:^(UIAlertAction *action) {
  doSomething();
}];

Yes it would.

@implementation UIAlertController (Extras)
- (void)addCancelActionWithTitle:(NSString *)title
                         handler:(void (^)(UIAlertAction *action))handler {
  [self addAction:[UIAlertAction actionWithTitle:title
                                           style:UIAlertActionStyleCancel
                                          handler:handler]];
}

- (void)addDefaultActionWithTitle:(NSString *)title
                          handler:(void (^)(UIAlertAction *action))handler {
  [self addAction:[UIAlertAction actionWithTitle:title
                                           style:UIAlertActionStyleDefault
                                          handler:handler]];
}

- (void)addDestructiveActionWithTitle:(NSString *)title
                              handler:(void (^)(UIAlertAction *action))handler {
  [self addAction:[UIAlertAction actionWithTitle:title
                                           style:UIAlertActionStyleDestructive
                                         handler:handler]];
}
@end