This is the first of a series of posts about the origin of tapStory. It's been almost four years since I had the idea, and in late March I quit my full time job as an iOS developer make it into a real business.
All the iPad children's books that I've seen seem to follow a model in which each page contains the standard images and text, and then the child can tap on various items to cause animations and other kinds of interactivity. The problem I have with this is that it seems to encourage the "tap everywhere to see cool/cute things happen" mentality, which definitely increases engagement with the book, but what level of engagement is it?
What I'd like to do is provide the child with the ability to tell her own stories after/while reading the book. For instance, the child adds her own narration with her voice. Add to this the idea that she can move elements around as she talks and creates a story for them. Now she can also go to a play area with blank pages to put story elements together and narrate new episodes. All of the above scenarios can be saved, replayed and shared. A more sophisticated or older child could write his own text narrative and build pages like a true work of fan fiction.
This is a lightly edited quote from my iOS App Ideas file, which I keep to remember any cool potential projects that bubble to the top of my brain at random times. If you've used tapStory, you know how close the app is to this original idea as I write these words four years later.
I remember very clearly visiting with my mom, dad, brother and sister for dinner one evening, sitting around the dining room table and bringing up this app idea. I've shared ideas with them over the years, but they had a level of enthusiasm about this one that spurred me to make a proof of concept. It helps that I love writing, drawing and telling stories, and I view programming as a creative medium as much as clay or paint or charcoal.
Writing the proof of concept was fun. It was a way for me to figure out the basic mechanism of putting characters on the screen, moving them with my finger, and playing back those motions. A week of programming yielded this small kernel of code.
Working on and off in my spare time over the next two months, I built a structure around this kernel to handle multiple pages and a means to transition between them. The basics of the app were in place.
Of course, I also needed a story to tell.
Just like the app itself, Pea and Carrot seemed to have just been waiting for me to discover it. Somewhere during that first two months, in one of those rare moments when an idea springs fully-formed from your imagination and you transcribe it, I wrote the story in one sitting. I then sat down with my Wacom tablet and Pixelmator to draw the two main characters. I tried to use a style that was cute without being silly, loose and sketchy but not shoddy. The colored-outside-the-lines look was one I decided on quickly as a way to meet those basic design goals. The fact that I only had to draw each one once and then make multiple facial expressions made the process much more efficient than drawing more sophisticated characters with lots of different poses. (Plus it closely matched my illustration skills.)
All stories in tapStory are just a collection of images and a few text files that describe how they are grouped and laid out in scenes. For Pea and Carrot, I wrote all those text files by hand. (It took a while.) I also had to solve the problem of how to look at a finger touch in the rectangular area of the image for a character and decide whether it had actually landed on the character rather than the empty space around it. In a future post I'll dig into both of these challenges in more detail.
Because I use Git, I can go back in time and check out snapshots from any period in tapStory's history. (That's how I produced the GIFs above.) I think I'm really going to enjoy writing more about the evolution of the app. It's interesting to go back and see how something so big and complex evolved from humble origins.