Overcast 2

Overcast 2 by Marco Arment is now available on the App Store. I’m sure I use Overcast more than any other app on my iPhone, and I think people are going to really dig the new streaming feature. Since I think I’m one of the people for whom streaming isn’t really a big deal, my favorite feature is the ability to support Overcast by actively (and optionally) patronizing the app. None of the features are locked behind a paywall anymore, if you like the app, give what you think it’s worth. I’ve already done it.

Marco explains why he went this way on his blog:

80% of my customers were using an inferior app. The limited, locked version of Overcast without the purchase sure wasn’t the version I used, it wasn’t a great experience, and it wasn’t my best work.

With Overcast 2.0, I’ve changed that by unlocking everything, for everyone, for free. I’d rather have you using Overcast for free than not using it at all, and I want everyone to be using the good version of Overcast.

Auto-Incrementing Build Number Script

I got this from somewhere I can’t remember. I’ve been using it a while and it works very well. I have it setup so that it will happen whenever I archive a new build for beta or release. You’ll want to change those configuration names to whatever your configuration names are in your project.

Add a “run script” phase to your targets build phases with this script and put it just below “Link Binary With Libraries”.

Functions as Factories

Cocoa at Tumblr:

Factories are a fairly well understood design pattern in software development. The benefits of using factories include:

  1. Abstracting constructors away from clients.
  2. Encapsulating data that clients do not need to know about.
  3. Allowing for more testable code by enforcing the idea of passing objects into initializers instead of referencing singletons directly.

This post will show the power of a few Swift features as well as of first­-class functions.

Dynamically Sized Table View Header or Footer Using Auto Layout

I’m trying to support Dynamic Type everywhere I can in my new app. Auto Layout and self sizing table view cells (buggy as they are) makes that a lot easier for the most part. Still, there’s other places that just setting up constraints and changing the font size of a label isn’t enough. The one I’ve just dealt with is a table view header (UITableView().tableHeaderView) with text in it. If I do nothing but set up my constraints and set the header view, the font size changing will just cause extra space to appear or my text to get cut off.

The solution was to override UIViewController().viewDidLayoutSubviews(), get the proper size of the header view based on it’s constraints, set the frame on the header, and reset it as the table header view.

It took me a little while to figure this out, so here’s what I did:

You Can Do This In Swift

This isn’t a hidden feature or anything — it’s just how optional binding works — but I guess what I didn’t get before was that this (responseObject’s type is AnyObject):

Could become:

So much better. So much code to delete now. Put this under the category of “things I can’t believe I didn’t get until now.”

The Growing iOS SDK

David Smith writes about how much the iOS SDK has grown over time. One thing that was interesting is that more “SDK elements” were added in iOS 8 than iPhone OS 2 (which is crazy).

The last paragraph echoes something I’ve felt for a while:

There was a time when I felt like I knew my way around pretty much every non-game SDK available on iOS. Now I often find myself stumbling across frameworks that are completely foreign to me, which is both kind of exciting but also extremely daunting.

I suppose that’s normal. I can’t tell you how often I find out about a “new” API only to realize it’s been around since iOS 5.

NetNewsWire 4

The best is back! The folks at Black Pixel have shipped NetNewsWire 4 for Mac and iOS. I’ve already bought it from the App Store and it looks great.

Congratulations to all of my friends at Black Pixel for getting this out the door. It’s been a long road, and I’m glad to see their work paying off.

Acorn 5

It’s a couple of days back now, but Flying Meat has released a new version of their fantastic image editor: Acorn. I’ve used Acorn for my work and personal projects since version 1.0 in 2008, and it’s incredible to see how far it’s come while still keeping the simplicity that made it so appealing in that first version.

Gus is a friend — so don’t tell him I said this — but to me he’s always been the epitome of the one person indie who’s both a world class developer and also a fantastic designer. Check it out.