Thursday, April 15, 2010

Technical Challenges

A lot of challenges came from coding in both mobile processing and in PHP.
Although I had some experience from previous semesters, working with mobile processing, handling graphical components and sending data through mobile 3G networks was very new to me.


PHP scripting was brand new and learning how to code and script to transfer data from the mobile application to the MySQL database was challenging. Luckily PHP is a forgiving language and with the help of the university teachings and excellent reference manuals online, saving and retrieving database data, and comparing real time data from the mobile phone for calculation was tricky but achievable.
User handling was tricky to ensure users didn't choose the same lifeAlias when registering or accidently not typing in a valid field for registration.

Achievement checking was tough as there are many parameters that could be measured to meet a condition of an achievement and each had to be assessed for each individual achievement to determine if it was achieved or not.
This includes:
  • checking latitude
  • longitude
  • speed
  • direction
  • date
  • time
  • whether your applicable to obtain the friend achievement (being a friend of the creator)
  • having the right number of friends in a group.
  • whether the limited number of users has already obtained the achievement and if its still achievable.
Some achievements required stats based on other achievements and some require groups of friends to be together. Each ads a complex layer of data handling to ensure all criteria was validated 100%.

Getting sound notifications was also challenging. For some unknown reason the sounds could be coded on a Nokia N80 and played fine. The application had to be tested and moved to a N95 as the N80 didn't have integrated GPS and relied on an old Bluetooth GPS device to obtain data. When moving the code to the N95, the sound capabilities were lost and updating the Nokia mobile firmware made no difference. All sound types were tested including .midi, .mp3, .wav and at different quality recordings. Testing the code on other phone types either made the application not run or crash when the sound file was prompted to play.

Challenges arose from obtaining accurate GPS data. Longitude and Latitude data is obtained with roughly 30 to 50 meter accuracy from a mobile device given the surroundings or weather conditions.
The same could be said for elevation which could at times give inaccuracies up to 20 to 50 meters difference above sea level.

To accommodate, PHP scripting calculates a deviation of error allowing for longitudes and latitudes to have a +/-0.001 error variance.
Elevation has a +- 20meter variance and any values within are considered valid conditions to score an achievement.

As GPS devices on mobile phones develop further, the accuracy of the lifeAchiev application will continue to improve.









No comments:

Post a Comment