Archives for : March2013


Author and speaker Daniel Steinberg always keeps his talks fresh, revising them and making changes every time he gives them. CocoaConf DC 2013 was at least the third time I’d heard his keynote “A Pocketful of Patterns” (whose framing device is based, in part, on my own skepticism about design patterns), but he caught my attention with this little pattern, showing a problem and a good solution:

What do you hate about most Cocoa Podcasts? They tend to be way too long, rambly, unfocused, self-indulgent. Therefore, if I were to produce a podcast it would be focused on the audience.

OSEG, so true. So I tweeted it right then and there:

Tweet from invalidname: "Yay. @dimsumthinking finally told the truth about most developer podcasts: they're too long, unfocused, and unedited. #cocoaconf"

Take a look at the tweet details and you’ll see a long trail of reactions, including those from Cocoa podcasters Saul Mora of NSBrief and Wolf Rentzsch and Andrew Pontious of Edge Cases.

So what’s the beef that Daniel and I have? Actually, it starts back at CocoaConf Chicago, and a flippant question I asked as the moderator of “Reverse Q&A”, where we take a panel of speakers and have them ask questions of the audience instead of the usual way around. Shifting topics with a segue, I asked “what’s the deal with all these developer podcasts anyways? why do we have so many?”

And the answer I got back was: “it’s easier than blogging.”

Continue Reading >>

CocoaConf DC 2013: The Usual Follow-Up Links

For CocoaConf DC, I freshened up the HTTP Live Streaming talk with a demo of the streams created for the iOS app working as-is with a Roku HD purchased the night before at Target (because I forgot my Roku XS back in Grand Rapids). Actually, only the basic and variant streams work – I didn’t try getting encrypted streams to work, but Roku apparently supports it, so that’s something to work on for next time.

For CocoaConf San Jose on April 18, I’m bringing back the All-Day Core Audio Workshop for one more go-round, so get in on that if you’re interested.

I also had time left over at the end of my regular Core Audio session in DC… with a few judicious cuts, I could carve out 10 minutes or so for an introduction to AudioBus. Anyone interested in that?

Rok, Rok, Rok, Rok, Roku Roll High School

I mentioned a while back that I was bored now with Apple apparently deciding to take the first few months of 2013 off, at least in terms of shipping anything interesting. With all the laptops on a schedule of updating mid-year for back-to-school, and all the iOS devices apparently on a holiday season update, and the SDKs getting revved annually at WWDC, it leaves a big gaping hole of nothing at the beginning of the year.

I’d hoped we’d see an Apple TV SDK by now, and since we haven’t, I’ve gone looking for something else to do. I bought a Roku 2 XS Player (just in time for the Roku 3 to come out, wouldn’t you know), since the Roku platform is highly welcoming of third-party developers, and features a broad selection of third-party content (including, of course, another means of getting my Crunchyroll fix).

Continue Reading >>

CocoaConf Chicago 2013: The Usual Follow-Up Links

OK, let’s do this thing.

Attendees of the iPad Productivity Workshop — an all-day class I did for the first time, following a poll here on [Tc]; about new tutorial topics — have already written all the code, but for DC students who want an advanced peek (or anyone else who’s interested), here’s a zip of the project in its various stages.

The “staged examples” is an idea I got from Daniel Steinberg, who swears by it for his classes. The great thing about it is that if someone falls behind, they don’t get lost: they can just skip ahead to the next checkpoint in the code’s progression. In this class, we build an app that can search iTunes, put results in an UICollectionView, and then allows the user to build their wishlist of items as a UIDocument. Along the way, we add in:

  1. Copying an item to the clipboard, to paste into other apps
  2. Document persistence, with iOS background saving
  3. Add to / delete from list
  4. Undo of add/delete
  5. Save document to iCloud
  6. Import documents from other apps (e.g., receive a wishlist as an e-mail attachment or Safari download)
  7. Export wishlist to PDF and send it to mail, printer, other PDF apps

It turns out to be more than I can teach in 8 hours, so with the stages, we just skip ahead to a good starting point. In Chicago, we started at stage 3, with the search feature working and the split-view for wishlist browsing set up in the storyboard but not yet implemented. The code might get a few tweaks before DC — possibly sorting the .wishlist files in the master table, and supporting pasting into the wishlist — but overall things are in really good shape.

As for my other talks, I did Core Audio in iOS 6 and Mobile Movies with HTTP Live Streaming again. They’re good talks and pretty polished at this point, but they were in some ways meant as a placeholder in case Apple gave us something new to play with in time for CocoaConf. Obviously that hasn’t happened… it’s been a real boring Q1 in Apple-land.

If you’re here for the Core Audio, note that this is the corrected, works-on-iOS-6.1 code that I discussed in a previous blog entry.