20 Apr

If My Shelf of iOS Programming Books Could Talk

A few weeks ago, I moved from New York to St. Louis, and brought with me a stack of iOS programming books, each representing a chunk of time in my professional development.

Starting Out

Objective-C Programming: The Big Nerd Ranch Guide by Aaron Hillegass
One day, before heading to work at my job at a patent firm, I sat on a coffee shop patio and while gesturing wildly, karate-chopped coffee directly into the pages of this book. Many months later, after I’d started my first programming job, I took the beat-up thing with me on a solo trip to the beach. The buses back into the city were screwed up, so I had a couple of hours to thumb through it on the way back – more than ample time to brush up on it and pick up a few things I hadn’t caught the first time around. It now smells like sunscreen.
Big Nerd Ranch: @bignerdranch

iOS Development Essentials by Neil Smyth
This series of books made me the programmer I am, and yet I haven’t been able to thank their author. Honestly, it’s 2015 and I can’t find a trace of the guy. Not on Twitter and not on the back cover of his book. At Smith & Sons, we’d make him an honorary member just by virtue of his name. Every year, this elusive author delivers exactly what I needed when I was starting out: focused, self-contained chapters on one simple task. Apple rejected an early app of mine because it was just PDFs of patent office documents, suggesting that I add something a little more native and interesting. Well, one chapter in the iOS 5 version of this book covered touch and animation. After only a few dozen lines of code, tapping on a point on my phone’s screen would rotate and move a blue box just beneath my finger. I was blown away, and promptly added a flying guy in a jetpack to the patent app, just because.
Techotopia: @techotopia

iOS by Tutorials by the Ray Wenderlich Tutorial Team
Ray Wenderlich. The guy has built a publishing empire with dozens or maybe even hundreds of collaborators, releases new videos every week, and doesn’t even stop to get a new headshot to replace the one where he’s wearing a backpack. Makes sense he’d treasure that bag though, because he has to carry around these books, all stuffed to the gills with information. Imagine if the Wu-Tang Clan operated the 80s Nintendo game counselor help line. It’d be as magical as this.

The Core iOS Developer’s Cookbook by Erica Sadun
In the iOS 6 book, there was a really slick tutorial on making a cover flow collection view layout. 3D rotations, scaling, and everything. Honestly, if you came by my desk in March 2013, I don’t care who you were, I was going to subject you to testing a cover flow layout. Bonus points for teaching me how to structure my code, which is now less spaghetti and more one-day old gingerbread house.

Deep diving

iOS Programming Pushing the Limits by Rob Napier and Mugunth Kumar
About a year into my mobile dev job, I’d settled in comfortably and could rapidly prototype and release some simple apps. But there were a few times when that wasn’t enough, and I had to dig into Instruments, custom drawing of cells, and so on. One Friday night I was taking it easy playing video games when my manager texted the news that my app crashed on his boss’s phone – a dinosaur at two generations old. I consulted this book to streamline the drawing code. Bonus points for referencing Scarface’s Push It To the Limit. Seriously, they thank Rick Ross in the acknowledgments.
Rob Napier: @cocoaphony
Mugunth Kumar: @mugunthkumar

Tapworthy by Josh Clark
Learning iOS Design by William Van Hecke
Summer of 2013. iOS 7’s visual overhaul of 6 was on the horizon. At work, I was turning around proofs-of-concept every couple of weeks, and may have been sacrificing interesting design for speed. Luckily, at WWDC, I scored valuable 1×1 time with an Apple designer. I showed him an app where users arrange physical objects in 2D space, among other tasks. I asked him how I should handle object duplication. Long press? Double-tap? He yawned, sighed, pulled his hoodie lower over his eyes, and grumbled that I shouldn’t think in terms of the physical world. Maybe I should have the user hold one finger on the object to duplicate, and write, using my other index finger as a stylus, the number of objects desired. Just write a 5 in the middle of the screen and poof! Five fresh copies. Transcend the physical reality of the object. My mind was blown. I said thanks, he coiled back into the fetal position. The next week I bought these two design books. Tapworthy is a landmark book, a long series of app screens with commentary, which at the time of publishing in 2010 predated almost all mobile design blogs. A few months after, I managed to catch a talk by the author at a Drupal event at 30 Rock and really enjoyed his material. William Van Hecke’s unique and fascinating book reads a little more academic, tackling human/phone interaction theory, and is thus relevant even today.
Josh Clark: @bigmediumjosh
William Van Hecke: @fet

Make It So: Interaction Design Lessons from Science Fiction by Nathan Shedroff and Christopher Noessel
Fun book discussing how speculative interfaces from science fiction films have influenced real-life controls. Awesome mashup of film and UI/UX discussion. After this, I tried to make a crazy sliding grid to help users navigate an org chart. Like Frogger crossed with Minority Report crossed with Robocop. I ended up using a list, through no fault of these fine authors.
Make It So at Rosenfeld Media

Big Nerd Ranch: Advanced iOS Programming by Joe Conway, Aaron Hillegass, and Christian Keur
A couple of years after first purchasing my copy of the BNR Obj-C book, work sent me to the Advanced iOS Boot Camp near Monterrey, CA. My teacher was brilliant (and is a personal favorite on Twitter) but the regimen wasn’t for me. I was reflexively coding and needed to have daily interaction with people not in the industry. Well, as luck would have it, I’d convinced my boss to let me fly into San Francisco and drive through the valley to the camp, rather than fly directly to Monterrey’s airport, so I was one of the few attendees with wheels. I took advantage on Wednesday night and jumped into the car, hung out for an hour in a park along the ocean, drank a hot chocolate in a quaint coffee shop nearby, then tore off down the road to Carmel and ate some pizza, chatting up random strangers at each stop. On the last day of the camp, I had plans to drive up the coast to Santa Clara, and walk the boardwalk featured in the movie Lost Boys. But, that morning, I solicited Facebook for a name of someone at Apple. Well, it turned out that a friend of a friend worked at Apple and could meet me for lunch. So I bolted early (I think I lost out on a camp t-shirt), jumped into my car, and tore up the coast, skipped the boardwalk to fly through the mountain highways to Cupertino, where I got to relax on the grass and eat lunch in the middle of the main building. Went in the gift shop and bought one of those cheap Apple T-shirts in large that shrinks to Baby Gap size.

NSHipster: Obscure Topics in Cocoa & Objective-C by Mattt Thompson
A few years ago, I attended a meetup for iOS developers at the New York Times HQ. When introducing Mattt Thompson, the author of the NSHipster blog and this book, the gushing event host said, “I explain it to my girlfriend like this: he’s the Michael Jordan of iPhone development.” Well, I think of him more as Phil Jackson, because he’s sharp, chill, and creates nuggets of wisdom like, “Understanding the concept of nothingness is as much a philosophical issue as it is a pragmatic one. We are inhabitants of a universe of somethings, yet reason in a logical universe of existential uncertainties. As a physical manifestation of a logical system, computers are faced with the intractable problem of how to represent nothing with something.” I wish I could code half as well and write a quarter as well as him. Like Zen and the Art of Motorcycle Maintenance for a bunch of coders.

Rounding things out

Offscreen Magazine
If you’re reading this blog, and connected in any way with tech, you should have a subscription to Offscreen. Each issue tells of success stories in the industry, but not in that Fast Company-pose-in-the-empty-office-with-shadows-in-the-face way, or the New York Magazine-look-at-these-jerks-with-money way. Everyone is presented in their own words, and given ample pages to offer wisdom learned in their brief but successful careers. A seminal, unique publication operated by one skilled and friendly person, Kai Brach.

Clog Issue 2: Apple
Clog is an interesting architectural journal that features a series of small one-or-two page essays on a single particular topic as it pertains to architecture. I first spotted it at the register at a bookstore – the Sci-Fi issue had a little hologram on the cover and I’d just seen Elysium in the theater. A short time after, I ran across a stack of the Apple issue. The editors devote a lot of space to Apple’s Headquarters, and there’s one particularly disturbing essay about birds fatally swooping into the glass cube store on the southeastern edge of Central Park. DesignBoom has some pages and Clog is still selling this issue if you’re interested in picking up a copy. I’d also recommend the issue on Miami.
Clog’s site
Designboom feature


iOS Games by Tutorials by the Ray Wenderlich Tutorial Team & Friends
A quick way to making a 2D game, with tutorials involving cat physics and rotating zombies. Around the time I was reading this book, while demoing a game for some other people at my company, I realized that I had ended up a video game developer and tester – a fact about which my 10 year-old self would’ve high-fived me.

Learning OpenGL ES for iOS by Erik Buck
In early 2015, I was flown to the UK for a week, to meet a legendary contract developer from Vienna and some British colleagues at our office there. That week, we got the green light to use Apple’s GLKit to make a new, huge game. After the work week, on Friday afternoon, I went into London and wandered rainy streets, browsing the computer sections of Charing Cross bookstores and found this intelligent book buried deep in one multi-story shop. They had a nice little cafe on another floor, and I remembered drinking a soda and embarrassing myself by asking a British gentleman where the “bathroom” was. After I left, I wandered more through the streets, to an old, beautiful umbrella shop, James Smith & Sons, that inspired my own branding, all with dark, lovely, moody London rain falling. If you’re wondering if the book is any good, it is. Without the sample code, I wouldn’t have gotten the app shipped. However, with iOS 8, Apple opened SceneKit for developers, which hides OpenGL ES entirely, and makes GLKit more or less obsolete. Apologies to whomever is maintaining that code I wrote!

Kill Screen – Issue 8: Virtual Reality
My history with Kill Screen, the literary journal on video games:
Issue 2: Bought it
Issue 3: Attended a release party, had some interesting conversions with the issue’s authors and got some free video games
Issue 4: Wrote an essay on the game Passage and was quickly rejected
Issue 8: Attended the journal’s annual conference, TwoFiveSix, for work, and got this issue at the door. Spent the entirety of the day coding an app in the audience.

Console Wars by Blake J. Harris
In 2014, I went to Boston for the Games for Health conference. Through a glitch with the company’s hotel booking software, I ended up at a swanky hotel with a massive roof overlooking the city. Each day after the conference, I had a couple of sunny, silent hours on the roof before the bros started streaming in. I’d park myself in a recliner, with a strong drink on the table, a nice cool breeze, and Console Wars – a captivating story of Sega, Nintendo, and Sony centered around the 16-bit era. It’s quick but dense with stories of marketing genius and charming restraint.

A few more I want to recommend (brag about reading) but about which I can’t think of a story.
Super Mario 2 by Jon Irwin (basic but nostalgic gold)
Steve Jobs book by Walter Isaacson (fascinating)
Jony Ive one by Leander Kahney (inspiring)
The Circle by Dave Eggers (cheesy but unsettling)