I forgot that I wanted to get this joke reference into the Throwaways post, so here it is by itself:
Perfect is the enemy of good, but far more importantly, perfect is the enemy of *practice*. Allow yourself to make weird flawed things
— Jaiden Mispy (@m1sp) April 28, 2016
Janie had a blog the other week about her self-destructive tendencies, one of which is to do things that feel productive but aren’t. A lot of her problem is reading a bunch of background information prior to starting a major project, something that has so many unknowns it’s imposing.
I get it because I’ve been in the same situation and done the same thing, and it didn’t work. But an approach far more naive turned out to work better.
Yay! Another App Store think piece!
No, wait, where are you going? Hang on, I promise it won’t be the same old “Apple needs to do trials and paid upgrades” rant. In fact, I don’t think Apple’s the problem at all.
I think maybe we’re the problem.
iOS 9 SDK Development is now shipping, and I got my copies today. After some longer-than-expected delays copy-editing and indexing, the Prags surprised us with a very cool feature:
The book is printed in COLOR. Not just 16 pages of color plates in the middle. Like, the whole damn thing is in color. Every code listing is syntax-highlighted, every sidebar is in Prags Purple, and every simulator screenshot with a photo looks like an actual iPhone or iPad screen.
This got mentioned as a possibility during layout review, and I was surprised by it, but I guess with the lower-volume print-on-demand publishing technology they now use, color is more practical than in the old days of offset printing when you needed to work in batches of 5,000.
With the book done, and taking time off from conferences, I’ve wanted to do some coding of my own, to catch up on stuff I’ve missed out on over the last year or so. Naturally, top of the agenda is tvOS, and the various changes to the media frameworks.
So to warm up, I decided to take my old web radio project from the CocoaConf Core Audio class, and port it to tvOS. I figured that along the way, I’d also rewrite it in Swift and update some of the crustier parts of the code.
tl;dr: it works fine, but there are things I’d do differently a second time around.
Confession: I have no idea whether the code examples from Learning Core Audio work on El Capitan and iOS 9. Maybe? Probably most of them? But I’m in a really conflicted state with where that book is.
The book came out in early 2012, which now makes it about four years old. It took about two years off and on to write, 2010 and 2011, with a big push to wrap it up at the end of 2011 because our editor was leaving Pearson to go to Apple. Looking at my mail history, I was approached about replacing Mike Lee on the book in late 2009, so the small amount of material that he and Kevin Avila wrote probably dates back to earlier in that year.
The point of this all being, the book is old now. The stated system requirements are Xcode 4.2, Lion (Mac OS X 10.7), and iOS 5. The examples in the first few chapters that use Foundation instead of Core Foundation actually use manual
release and the
NSAutoreleasePool because the book largely pre-dates ARC (we did finally ARC-ify those examples in the April 2014 update to the downloadable sample code, at the cost of no longer matching the written material in the book).
So now what?
“Oh hell, another App Store thinkpiece.” Yeah, I know, not really my department even, so I’ll try to through it quickly. I just can’t help but think about some ideas and facts that can’t all be true at the same time.
Let’s start with this: 5 of the last 6 Kickstarters I’ve supported (check out my profile there) have been for software projects, games specifically. None of them are for iOS, only one is for OS X, and collectively, they represent far more than all my purchases on the App Store combined over the last 7 years (and that’s coming from someone who dutifully plunked down $50 for OmniGraffle for iOS and buys the new $5 Pinball Arcade table I-AP every month).
CocoaConf San Jose starts on Thursday. As with the other stops on the Fall tour, I’ll be doing an all-day class on App Extensions, and regular sessions on WatchKit media APIs and “Revenge of the 80s”, which is about old productivity APIs like cut/copy/paste that have been with us since the first Macs and which we take for granted.
This is also the last speaking I’ll be doing for a while. I’m taking at least the first half of 2016 off, maybe longer.
OK, sorry, didn’t mean to sound dramatic. But hey, you have to have a hook before the fold. Let me explain where my head’s at right now.