Ubiquitous Computing for Mobile Devices