inessential by Brent Simmons

Vesper Mac Diary #1 - the Plan

The last Mac app I wrote was NetNewsWire Lite 4.0 for Macintosh, released in March 2011 — over three years ago.

Before last week, before WWDC, I would have said that the big changes to Mac development since 2011 were view-based table rows and the NSURLSession APIs. Which would have meant that I didn’t have a lot to learn to write a new Mac app.

Which is fine. With Vesper 1.0 I learned a ton about Core Text, custom UI, and transition animations. With Vesper 2.0 I learned JavaScript, Node.js, and how to write a syncing system. That’s a lot of learning in a year-and-a-half, and I deserve a break.

Well. I don’t want a break.

After WWDC 2014, Mac app development has changed substantially. There’s so much to learn.

The plan right now:

  • Write all new code in Swift.

  • Use storyboards.

  • Use auto layout.

  • Adopt the new appearance APIs (vibrancy and so on).

  • Do things I’m not thinking of because I’m still overwhelmed with even just listing what’s new.

There are some things I’m not going to do. I could rewrite existing code in Swift, but that would just be me spinning my wheels. Not worth it. And now that Core Data has fixed two of my big three wishes, I could switch — but that would be malpractice, since I already have a working, fast, and efficient model layer.

The plan could change. I do, after all, need to ship, and I can’t take a serious amount of extra time just because I want to learn all the new things.

But this is going to be fun.