One of my New Years’ resolutions was to make $10 on the App Store – and, as of last month, I’m happy to say I can check it off my list – Barback is now available to curious alcoholics everywhere! This post, more than anything else, is a braindump of all the random thoughts and resources I had between deciding to make an app and proudly seeing it show up in the App Store.
(Of course, the amount of money I’ve made on the App Store is relatively far north of $10 and relatively far south of bajillions – this post is more about the actual development process for a programmer with zero mobile experience.)
Coming up with an idea that doesn’t suck
If you’re a first-time mobile developer, the best piece of advice I can give you is to think of an idea that:
- satisfies a personal need
- requires relatively few moving parts
- can be explained to friends and family without using the words ‘disruptive’, ‘synergy’, or ‘paradigm’
For me, that idea was simple: I loved making cocktails, but the only real resources I had were various online databases (for which the signal to noise ratio was incredibly poor 1) or hard-copy books, which were difficult to parse and search.
I wanted something simple and effective, where I could jot down notes, search by ingredients, and have a pleasant experience – and, surprisingly, that last criterion excluded most of the existing offerings on account of them being terrible.
That’s why I didn’t stipulate that the idea had to be particularly original – with over one million iOS apps, the likelihood that you’re bringing new something new to the table is overwhelmingly slim. Thankfully, most apps out there are absolutely awful. 2
Designing something that isn’t awful
I own an iPad and an iPhone and spend an embarrassing amount of time engrossed in apps on either. That being said, even with my experience of using well-designed apps 3, I had no idea how to actually go about creating one. Thankfully, there are a shocking number of design resources available for the hopeless novice. My favorites, in no particular order:
- The vaguely named – yet still great – Mobile Patterns
- pttrns, which is even more vaguely named
- Capptivate, which has a particular focus on animations
- Lastly, the ubiquitous Dribbble, which really needs an option to hide all screenshots that look awful except they’re renders on an actual device and that device is blurred and at a 30 degree angle for some reason
Also, don’t use the hamburger button (pictured below). It’s just too weird.
Coding things that don’t break (often)
Before anything else, do the standard iOS/XCode tutorial that Apple offers. XCode often feels as if Dali designed an IDE, and it helped me incredibly to get a few pages of hand-holding before setting off on my own. If you want to follow even more directions after that, Stanford offers a presumably excellent iTunes U course.
Beyond that, the standard levy of resources (StackOverflow, /r/objectivec, furiously Googling exception messages) are always classic sources of help, but there are a few great iOS-specific places to check out as well:
- Dash, the best way to search for documentation (which you will be doing frequently) 4
- CocoaPods – think of this as iOS development’s version of PyPi / NPM / whatever the Ruby package manager is
- Mike Ash’s NSBlog, or perhaps even his NSBook 5
(Also, bookmark the iOS developer’s toolbox, which will quickly become your bible.)
Throwing your slop at the huddled masses
Okay, maybe the header’s a little hyperbolic, but in a lot of ways it isn’t – the closed-source nature of the App Store makes it easier than ever to rationalize shipping shitty code. 6 And that’s a good thing, for the most part!
As long as you’re dutiful about avoiding unnecessary idiocy and not actively sabotaging your future development efforts, ripping the metaphorical bandaid off and submitting your app is going to be infinitely more useful for your productivity and sanity than laboring indefinitely over micro-optimizations.
Similarly, I found it incredibly useful to create a strict featureset for the first version of Barback: otherwise, you’ll likely find yourself lazily bathing in a quagmire of feature creep, letting obsessions over font-size customization and drag-and-drop override other useful things like ‘customer feedback’ and ‘money’.
That’s not to say that it isn’t worth obsessing over the tiny details – because it definitely is – but if you’re just a random dude tinkering around with a mobile app for the first time, you can probably wait a few versions before doing so. If your goal is to ship a perfect gem of an app, then kudos – but there’s no reason that perfect gem has to be your first public release.
Development is, generally speaking, pretty rad.
Mobile development is, generally speaking, pretty weird – but it’s still pretty rad.
Getting to send someone a link to the App Store with your name on under ‘Developer’ is really neat, especially for the first time. And, despite an abundance of anecdotal evidence otherwise, its fun and simple to learn how to do it yourself.
So yes – you too can make $10 on the App Store! (Just stay away from the booze vertical, okay? Kind of protective about my niche.)
- If you think I’m exaggerating, check out the Chocolatini. [return]
- Previous sentence in bold because seriously, the next time you have doubts about yourself as a developer look at the ‘What’s New’ section of the App Store [return]
- With some exceptions – I’m looking at you, King of Dragon Pass [return]
- Okay, technically this isn’t even iOS-specific, but that’s how I learned about it so meh [return]
- Disclaimer: it’s not called NSBook. But I feel like that was a missed opportunity, you know? [return]
- At least in webdev you run the risk of someone viewing your source and silently judging you for magic number overuse [return]