I love my job. For the past year I’ve been building iOS apps, and doing reasonably well with it. Every day I get to have breakfast with my kids, walk them to school, then come home and work upstairs in my office. Put in some good hours of work and then walk back to school to get the kids when they’re done for the day, another hour or so and then I’m down for dinner, with time to play and read with the kids before they go to sleep.
Life is good.
As a solo developer, I get to make all the choices about the apps I make. The flip side is, I have to make a lot of choices. What apps to build, what devices to support, what languages, what should the interface be, what sounds to use, what graphics to use, on and on. And after the decisions are made, then I have to actually do it. All of it. Sometimes it’s overwhelming and I have to push myself to get all the pieces in place to get an app out the door. But when I do, it feels great. Granted, I have apps that have been total flops. Several. But I also have some that have been well received and are making lots of people happy. And that makes me happy.
Even when I was building web apps in the days of yore, I lived for watching how people used what I built, to see if they enjoyed it, to see if the energy that I put in to making something intuitive and easy to use would be worth it, instead of building it in a way that was easier to build or copied some other known design but was not easy and seamless and intuitive.
It’s no accident that my old boss, John Kruper, who was also a fanatic about building next-generation better-than-anything-else-has-ever-been user experiences, was also quite enamored with Apple products. Setting aside the occasional misstep Apple has made, overall they still set the bar for how to build good experiences. But more I think of it as they set the goal of what we should be striving for.
Sometimes, though, I still trip and fall flat on my face. Like when I pushed out an update to Bubble Jewels XL this week that tried to improve things a little bit for everyone, and it had a horrible bug that made it crash on launch for 99% of the people that updated to the new version. Ouch. I put up messages that we knew there was a problem and would have a fix out as soon as Apple approved it, but still the 1-star reviews flooded in. Ugh. It sucks that Apple doesn’t have a system to roll back to the previous version of an app when this happens. Now THAT would certainly improve the end-user experience of the AppStore… (feature request has been filed, for what it’s worth)
And so for the few days it took for the fix to be approved, I beat myself up a bit, added a few new items to the release test plan that I don’t always follow 100% but boy howdy I sure mean to, and I stopped looking at the AppStore review carnage so I wouldn’t lose my mind. And then yesterday the fix went out, and we got some nice thank you emails in from our dedicated players. Thank you all!
While I struggle with how I could possibly have let a bug like that slip through (mental note – always do a full clean in XCode before testing final builds) I need to remind myself that these kinds of crash bugs happen to more than just me, and happen to bigger dev shops than me. Just yesterday I saw that Carcassonne had some kind of crash bug with their long-awaited update. They’ll fix it soon, just like I did, and all will be well again.
As for me, even with the occasional bumps in the road I’ve had so far, the blessings far outweigh the curses. I’ll keep doing this as long as I can, and do my best to relish every day that I get to walk my kids to school.
Now if you’ll excuse me, I’ve got some apps to write