Thursday, May 17, 2012

Stupid relearnings

It's been a while since I've written any iOS code. All of my work on OttoJotts lately has been in PHP working the back-end pieces. I've written quite a bit of the web interface to break up the code into functions that I'll be able to use for both mobile and web. It's been a lot of work, but it's starting to come together finally. I've got a few more pieces of functionality to add to the back-end to allow folks to use a web page to play the game. Which will be interesting and should really exercise the code without having to have everyone download a new iPhone app. I can then finish up the iPhone version and maybe actually be done with this app.
On an aside, I've been using KanbanFlow (link here) to track the work I've been doing and the ToDo for future work. I was using Google Wave to do that originally. When Wave first came out, I was horribly excited because it meant that I could document my ideas, see how those ideas morphed over time, and keep the most up-to-date version of the thought process available. And then I could share that with someone else if I needed to (like bringing someone else into the project). Since Wave is going away and all of the waves are read-only now, I needed something new. Given that I've more than a passing familiarity with agile (having done it for over a decade now), I decided to give some kind of Kanban board a shot. I ended up picking KanbanFlow - it's met my needs so far by allowing me to track multiple boards (I have one for regular ToDo and one for OttoJotts ToDo's).
KanbanFlow's UI
I love that I can customize the columns (although I don't need to) and I can easily move things between the columns. It also allows you to track the estimated to time to complete a task and how long it actually took. I'm not really using those features, but I suspect I will later. Plus, you can color-code your tasks to track different elements of the project. Very cool stuff. I may write up a quick post on using Kanban for development later. Anyway, that's not really the point. Nor is that I've been working on OttoJotts back-end. What IS relevant is that because I've been doing that I've been away from iOS too much.
I decided to work on a quick project to see if I could do it in my "copious free time", but it's a little application for my toddler. The idea is an app that plays Old McDonald and lets him pick from one of three animals and then it strings the song together with the order he's selected. Pretty basic stuff, but it will be fun for him, I think.
What I've been relearning is the basic constructs to make the application, which sounds terrible (and is more than passingly so). I had thought "This might be easy in OpenGL" and then I looked at what was really needed there (gesture detection, processing, etc) and decided quickly - "Um, no". So then I decided that I should probably make a basic UIView application and I'd add UIImages to it. Which would have been fine, but again - need to check for "clicks". Then I *facepalmed* myself and realized that I just needed to have UIButtons. They have all the functionality I need - they can be "clicked" and they can have images associated with them. D'oh. So now I'm making some good forward progress, but it just seemed like a ridiculous amount of time to spend on something so basic it beggars the imagination. Such is the curse of being away from a technology too long...
What does this mean for all the apps I'm working on? Absolutely nothing. This is pretty much a one-off for my kiddo. I might post it to the App Store to share it. But that's neither here nor there and we'll have to see how it feels when it's done. Right now, though, it's got a date with a very important audience of one. Guess I better get back to it.