The proliferation of mobile devices over the last years provides opportunities and
challenges for solving problems in science and engineering. Among other novel features,
mobile devices contain global positioning sensors, wireless connectivity, built-in web
browsers and photo/video/voice capabilities that allow providing highly localized, context
aware applications. Mobile phones have become as powerful as any desktop computer in
terms of applications they can run. However, the software development in mobile computing
is still not as mature as it is for desktop computer and the whole potential of mobile devices is
wasted [7, 8].