Saturday, August 22, 2015

Inception

I'm going to build an app.  Specifically, an iOS app.  This process will be my way of reacquainting myself with iOS programming and learning Swift, setting me up to teach mobile development for Notre Dame this spring.  So I'm going to build an app, and if you want, you can follow me as I go.

If I look half as cool as this kid by the time I'm done, I've won

I've spent the last four years teaching Android; iPhone development has been an afterthought.  At some point I dabbled in Objective-C and even published to the App Store, but still, it's been a while since I worked with iOS.  Since then, Apple has released three major versions of their operating system, introduced heterogeneous screen sizes, and created an entirely new programming language for developers to use.  I guess there's a watch now, too.  

I'm going to have to speak at least somewhat convincingly about iPhone development in four months.  It's time to get back in the game and get ready to teach.  So how do I decide what to build? 



Meta-requirements


Before I even start to brainstorm, I should lay out a few super-high-level goals for this project.  It should:
  • be written in Swift
  • be focused enough in scope to release in a month or two
  • cover a variety of iOS development topics suitable for teaching
Simple enough.  Now, the idea.

Finding a Concept


App ideas are everywhere, and when people realize that you know how to code mobile apps, they're really everywhere.  Everybody's got one (or two or three), but too often the pitch begins with "it's like Facebook but for..." or "it's instagram except with...".  Sometimes these concepts are really good, and I think someone should build that.  But when your target audience is "everyone with a smartphone," I think you're swimming upstream.  You might have a hit, but even a brilliant idea needs a lot of luck to go mainstream. 

Go Niche

Instead, I always tell my students that good app ideas are like magazines.  Next time you're at the grocery store, take a look.  Look past those mainstays like Time and People (broad enough? just look at their names!).  Magazines like those are struggling to maintain their wide appeal, and yet magazine publishing thrives because of what else is on the shelf:  Auto Restorer; Family Tree Magazine; Cigar Afficianado; American Bee Journal.  These magazine sell not because they appeal to everyone, but because they are niche.  They focus on a particular audience with laser precision; they specialize.

Something for every audience


Find a Local Domain

What problem are you uniquely positioned to solve?  What's something you, your friends, or family members experience every day that could be made simpler, faster, or more enjoyable with software?  Maybe your cousin's a doctor, and has an idea for a simple app that would make every general practitioner's day a tiny bit easier.  Maybe you know a building inspector that could save 20 minutes a day if he could just access building codes in the field.  Maybe your sister-in-law is one of those bee keepers, and she needs an easy way to track her bees or take pictures of honeycomb or whatever the heck it is those people do.

The point is that you need to identify a domain into which you have a special insight.  This insider knowledge lets you see problems other people don't even know to solve, and it gives you a leg up on anyone else tackling the same issue.  Listening to the Startup podcast, I learned a term for this: your unfair advantage.

So where might I have some special insight?  It's time to put on my thinking cap.

The Idea


Well, I didn't have to go far for this one.  Building my app is supposed to help me prep for teaching, so it's fitting that it should actually help me in the classroom.  There's one thing that's been bugging me about my past teaching experiences:  I suck at taking attendance.  

Here's someone who doesn't

Bueller? 

Things start out so well: at the beginning of the term, I don't usually know any of the students, so on day one, taking attendance is Serious Business.  I get everyone's preferred name, say hello, and ask them some ice breaker question, the answer to which I hurriedly scrawl down on the paper where I've printed the class photos -- which is already more than a lot of instructors have in front of them on the first day.

Anyway, it's day one, so I lay out my attendance policy.  Three unexcused absences, and I release the hounds.  Except I need to let you in on a secret.  This blog's private, right?  I've never released the hounds.  And it's totally possible that I should have done a few times, but who really knows?  After a few class days, I lose track.  

And a bit further down the line, some people start to realize this class might be hard, and they start dropping out.  Only they don't drop -- they just stop coming.  Or maybe they're coming back?  It starts to get very confusing as to who should be here, who is here, and who isn't.  If only I had been keeping better records of who was there each day.

Speaking of podcasts, if I learned nothing else from Serial, it's that my taking attendance might one day help solve a murder.  So there's that.


Audience

So now I've got my sexy, glamorous app idea!  Say it with me:  roll call.  Ooh, goosebumps.

Who's going to use this thing?  I would certainly download an app that made this process easy -- like, really easy.  I don't have all day, okay?  And I'll bet  there are instructors all over the place that would.  Maybe you work for an institution that requires you to take roll, but it's an intensely manual paper process to track over time.  Maybe your whole school would like to adopt a simple attendance app.  I think I understand this problem domain, and I think I can provide a solution.  

Let's Do It


This app probably already exists.  Normally I'd do a search on the App Store first, but you know what?  Who cares.  I'm not even looking.  This concept ticks off all my criteria.  It's non-trivial (as we'll shortly see); it'll get me into several aspects of iOS and its frameworks; it's nice, niche, and focused; and most importantly, I think I can finish it in a few weeks (oh, that'll look hilarious in hindsight).  Plus, if I do a good job and create a polished experience, I think it might even sell.

Yes we can!
  So that's the pitch.  Stick with me, and I'll talk you through the whole thing.  Next time, step one: requirements gathering.

No comments:

Post a Comment