The design of ad-hoc, wireless, peer-to-peer appli- cations for small mobile devices raises a number of challenges for the developer, with object synchronisation, network failure and device limitations being the most significant. In this paper, we introduce a framework for peer-to-peer application develop- ment that deals with those problems. Other than most current literature, we focus on small peer-to-peer networks for gaming applications. I. I NTRODUCTION With small, mobile devices becoming more powerful, peer- to-peer applications on such devices are becoming increasingly popular. Full scalability, mobility and flexibility are desired features in many application domains, which can be achieved via mutual exchange of information and services over ad-hoc, wireless, peer-to-peer networks. Challenging problems arise in the development of such applications. Firstly, wireless, ad- hoc networks face problems such as stability, data integrity, routing, notification of joining and leaving peers, and, in case of peer failure, fault tolerance. In such networks, the connections of the devices may be highly variable as device may hop from online to offline unpredictably, and thus not reliable. Secondly, since the peers exist in a collaborative environment without central control, synchronisation of peers and distribution of resources become big issues. Thirdly, for the applications to run smoothly on small devices that we are aiming for, efficient management of local computing resources is a necessity. Those problems have been addressed in other research works, but mostly in an ad-hoc fashion (5), (12), (13). When developing new applications, these issues have to be treated repeatedly as there exists no generic infrastructure which addresses all aforementioned problems. In this paper, we present a framework called "FRAGme2004" which we designed for developing collaborative mobile applications that achieve the features mentioned above by using a flexible peer- to-peer architecture. The FRAGme2004 framework has a three-layer architec- ture. The layers inter-communicate via interfaces thus to achieve clear separation. The bottom layer is the Infrastructure Layer. This layer consists of the basic building blocks that address the communication requirements. A layer higher is the Object Layer. Object is the smallest entity that is distributed among the peers. The information and data that needs to be shared in the applications is encapsulated into objects, and this layer takes care of the delivery, synchronization and life-cycle management of objects. The top layer is the Application Layer. A clearly defined API is provided to the developers for easy application development.