Phomo is a phone motion simulator designed for developers of location-based services. It provides developers with a modular and extensible tool for simulating the motion of smartphones based on mobility models and for sending the simulated coordinates to external devices on which the application to be tested is running. Additionally, it gives a complete overview of the simulation by displaying the managed devices on a map. Phomo could, for instance, serve the testing of an application based on geo-fencing, such as the Reminders iOS application.
The initial version of Phomo was developed between 2011 and 2012, and packaged as a standalone desktop application running on macOS, based on the embedded version of the Apache Tomcat and on Google Maps. Then, in 2022, it was refactored and evolved into a purely browser-based web application based on OpenStreet Map. In this evolution process, various recent technologies have replaced some aging frameworks. However, only a subset of the initial functionalities has been ported. More work is needed to make Phomo a complete web application functionally equivalent to the original desktop application.
The main objective of this project consists in porting the remaining functionalities of the original Phomo desktop application to its web counterpart. In particular, the initial mobility model plugin architecture is disabled in the current web application, i.e., the various mobility models are currently part of the simulator code. In contrast, they were dynamically loaded as separate modules in the initial desktop application. Another functionality that still needs to be ported is the transmission of simulated locations to mobile phones, to have them behave as if they were in the location computed by their mobility model. This will require the use of web sockets, which were not available in 2012 and which will significantly simplify the implementation of this functionality.