The data processing with mobile devices has its own specifics related to features of these devices: limited computing power, smaller available memory, unstable network connection and so on.
This results in the need of non-traditional approaches when designing applications for these devices.
The vast majority of such applications are designed as distributed. Behavior of individual parts of the application may depend both on the type of the device and sometimes on its actual location.
Due to the frequent changes of location the applications also must be able to transparently recover from network connection failures.
A very important factor affecting the usability of such applications is the ability to effectively utilize energy resources of the device.