A 46-post collection

2015 Fall Speaking Events

This fall, I was presented with an opportunity of being a presenter at two different 360iDev events.

Podcast Appearances

Over the past couple of months, I've had the pleasure of being the guest on a couple of great tech podcasts.

  • NSBrief Ep. 131: Recorded in the hallways at 360iDev, Saul Mora was kind enough to invite me to join him for an episode where we discussed some of the ideas presented in my talk in more detail, despite the fact that I used singletons in one of my examples.

  • iPhreaks Ep. 078: This opportunity came about as a result of my buddy Alondo Brewington who asked if I'd be interested in joining his fellow co-hosts of iPhreaks for an episode or two. In this first appearance, we had a lively discussion on the importance of reducing the complexity of your View Controllers and techniques for accomplishing that goal.

  • iPhreaks Ep. 085: For my second appearance on iPhreaks, we covered prototyping and its valuable role in the app development process. Check the show notes for some of my favorite prototyping tools (both analog and digital).

360iDev Recap

Another great 360iDev is drawing to a close. It was great getting know so many new people and catch up with all the friends I've made over the past 4 times I've attended the conference.

The slides for my Prototyping workshop and View Controllers presentation are can be found on my Talks page. When the session videos are posted, I'll update those pages to include links to them as well. Thanks again to everyone that came out and attendend my sessions!

Speaking at 360iDev 2014

360iDev is the largest independent conference for iOS and OS X developers and this fall it returns to downtown Denver. I’m very excited to be invited back as a speaker!

This year, I will be leading two sessions:

  • App Prototyping 101: From Paper to Product: A fun, hands-on workshop which covers a wide range of tools and techniques for prototyping your app; from paper and pen sketches to interactive, animated mockups which allow you to rapidly try out multiple ideas with real users before before ever launching Xcode.

  • Building Better ViewControllers: In this session, we will learn how to unburden our View Controllers by applying the Single Responsibility Principle and delegation through functional Intentions. We’ll find that by adopting the principles of “Lighter” View Controllers our code becomes much more robust to change, yet remains easy to maintain and test.

360iDev sells out every year, so Register today before the tickets are gone!

Zach Holman:

Public speaking is tough. Be it at a conference, or during a company meeting, or in your car trying to persuade the cop not to ticket you for going three times the speed limit while streaming an episode of The Maury Povich Show on your iPad, talking in front of other people can be an intimidating experience.

At, Zach as collected some of the best information I've seen on planning, preparing, and delivering a public presentation. Whether you're presenting to hundreds at a conference, a small local user's group, or to your team at work, you'll certainly improve your chances at success by following the advice of someone who's done his fair share of talks.

Making GIFs MOV(e) in Keynote

When I need to highlight an application workflow in a Keynote presentation, I prefer to include a short screen recording of the workflow rather than break out of Keynote and perform the task live. Additionally, I've found it useful to convert those screen captures into animated GIFs[^gifs] which drastically reduces the file size and makes them easier to share across platforms and devices.

However, if you attempt to include those animated GIFs in a Keynote presentation, you'll quickly discover that it will only display the first frame of the GIF file, not the entire series of frames. Luckily, there's a dead simple workaround to get your animations going again:

  1. Duplicate the GIF file
  2. Change the file extension on the copy from GIF to MOV
  3. Drag the MOV file into Keynote

Now, Keynote will treat the file as a movie. You can control the playback properties via the Movie Inspector pane as you would if it were a QuickTime file.

[^gifs]: My current tool of choice for this task is GIF Brewery


Mattt Thompson:

In terms of open source participation, releasing code is only one aspect—and arguably not even the most important one. Developing an open source project requires equal parts engineering, product design, communication, and community management. But the true deciding factor for whether an open source project succeeds is stewardship.

The Internet is rife with Open Source projects that launched with great enthusiasm, but were left to wither on the vine. In another great NSHipster article, Mattt (yes, that's the correct spelling!) explains how the role of stewardship is the vital component of creating a successful open source project.

Site Reboot

Another year, another blogging engine. For 2014, I've decided to set Octopress aside and experiment with Jekyll instead. Similar to Octopress, Jekyll is a static site generator but it appears to be more actively maintained than Octopress.

I also took this opportunity to create a Talks page which consolidates the slides and recordings for the presentations I've given at development conferences and CocoaHead meetups over the past few years.