Tuesday, 24 July 2012

Failing At Apps

It has been quite quiet here hasn’t. I have been coding away on projects but also doing a lot of thinking about things. I have had a few more aborted prototypes/projects not because they were not turning out ok but because of motivation on my part.

Pretty much it goes like this. Get an idea, decide to implement idea, Get about halfway through implementing the idea and then stop/give up due to lack of motivation. This is typical of many programmers I guess but I really want to fix myself of this issue and start to release more stuff.

So I started to think about it. Not a sit down and think for hours but just let it simmer in the background for a while.

I also noticed that when I am in the middle of one of these projects that is destined to fail I start to think about higher level programming languages. I like programming languages but in this instance it is an early indicator that the project will fail. Why?

Well the answer is easy for this one. I am doing grunt work and am thinking about ways to abstract that away.

Another data point.

I have been working on a small game and at no point was thinking boy would this be easy in a different language, in fact I am often thinking how great developing in Java and libgdx is compared with doing the same in say C++. Perhaps because the way libgdx works is that most dev is done on your desktop which has very quick iteration times compared with android. You only occasionally check the game on android.

So projects fail because I get bored with them. No surprise there really :)

After much thinking I came to the conclusion that I am getting bored when the algorithm work is done and I am working on the UI side of things. For me UI implementation on android seems to involve a cycle that includes a lot of stack overflow. No brain required just Google it leading me to get bored. UI design is hard to get right and I admit not something I am good at.

Finding the cookie cutter solution to the latest problem does not motivate me as I sit tired at a laptop screen late in an evening. Game development doesn't suffer this problem as you/I rapidly head into your own little world of iterating to find the fun.

Obviously UI is an important part of creating app so it is not something I can or would want to avoid. The ideas for apps that I have been fiddling with tend to be UI heavy compared with the algorithm side of things. I suspect I have been choosing the UI heavy app ideas because I have the mindset of still learning android and wanting to experience more of what the libraries have to offer.

For instance a to-do list manager does not require much in the way of algorithm design, To stand out you need a great UI. It is UI heavy compared with the algorithms needed and  that is probably why it is used in many tutorials when introducing UI libraries.

Compare with an app (that does not exist) that lets you take a photograph of you friends and automatically transform them into zombies. That is an algorithm heavy app compared with the requirements of the  UI.

To stay motivated should lean more towards the zombies rather than the to-do list manager.

No comments:

Post a Comment