A new breed of computing devices is taking more and more ground in the highly dynamic market of computer hardware. We refer to smart phones and PocketPCs, which redefine typical usage procedures we are all familiar with in traditional, desktop information systems. Dimensions of this class of computing devices allow users to keep them at hand virtually at all times. This omnipresence allows development of applications that will truly bring to life the motto: “availability always and everywhere.” Hardware and software characteristics of the aforementioned devices require a somewhat modified approach when developing software for them. Not only technical characteristics should be considered in this process, but also a general set of functionalities such an application should provide. Equally important is the fact that the typical user will be on the move, and his attention will be divided between the application and events occurring in his environment. Fundamentally new and important input to mobile applications is constantly changing the user environment. The term that is used most frequently and describes the user environment is a context, and applications that are able to independently interpret a user’s context and autonomously adapt to it are named context-aware applications.