Context-awareness has been widely recognized as the key enabler for ubiquitous applications. However, in spite of the recent middleware developments for this field, the design and implementation of such applications is still a major challenge mainly due to the complexity of designing the variant context-specific application behaviors, and structuring the application code so as to enable the seamless switching between the corresponding functions. In order to address these problems we have developed a mobile middleware system on top of Android which eases the development and maintenance of adaptive, context-aware ubiquitous mobile applications. In this paper we present this middleware and show how we used it to implement a prototype of a context-aware Instant Messenger with an adaptive multi-modal user interface. In order to assess the benefit of using our middleware, we compare its implementation with another version of the same messenger application (also with an adaptive and context-aware multi-modal user interface), that we implemented using only the Android framework.