People should learn to code by making iOS apps

Last week, along with my friend Pablo Quinteros, I led an Internet Week New York “Classroom Session” on how to build an iOS App.

We’re living in the early stages of the “Learn To Code Movement”. Training site Code Academy has raised millions in funding. Famous Bills like Bill Gates, Bill Clinton, and Will.I.Am have lent support to code.org. And while actor Jason Bateman stars in a revival of a TV series cancelled 7 years ago, his 47 year old sister Justine is working on her Computer Science degree at UCLA.

Although the movement itself is language agnostic, it’s most often that lessons are only available in JavaScript, jQuery, or a server language like Python or Ruby. It’s rare that iOS is mentioned as a starting point. But I believe that iOS is not only a great platform for aspiring programmers to learn how to code, it is the best platform for aspiring programmers to learn how to code.

The secret of getting ahead…

If getting started is the hardest part, then iOS wins out the gate thanks to Xcode. OS X ships with both Python and Ruby, but accomplishing Hello World in either involves Terminal, and learning how to navigate a UNIX command line. Xcode is a simple Mac App Store download, so Mac users will already know how to set it up.

When the download is complete and the first project created, the beginner doesn’t have to learn some arcane command to compile and another to run: they just click the huge Play button as they would in iTunes.

Oh, this old thing?

Even if a newcomer picks up Javascript in a day, they’ll still be limited to building things with Times New Roman on a white background. It doesn’t look good. But a new project in Xcode looks great on first run. The nav bar is curved at the top with a subtle shadow at the bottom. The font choices are sensible for mobile software. All of the great animations and graphics in UIKit are given to the programmer, for free.

You’ve got to hire a designer to really knock socks off in the App Store, but bare-bones UIKit has enough on its own to make for a sexy to-do list or time tracker. It’s easy for newcomers to stay motivated when the environment automatically makes everything look nice.

Lesson 1: Drag. Lesson 2: Drop.

Storyboards are an incredible tool and I have used them to ship the last several apps I’ve worked on. They aren’t perfect for all use cases, but debating whether or not they are good for experienced developers is not a point I want to argue here: they are absolutely fantastic for new developers. What could be simpler than Drag and Drop? And if one wants to tweak a UIButton, it’s just a checkbox or text field edit away. Of course not everything can be accomplished with Storyboards, but the paradigm encourages top-down thinking. It then feels natural to move on to filling in the blanks by providing UIViewController method implementations.

The web is still dead

Making a website just isn’t that exciting or interesting anymore. There are a number of services like SquareSpace, Tumblr, and Wordpress which can be used to build something that runs in a browser. When was the last time we saw a web app that blew us all away? Everything exciting is now happening in the App Store. People prefer to use apps, so it’s only natural to assume that they’d prefer to make apps as well. Learning how to build a cool app is a lot more fun than learning how to build a cool website.

The bad

Is Objective-C the easiest language to learn? No, just the nature of having syntax means a newcomer is going to fumble when beginning to edit source. But the verbosity of Cocoa Touch frameworks makes this easier to get a handle on - it’s clear what all of the required pieces are to make something like animateWithDuration:delay:options:animations:completion: do what it needs to do.

Also, accessibility is an issue. Not everybody owns an iOS device, and not everybody has a Mac. But those that do should learn to code by learning how to make iOS apps.

Exhibiting at Macworld

Blackjack Strategizer sales spike when posts like those in The Daily or Gizmodo are published. So I’ve been trying to garner more press, but simply sending out a pitch and a promo code to bloggers hasn’t led to much success. Since it’s so difficult to get noticed via email, I thought a face-to-face approach may get me better in touch with writers: enter Macworld-iWorld. The annual trade-show/conference looked like a great place to show off my app, but I wasn’t sure if the potential costs would make it worth going. To my surprise, exhibiting was affordable. I registered quite late, after the early bird pricing period has lapsed, but getting a small kiosk in the “Appalooza” section still cost less than $1300. If my presence led to just a published article or two, the trip would be more than paid for. No-brainer.

Adding to the expense was the need for some kind of promotional material. Some research showed that those in Appalooza typically bring flyers, but my lovely PR advisor insisted that stacks of papers would be expensive trash. Instead, I purchased three hundred clay casino chips, a $30 customizer kit, and started sticking stickers. It took no longer than six seconds to decorate twenty chips at a time.

The Blackjack Strategizer kiosk
The Blackjack Strategizer kiosk

Paying the lowest price available for a spot on the floor meant a small, unchangeable area for presentation. A pair of small stands are separated by a poster board partition, creating two neighboring kiosks. The upper half of each side displayed the company name and a banner touting the platform (iOS or OS X), while the lower half was open to customization by the exhibitor. Unfortunately, with just a day to provide custom artwork, I only had time to quickly throw together a vaguely on-brand (Palatino!) bullet-point list. And yes, I winced every time an attendee would read this (literal) wall of text before deciding the app wasn’t for them and moving along.

The tabletop provided enough room for me to have the schwag spread and a single device. I opted to use an iPhone 3GS for demo purposes, a wise move: a nearby exhibitor had an iPhone 5 stolen from their area, and it was never recovered. No security was provided for my grade of stand (the next expensive package, upwards of $2000, came with a tiny lockable cabinet) and I left all of my weapons at home, so I had to keep a close eye on my stuff for three days.

Another thing I had to do for three days: not sit down. If I can give future exhibitors one piece of advice, it’s don’t go alone. Bring a friend, a loved one, an intern… just bring somebody. Standing for 6–7 hours straight for three days without breaks is exhausting. I was so pooped at the end of each day that I didn’t partake in many evening activities. Luckily, my show floor neighbors were willing to cover quick bathroom and food breaks, but the reality is that they paid their own money to be there for their own thing, so leaving my booth unmanned would mean opportunities lost. To further twist the knife, being there alone meant that I had no chance to check out any of the sessions or even the rest of the expo hall. While Macworld actually prohibits more than one staff member at a kiosk at a time, it’s a rule that isn’t enforced. So bring somebody!

With over 25,000 in attendance, there were plenty of iFans to meet. One annoying part of this population are the badge-carriers pitching their products to exhibiting developers. These are folks that did not pay IDG $1,000 but still want to get the word about their stuff. Admittedly, some of these services are worthwhile: I got a nice lead on a top-flight localization service, and worked out a free advertisement with an app review site. But did I really need to hear about a hundred different analytics SDKs? My advice to people who came to pitch exhibitors: show a genuine interest first, and before parting ways throw a quick one-liner and offer a business card. The indie developers at Macworld paid a lot of money for their spot, and don’t want to spend a significant amount of time hearing about your services.

So did I get what I came for? Did I meet a bunch of journalists who wrote a bunch of words about the app? Well… I did have a different kind of brush with fame:

But no, no press. The only thing I’ve seen written about Blackjack Strategizer was getting honored as one of the best “stupid” apps at Macworld. That’s been printed out and posted to the fridge.

Despite the lack of media attention, there was an another benefit that I didn’t anticipate. Being at Macworld got me something I couldn’t get anywhere else, and that’s a first-hand look at how a couple of hundred strangers use my app. And these aren’t geeks who ask if it’ll sync with their Dropbox or when the Android version is coming. These are real, regular ass people. The great feedback kept coming and coming: why Blackjack Strategizer doesn’t have a left hand mode? Why can’t the in-app cheat sheets be printed? Why is the stay gesture totally inappropriate for the Australian market? Perspective.

One more thing: I neglected to collect many email addresses from interested parties. I do maintain a mailing list managed by mailchimp, and their iOS app provides a single-field form for new subscribers. It would have been so easy to amass a large list of potential recipients, but the opportunity slipped my mind! That’s another reason to bring somebody else along: there’s simply too much going on for one person to remember everything.

All in all, paying to exhibit at Macworld was worthwhile. Unless I have a new app to demo I probably won’t do it again next year, but I recommend developers consider the trip if they’d like to take advantage of being in a room with twenty thousand Mac and iOS users.