Mobile devices have gone through a dramatic evolution since the introduction of mobile phones. The increase of computational and storage capacities together with the additional sensory and interaction facilities have turned a special-purpose device dedicated to making and receiving phone calls into a general-purpose computing platform. Growing developer communities driven by the availability of platforms for application development have produced a vast number and variety of mobile applications. However, existing programming platforms for mobile devices do not tap the full potential of application development support. Typical requirements such as persistent data management, information sharing, location awareness and physical proximity sensing need to be implemented at a low-level and reimplemented for each application. Furthermore, the data models of these APIs often introduce impedance mismatches with the programming language data model. This thesis investigates how mobile information system development could be better supported in terms of simplifying the act of designing and implementing systems, by providing high-level abstractions meeting common requirements.