I helped my son build a mobile game app in his quest to earn an iPhone.

tldr;

My oldest son and I built an app called Color Tap. We are selling it in the Apple and Google app stores for 99 cents (with the hope it can at least make enough to cover the price of an iPhone 6s for him). We think the game we ended up building is pretty good, but we would love to know what you think. So please grab a copy and then rate, review, & help spread the word about it. We also both learned a lot along the way (some of which I’ll dig into below).

Please get the iOS version and the Android version

The Backstory

My son is about to turn 12 and he really wants an iPhone but my wife and I have been on the fence about it.

As he gets older there are more frequent times when it would be nice for him to have a way to easily communicate with us (for pickups, for changes in schedule, for asking questions when we aren’t around, etc.) but there are a few problems:

1. He’s already addicted to his tablet and computer. We really fear adding yet another mobile device, one that is even more connected and accessible, to his world. Still, it’s a reality of the times & it just means continuing to do the tough parenting things (for example setting and enforcing expectations and limits).

2. It’s really expensive. Not just for the initial device, but once we give in it will be a recurring monthly cost that we’ll have to live with until he’s old enough to actually cover it himself (and oh by the way, he has a younger brother who will expect at least the same things as he hits the same milestones; so we aren’t just talking about doing this once). Again not a show stopper, but this isn’t just a one-time decision/hit we have consider.

3. We love our kids to death and I think they are pretty good kids overall, but if I’m being objective and honest, they get everything they want way too easy in life. They could do with a little suffering and being challenged (and honestly coming up short) as they grow, learn, and prepare for the “real” world. Getting his own cell phone is one of the few remaining ‘big’ asks of his teen/pre-teen days (that we can use as “teachable moments”).

Now I fully understand and accept that these are “first world, middle class, problems” (and on so many levels I’m blessed to be struggling with them vs. “real” problems) but none-the-less, it’s been the topic of much debate in our house for the past few months.

Eventually my wife and I decided that we had to at least try and make this as much of a teachable moment as possible. If our son wanted his own iPhone, he would have to save and/or earn most of the money to buy the actual device (and if/when he did that, we would cover the monthly bill until he’s old enough to have an actual job).

This, as you can imagine, is actually quite the challenge for an 11 (almost 12) year old.

So, after much complaining, unsuccessful negotiating on his part, and then eventual brainstorming he came up with the idea of building a mobile app to try and earn money…and oh yeah, “Dad do you think you could you help me do that?”

(yes, he’s smart and definitely knows my weak spots)

So of course I was immediately sold because I thought it would be mostly about teaching him to (love) code.

As it turns out, building even an average mobile app is still a fairly monumental feat for the beginner. The reality was that he ended up learning more about process and product/project management and the process as a whole involved a lot more critical thinking and research than even I thought it would.

In the end, I think we both learned a ton (and had a good amount of fun doing it). What follows are a few nuggets from my side of the experience.

Teaching kids (to code) depends almost entirely on the kid.

You can teach the syntax, and even most of the logic, but you can’t really teach the passion. And there’s too much to absorb to do it without true passion/interest.

I specifically decided to use the Ionic Framework for this project because I knew there was going to be a very steep learning curve for my son throughout this process. In my mind, Ionic would at least be the most reusable for his immediate future (I believe every beginner can benefit from learning Javascript and basic HTML/CSS)…and I’ve had great success quickly building various things with the framework in the past.

Even still, it meant he would need to learn HTML, CSS, AngularJS, SQLite, and at least some common Ionic (or rather cordova-wrapped) commands.

Since there is a web service component to it all as well, we had to throw in NodeJS, MongoDB, and some basic RESTful concepts.

Oh yeah, and just to deal with the raw files and images he would also need to learn some basics of dealing with GitHub, Photoshop, Terminal, and TextMate (we were both working on Macs).

Then of course he would need to be able to dabble a bit with Xcode and Android Developer Tools (ADT) to at least test and submit the app to the app stores.

Looking back at that list, I’m exhausted just thinking about everything I had to introduce him to just for us to get started (no wonder beginners get discouraged so quickly).

Anyway, my son will spend hours playing Minecraft (and other video games), and he spends almost all the rest of his free time playing with video recording/editing software (one of his dreams is to become a famous 'youtuber’ )…but the coding bug has not bit him (yet).

When it was time to sit down and learn code, or to write code, it was clearly “work” for him (who can blame him reflecting on that list above). He did it when he had to, but it clearly wasn’t something that excited him (like it does me).

So it was clear from the early stages, that if we ever wanted to push something to the stores I would have to take over the core of the programming tasks (that’s OK though as there were still tons of things he could do throughout the project).

OK so that means he didn’t really learn to code (i.e. he probably couldn’t write anything from scratch himself), but he does understand the code that powers our app. And probably most importantly, he understands the “why” behind the code and code decisions throughout our app (and has at least now has had exposure to all the technologies I mentioned above). This means he’s at least way more aware of what’s possible - of what’s easy and what’s hard - in app development right now…and that alone makes it all worth it in my mind.

I consider it gravy that he learned a ton of skills around defining a product, setting and meeting deadlines, and jumping through all the hurdles and challenges that come up throughout the project lifecycle (it was amazing how quickly he learned to squash feature creep once he directly felt the pain to the schedule and to actually having to learn to build that extra “must have” feature)…and of course he learned the basics of all the tools and technologies I mentioned above, which I think/hope puts him way ahead of most kids his age (time will tell).

Building a good game is equal parts research, alchemy, and…ahem…creative appropriation of others work.

I wrote a bit about our research phase for this project in the past, but I bring up here again because it really was one of the biggest takeaways for both of us in this whole process. There are thousands (if not millions) of really great games already on the market; trying to come up with something that has potential in the space (especially given our resources & challenges) is an insanely difficult task in itself.

Our findindings really helped us focus on what we think are the right constraints and details…we used my developer knowledge/experience and did as best we could given our various constraints…and full disclosure, we still took a TON of 'inspiration’ from Dots (the addictive and successful BetaWorks backed/designed game).

The good news is that I believe we can use what we learned throughout this process for some additional ideas we are already debating and starting to story board (one of the secrets to everything I do is to try and make it all a process of evolution; I build/evolve from failures just as much as I build on my successes – and so I’m looking forward to that being the next lesson I can share with my son).

The app store submission process is still way too complex.

You’ve spent days, weeks, or months building and testing your app…now in just six thousand clicks (and about twice as many swear words) you can have it submitted to both the Apple iOS and Google Play stores!

Seriously, it’s almost as difficult to submit your app for review as it is to build the thing.

You need a million different assets, you have to answer a bunch of questions, provide gobs-o-information, and of course agree to lots of terms, conditions, and pay at least a few fees.

Services like https://launchkit.io are trying to make things a bit easier…but officially, years into the “app store” concept and it’s still a super kludgy and painful process.

The tech and tools have gotten cheaper and easier, but building even an average app still requires a lot of different skill sets. It’s near impossible to be a successful 'one person’ team these days.

On top of all the work, once you submit your app…you wait…and wait…and wait. We waited for a week before the app finally went into review with Apple (and then a day before it got officially approved). That’s a lifetime for the anxious first-time developer (especially if it’s an 11 year old).

Building a modern app really involves a TON of knowledge & skills:

 - Tech and logic (which includes things like coding but also game logic & options)

 - Design (which includes things like graphics, usability, and user interface stuff but also colors, emotions, and lots of various psychology things)

 - Editorial (which includes things like copy, story, directions, and any thing else you need to actually communicate inside and out of the app)

 - Project Management (which includes things like planning and schedule, but also the research phase mentioned above, asset gathering and working through the submission and other processes).

 - Marketing and sales (which includes things like getting the general public to be aware of your app, getting the app installed, and of course getting actual players) And this one is really crucial…because building an app (regardless of quality) is just table stakes. Marketing, sales, and promotion remains a massive hurdle that requires completely unique skills from 'coding’.

  - A million other little tasks and details (which includes everything I’m either forgetting or choosing not to mention above; and trust me there are plenty).

Now we wait for the market’s opinion/reaction

So, we built an app together and he didn’t really learn (to love) programming…but he did get exposed to a ton of (I think) interesting things and at least started to build a number skills that I think (hope) will serve him well going forward.

Meanwhile the verdict is still out on that cell phone…and what people will think of the actual game app.

So if you get a chance, please do head out and grab a copy (and don’t forget to rate, review, and share it after you do as well).

Please get the iOS version and the Android version

This post has received 2 loves.


SUBSCRIBE WITH YOUR EMAIL

ARCHIVE OF POSTS



This is the personal blog of Kevin Marshall (a.k.a Falicon) where he often digs into side projects he's working on for digdownlabs.com and other random thoughts he's got on his mind.

Kevin also talks in more depth about many of the these things around twice a month via his drip campaign and has a day job as CTO of Veritonic. You can also check out some of his open source code on GitHub or connect with him on Twitter @falicon or via email at kevin at falicon.com.

If you have comments, thoughts, or want to respond to something you see here I would encourage you to respond via a post on your own blog (and then let me know about the link via one of the routes mentioned above).