iPhone development

As I mention on the about page I’m currently developing things for the iPhone and at the moment I’ve got 2 projects on the go that make use of the iPhone SDK. One is my dissertation which is making use of the iPhone platform to demonstrate my research (location based information using tag vector location techniques) and a more personal application for keeping archery scores during both practice and competitions, the point of the scoring app is to make it easier for people to record their scores because I see a lot of archers mess up the scoring of arrows, the totals for the ends and the running totals, especially beginners who lack experience of scoring.

My current workflow and the tools that I use in this (Xcode, AnalysisTool and Versions) make developing things for the platform a little bit easier and dare I say a little fun. The only stumbling block I occasionally run into when I’m sleepy and lacking caffeine is the lack of managed memory on the iPhone platform. Personally I find the lack of managed memory as a bit of a mixed blessing, a blessing because I’ve found it makes me think a lot more about how I’m actually using variables in my code, what needs doing with them and when I can get rid of them and a curse because when I’m sleepy (and lacking a cup of tea) this is because I revert to my Java ways and start failing to use all the memory management rules and just let the variables sit in memory never to be used again. This of course isn’t helped by the fact I’m still using Java on pretty much a day to day basis to complete uni assignments and so I’m switching constantly between having the memory managed for me and having to manage the memory myself.

This switching between memory-managed and non memory-managed environments is why I use AnalysisTool in my workflow, it would be nice to be able to use built-in version of Clang static analyser but for some reason I can’t fathom it doesn’t seem to work on iPhone projects. The use of AnalysisTool also helps save time when I’m looking for leaks, instead of going though my code with a toothpick and finding all these leaks myself I can run the tool and it’ll find the ones I’ve missed. I can then use the information it gives back to me to reinforce my knowledge and fix that leak.

There are many little lovely things that I’m starting to love about objective-c, properties, message passing, every classing needing an interface (although it does get in the way when prototyping) and named parameters to name but a few. The other great thing is all the “free stuff” that you get when developing for the iPhone. The best example of this is having a tableview. This is pre-made just extend the UITableViewController class and override the methods you want to use. If you want to make a custom cell for that table again, extend the “free” one and change what you want.

Wed Nov 25 20:41:48 2009
Stack Overflow
My current happenings
Currently I'm working on my third year project where my research question is how do I provide the most relevant infomation to a user based on their current location, for this I'm investigating the use of Tag Vectors, global and personal tag clouds and clustering of users based upon their individual tags.