Mobile Computing: Theory and Practice